Orchestration has been a top priority for Docker, and the three Docker orchestration toolsets first announced in December are now available for download for the first time: Docker Machine, Swarm, and Compose.
All three are meant to make it easier to build, ship, and run multi-container distributed applications.
Docker has approached orchestration with a "batteries included, but swappable" approach to keep Docker extremely integration and ecosystem-friendly.
The second part of the announcement has to do with wider orchestration ecosystem participation and support on the whole. Docker has seen massive support across industry leaders, including Amazon Web Services, Google, IBM, Microsoft, Joyent, Mesosphere, and VMware.
Machine allows a user to set up any host that Docker engine will run on with one command. Swarm provides native clustering, and Compose makes the developer’s life easier when updating and tracking multi-container applications.
Machine simplifies portability. It allows a user to set up the host that Docker engine will run on with one command. Before, it was a multi-step process. Users had to log into specific hosts and install and config for that specific host and operating system.
“It allows you to have infrastructure at the ready,” said David Messina, vice president of enterprise marketing at Docker. “These infrastructures, uniformly with one command, can start working with Docker, and there is no need to relearn different environments.”
Swarm provides native clustering, ensuring a uniform developer experience as multi-container, multi-host distributed apps are built and shipped. Previously, there was no native solution available, with each Docker Engine independent of each other.
Swarm is comparable to Kubernetes or Mesosphere and comes with a "rip-and-replace" capability where partner integrations can replace and augment aspects of Swarm's capabilities. This is what Docker execs mean by “batteries included, but swappable.”
“We ‘ship with batteries included’ but wanted swappable solutions,” said Messina. “Multi-container applications are always portable, but providers can optimize their infrastructure for Docker. There are a ton of integrations already working with Machine, and several integrations planned with Swarm.”
Swarm API and driver integrations with other container orchestration products and cloud providers with orchestration services are underway. Reference implementations are documented with Apache Mesos, and its corporate sponsor Mesosphere.
The third toolset is Docker Compose. Modern applications are dynamic, and Compose helps to make sure changes are accounted for.
While Swarm is handy for both developers and operations, Compose is pure magic for the developer, said Messina. “Through a single .yml file, I can define which containers are part of my application, what sequence I want to start up, and with a file I describe my app, Compose gets that app up and running instantaneously,” he explained.
If a developer iterates several times a day, they can automatically update a distributed application.
There was a bit of controversy around the same time these native orchestration toolsets were first announced. CoreOS CEO Alex Polvi and his colleagues have a difference in philosophy with Docker when it comes to containers.
The three issues, according to Polvi, were around security, composability, and open standards. A blog post revealed a slight bifurcation in vision for the application container's future.
"The issue is if Docker becomes a platform itself," said Polvi. "It appears Docker is going open core." Part of that reasoning is Docker builds all kinds of tools, like these, into its Docker runtime.
Containers were forced into puberty overnight, and technology is ahead of business model, meaning potential growing pains. Docker needs to evolve like any technology, and massive interest means it has to do so at an accelerated pace. These tools address a big need around containers in orchestration.
Orchestration, Security, Networking are Docker Priorites
The three toolsets address what a recent survey found to be some of the biggest needs: orchestration, tooling, and security. The survey was partially commissioned by StackEngine.
Docker ecosystem player StackEngine builds software to manage and automate Docker applications. StackEngine CEO Bob Quillin spoke of the importance of orchestration in the bigger picture.
"There is no longer a one-to-one relationship between applications and the resources they use, and there are too many services moving too fast to manage by hand. Automation through orchestration is the only answer," said Quillin. "By building common orchestration libraries and APIs, Docker is on the right track to enable organizations to choose the scheduler or orchestration tool best suited to their application needs."
Orchestration was the single most commented-on thing in terms of what people want, according to Messina. “Security is an ongoing area with any technology, especially with something less than 2 years old. It’s an iterative process.”
Messina calls networking a third very hot topic in the community. “As you build multi-container applications, people want to figure out the most dynamic way to network,” said Messina.
The rapidly growing project recently underwent a change in operational structure. “The company has grown four-fold,” said Messina. “One of the things I’d be remiss in not mentioning is the technology of the project has been able to scale thanks to an enormous community of contributors, specifically with orchestration tools.”