At DockerCon 16 in Seattle last week, Docker rolled out the new Docker Engine 1.12, which includes native container orchestration built-in.
In a blog post, the Docker Core Engineering team discussed why container orchestration is now so important: “Container orchestration is what is needed to transition from deploying containers individually on a single host, to deploying complex multi-container apps on many machines. It requires a distributed platform, independent from infrastructure, that stays online through the entire lifetime of your application, surviving hardware failure and software updates.”
“While the cloud infrastructure wars garner the most attention, we forget that the battles on the application platform side are even more important for developers. This is evident today at DockerCon where Docker Engine 1.12 is being launched, joining the cloud orchestration wars,” noted Al Hilwa, program director for software development research for IDC. “This represents Docker’s (the company) focus on continuing to build on its hugely successful container technology and to grab the mind share back from other platforms like Kubernetes and Mesos, which have been generating a great deal of excitement in various parts of the ecosystem.”
According to Docker, orchestration today is at the same stage containerization was three years ago when the company entered the space. “There are two options: either you need an army of technology experts to cobble together a complex ad hoc system, or you have to rely on a company with a lot of experts to take care of everything for you as long as you buy all hardware, services, support, software from them. There is a word for that, it’s called lock-in,” said Docker in a blog post.
The goal of Docker Engine 1.12 is to provide the orchestration capabilities you need without the vendor or platform lock-in. By building orchestration natively into the engine, Docker wants to make it easier to implement, more portable, more secure and resilient, and faster than third-party orchestration options.
“Here Docker integrates orchestration technology into its engine with an advanced set of attributes highlighting scale, security and adaptation to workloads,” Hilwa said.
Docker lists four principles that form the foundation of the Docker 1.12 engine:
Simple Yet Powerful – Orchestration is a central part of modern distributed applications; it’s so central that we have seamlessly built it into our core Docker Engine. Our approach to orchestration follows our philosophy about containers: no setup, only a small number of simple concepts to learn, and an “it just works” user experience.
Resilient – Machines fail all the time. Modern systems should expect these failures to occur regularly and adapt without any application downtime. That’s why a zero single-point-of-failure design is a must.
Secure – Security should be the default. Barriers to strong security — certificate generation, having to understand PKI — should be removed. But advanced users should still be able to control and audit every aspect of certificate signing and issuance.
Optional Features and Backward Compatibility – With millions of users, preserving backwards compatibility is a must for Docker Engine. All new features are optional, and you don’t incur any overhead (memory, CPU) if you don’t use them. Orchestration in Docker Engine aligns with our platform’s batteries-included-but-swappable approach, allowing users to continue using any third-party orchestrator that is built on Docker Engine.
“The container is only the beginning of next-generation cloud native applications,” Hilwa said. “The next three years will see a number of orchestration platforms fighting hard for critical mass of adoption. We are only at the beginning of this cycle.”