Docker will unveil embedded container orchestration capabilities as it shows off the 1.12 release of its Docker Engine at its annual user and developer event, DockerCon 2016, in Seattle, on Monday, June 20.
Docker Engine 1.12 is not generally available yet. It's still in release candidate stage. However, it will be made available to developers who wish to learn its features, said chief operating officer Scott Johnston in an interview with InformationWeek before this week's event. It will become generally available in July, he added.
Docker 1.12, clearly illustrates a key direction in which the San Francisco container company is trying to move: It wants to simplify the creation and deployment of containers based on using its platform. It's built in much of the orchestration functionality of Docker Swarm, still a separate product, but one that some developers may no longer have to learn.
As Johnston phrased it, Docker wants to "democratize orchestration" so that many developers may do it instead of those who've learned the ins and outs of a separate orchestration system. "So much about orchestration is complex and difficult to set up and understand," said Johnston, newly appointed as COO from his former position as senior vice president of product management. "So we built the orchestration primitives into the Docker Engine itself."
Swarm as a separate product includes powerful capabilities. According to information on the Docker site, Swarm can create a server cluster capable of running a thousand nodes and 50,000 containers.
Docker Engine 1.12 can now serve as the basis for establishing a swarm without the need for a separate Docker product or other system, such as Kubernetes or Mesosphere. One swarm created by a Docker Engine can also discover and maintain contact with other swarms through 1.12's auto discovery feature. If effect, Docker is automating horizontal scaling of container clusters, so creating a larger, pooled resource.
"We are dramatically lowering the overhead of Swarm deployment and making it available to a wider population of developers," said Johnson.
Orchestrating containers onto a cluster is a complex process requiring knowledgeable scheduling and networking, tasks that previously had to be handled by a systems administrator building the cluster. Now Docker Engine can build a swarm based on container affinities (which containers will operate effectively together on the same node without competing for resources) or other deployment strategies.
Docker Engine will see to the load-balancing within the swarm and apply the desired network connections based on the make-up of the container file -- called a Compose file in Docker parlance. Within a swarm cluster, one node will automatically be designated a master node and others workers, with the master maintaining state for various workloads, Johnston said. The master, for example, needs to know whether a database container, for example, has complete an update, and will not permit any interruption of the workload until it has.
[Want to see how Docker added multi-host networking to containers? Read Docker Adds Multi-host Networking for Containerized Apps.]
Docker Engine also monitors the operation of the master and recognizes if it has failed. It then appoints from among the worker nodes a new master, which re-implements stateful operations.
Docker has taken the initiative to simplify and automate container orchestration through its Engine product, because that remains a highly competitive front in container adoption.
In addition to Docker's system, there are other cluster building and container orchestration systems from other companies, including CoreOS' Tectonic, Pivotal Cloud Foundry, Rancher Labs, and Mesosphere's Data Center Operating System.
Kubernetes is an open source project founded by Google in June 2014 on the strength of Google's boast that it launches two billion containers a week. It has attracted many followers and its merits versus Docker's are often debated.