Kubernetes is cementing itself as the de facto container orchestration engine, and Docker helped make it happen. While Docker has been the leading container technology for some time, the container orchestration market hasn’t been so clear. That changed in late 2017 with the addition of a Kubernetes offering by major cloud platform providers, including Docker, and some surprising Cloud Native Computing Foundation (CNCF) membership additions. How did we get here? Let’s take a look.
Created by Google, Kubernetes (commonly referred to as K8s) was designed based on prior Google proprietary orchestration platforms (the Borg project). Upon its V1.0 release in July of 2015, Google partnered with the Linux Foundation to create the CNCF, and Kubernetes was donated as a seed project.
As a seed, it has certainly borne fruit. In its short 3+ years as an open source technology, Kubernetes has blossomed to become the default orchestration engine for container-based workloads. While it is impressive, is it much of a surprise? Although it was donated as a 1.0 version, it was backed by ten years of research and experience of running containers on a massive scale at Google. And who doesn’t want to be like Google?
Here is a look at search volume growth on Google for Kubernetes over the past couple years:
But, we all don’t have the resources or talent that Google has at their disposal. Linux containers (LXC), which Google runs on Kubernetes, aren’t that easy to work with and require added expertise to master.
Docker, which preceded Kubernetes, made containers cool and easier to use. Promoted by the commercial Docker, Inc., Docker is basically an extension of LXC’s capabilities but adds a variety of features. These include portable deployment across machines, versioning, component reuse and now the Docker Hub, which offers, “Dev-test pipeline automation, 100,000+ free apps, public and private registries.”
Here is the same chart for search volume growth on Google for Docker:
Right place, right time
There is a saying that “timing is everything,” and that certainly seems to be true for Kubernetes. By making containers easier to use, Docker is fueling the growth of Kubernetes. In reality, it has become a symbiotic relationship of growth for each, just like the invention of the transistor radio around the launch of rock and roll. The more people use Kubernetes, the more they will use Docker, and vice-versa.
According to the Portworx 2017 Annual Container Adoption Survey (done in February-March 2017), two statistics stick out:
“For companies with more than 5000 employees, Kubernetes is used by 48% and the primary orchestration tool for 33%.”
“79% of the sample chose Docker as their primary container technology.”
To further instill Kubernetes as the leader, big cloud and software vendors are jumping on the bandwagon to support Docker container workloads.
Commercial Kubernetes offerings
While there have been many commercial offerings of Kubernetes since it became open source, the list has made a significant (and impressive) jump in the last few months.
Long-term commercial vendors (where long-term is measured in months) include Google (Google Container Engine), Red Hat (OpenShift), CoreOS (Tectonic), Canonical, and Apprenda. Microsoft and VMware have offered Kubernetes support, but have gone all-in recently (more about this later).
2017 Has Been Good for Kubernetes (and in turn, Docker)
The latter half of 2017 has seen major cloud providers add Kubernetes to their core offerings. Notable announcements include:
Amazon Web Services (AWS) joined the CNCF in August as a Platinum member (the highest level available). While AWS joining the CNCF wasn’t directly tied to Kubernetes (as there are currently 14 hosted projects at the CNCF), AWS has a significant number of customers running containers and Kubernetes in production.
Then, in October, the Cloud Foundry Foundation announced their Cloud Foundry Container Runtime (CFCR), powered by Kubernetes, and in turn, Pivotal Cloud Foundry (in partnership with VMware) announced their Pivotal Container Service (PKS) at VMworld in October. Both Pivotal and VMware signed up as Platinum members of the CNCF; again, the highest level available.
The fact that VMware is aligning with Kubernetes is a clear sign that they see Kubernetes and containers being here to stay and they want to stay relevant. Many have questioned whether containers and the cloud would replace VMs. While experts believe there is room for them to co-exist in the enterprise, this is a clear shift from when VMware was king of the hill.
Then, later in October, Microsoft Azure rebranded their Azure Container Service (ACS) to AKS, with the “K” standing for Kubernetes. This is a big shift from their prior argument that one of the benefits of ACS was its support for multiple orchestration tools.
Even Docker Inc. has succumbed and recently added native Kubernetes support within its Docker Enterprise Edition framework. This is a significant win for Kubernetes and put in flux the future of Docker’s own orchestration platform, Docker Swarm. Docker launched Swarm in 2015 to compete directly with Kubernetes. Docker even commissioned an independent benchmark test to compare Swarm against Kubernetes. There are surely use cases for both, but the fact that Kubernetes is backed by Google, is battle tested (remember Pokémon GO?), and has a very large community, will have enterprises looking to it as their standard container orchestration engine.
What does this mean for the enterprise?
Kubernetes and Docker seem to be sticking around a while. As companies move to the cloud, they will find that they have some needs where a PaaS or IaaS works best, and others where containers (some call this CaaS) will be more suited.
To gain all the benefits of the cloud, companies are moving to DevOps and Cloud Native development. As they adopt DevOps they start to build applications as independent components using microservices running in containers. These teams will be smaller (Amazon CTO Werner Vogels coined the phrase “two-pizza teams”) and have the ability to update the features/functionality of their “service” independent of the other components of the application. By breaking development into small teams focused on decoupled services, companies can scale their development efforts and deliver value to their customers/users faster. Now, instead of a single code base that is updated every six months, updates are made on an as-needed basis and can number in the 100s, if not 1000s, a day.
To make this work takes automation. Automation is the abstraction of complexity. Provide an easy, repeatable way to deliver and deploy software safely, and teams will do it more frequently.
This abstraction and polyglot of technologies make monitoring an important piece of the puzzle. Now you have thousands of independently moving parts, many of which may appear as black-boxes to traditional monitoring solutions. As you move toward Cloud Native and more of your applications are running in the cloud, make sure you look at monitoring approaches that are designed specifically to work well in this new world.
Kubernetes, Docker, and Cloud Monitoring Resources
To learn more about monitoring containers and microservices, download this report by Ovum about Cloud Native APM: Ovum Market Radar: Cloud Native APM
To learn more about Dynatrace full stack monitoring for Kubernetes, Docker, and cloud technologies, check out these resources: