In a classic case of "if you can't lick 'em, join 'em," Docker is bringing Kubernetes to Docker Enterprise Edition, its container platform for enterprises. Perhaps the move, announced Tuesday at DockerCon 17 in Copenhagen, was inevitable, as just about every organization that uses containers has jumped on the Kubernetes bandwagon.
As it is, the open source container orchestration platform (meaning it coordinates the deployment and operation of multiple containers) has become the de facto standard for orchestrating containers, just as Docker sets the standard as a tool to create, deploy, and run applications in containers. These days, most of the major developers, vendors, and solutions providers, including Red Hat, CoreOS, Canonical, and VMware, market their own Kubernetes distributions.
Docker has its own built-in container platform, Swarm, but it very much plays second fiddle to Kubernetes.
This doesn't mean that Docker has wholeheartedly joined everybody on the Kubernetes bandwagon. Swarm isn't going away. It's going to live side-by-side with Kubernetes, which will be tightly integrated into Docker EE -- just as tightly as Swarm. That's what the enterprise wants, Docker's CMO, David Messina, told Data Center Knowledge.
"One of the platform values of Docker EE is that it has always been our strategy to extend the optionality for the enterprise," he said. "When EE first shipped it was a Linux container management system that included plugins to allow you to plug in networking, storage, logging and monitoring. It evolved into a program that supported Linux and Windows, and now mainframes. Now we're adding choice of orchestrators."
Customers will no longer have to choose one over the other, Messina said. And having it integrated as something of a single pane of glass taking advantage of Docker's native features will make the difference between dev and ops that much more seamless.
"From the beginning, our EE platform was build to support multiple orchestrators, so much so that you can actually have under one EE cluster Swarm-based applications and Kubernetes-based applications," he said.
"In addition to that, because of the structure we have around cluster management, Kubernetes apps will get high availability baked in, which is a very complicated feature set to figure in Kubernetes. You can basically develop to Kubernetes' API or the Swarm API. And then you have this management plane that covers a whole set of security and availability features that are unique to Docker that aren't available in other systems that tend to focus just on orchestration."
As Docker sees it, each orchestration platform has its own strengths. Kubernetes, being designed for cloud-native applications (it's the flagship project of the Cloud Native Computing Foundation), works well with web apps and the 12-factor application model used for building software-as-a-service applications. Swarm, on the other hand, is particularly suited for service-oriented architecture and enterprise applications, including legacy apps.
The later is important to Docker due to its MTA program, which containerizes older legacy applications for use in the cloud, which is probably a primary reason why it's sticking around.
In addition, Messina said Docker brings to the table its end-to-end security features to Kubernetes, as well as a simplified user experience and compatibility across all Linux and Windows environments.
"Lots of the Kubernetes systems are either tied to a cloud or a Linux distribution like RHEL," he said. "Docker ensures that whether it's Windows, multiple Linux distributions, or your cloud, that the same way that it manages Swarm is the way it'll manage Kubernetes and you'll be certified against that. So you have choice."
For developers, Kubernetes is also being incorporated into Docker's desktop implementations for Windows and Mac.
"Docker is a company that drove the container movement," he said. "The reason for that is that we created a uniform opportunity to allow for a fluid dev to ops experience. We're applying that now to Kubernetes, and that is a differentiator."
Kubernetes on Docker isn't quite ready for prime time. A beta version is planned to be released "in the next couple of weeks," according to a Docker spokesperson, with general availability due in early 2018.