This post is from the XebiaLabs blog and has not been updated since the original publish date.
The Future of Container Orchestration Will be K-Shaped
2017 should've been an exciting year for container orchestration.
In the summer of 2016, Docker's new swarm-mode joined Mesos/Marathon and Kubernetes in the container orchestration arena. 2017 was to be the year of the war between the container orchestration platforms. Mesos/Marathon was the one with the scientific background, Kubernetes the one inspired by Google and swarm-mode the one by Docker, the company that popularized containers. However, Mesos/Marathon remained too complicated, and Docker's swarm-mode never matured to the level where it could compete with Kubernetes, which quickly rose to the top. And so, the war that could’ve been, wasn’t.
Kubernetes Dominates in 2017
In 2017, Google Container Engine (GKE) proved to be a very nice way to run containers in the cloud. And on-prem, RedHat's OpenShift v3 turned out to be a great enterprise-grade container orchestration platform (and more). Both were built on top of Kubernetes.
The second half of 2017 saw many other vendors also jump on the Kubernetes bandwagon:
- Aug 28: Pivotal introduces Pivotal Container Service (PKS), an on-prem, enterprise-grade Kubernetes offering.
- Sep 6: Mesosphere adds support for Kubernetes to DC/OS.
- Sep 26: Rancher announces v2.0 of their platform and switches to Kubernetes as the standard orchestration framework.
- Oct 17: Docker announces that it will integrate Kubernetes into their Docker EE offering.
- Oct 24: Microsoft introduces AKS (managed Kubernetes) and Azure Container Registry improvements.
- Nov 29: Amazon launches EKS (Amazon Elastic Container Service for Kubernetes).
Pivotal's move is reminiscent of the one that RedHat made with OpenShift v3; Pivotal supplanted an on-prem PaaS platform (CloudFoundry) with an on-prem container platform.
Mesosphere, Rancher, and Docker will tell you that their announcements do not mean they are conceding to Kubernetes—Mesos, Cattle, and Docker's swarm-mode (respectively) are all alive and kicking. We'll see how this plays out in the future, but so far, all eyes are on Kubernetes.
Microsoft and Amazon Join the K-Club
Microsoft and Amazon are the latest companies to join the Kubernetes crowd.
As you may recall, Microsoft’s old Azure Container Service (ACS) allowed you to spin up virtual machines with Mesos/Marathon, Docker, or Kubernetes installed and correctly configured for you. But there the service stopped—and stopped short of Google Container Engine's managed support for Kubernetes. GKE automatically upgrades Kubernetes and provides a different (nicer?) user interface on top of it.
The new Azure Container Service (which Microsoft renamed “AKS”) promises to add a user interface, automated upgrades, and more, which should bring it up to par with GKE. However, earlier this year, Microsoft also launched Azure Container Instances. At first glance, this service allows you to just run containers without any kind of orchestration. What's so exciting about that? Well, ACI usage is billed by the amount of memory and CPU assigned to your containers on a second-level granularity. That means you can connect AKS and ACI with the aci-connector and get the best of both worlds from containers and serverless - freedom and fine-grained pay-per-use pricing.
Amazon is the latest to enter the fray with their EKS service. EKS will allow you to spin up a managed Kubernetes service, like GKE and AKS. It’s an obvious move. Amazon is the most widely used public cloud, and therefore, it is also often used to run Kubernetes in the cloud. However, until now, setting up a Kubernetes cluster on EC2 was a painful experience involving four different options, none of which were supported by Amazon themselves. Of course, Amazon already offers Elastic Container Service (ECS), but like Azure Container Instance, it is not a very advanced service, which pushes users towards more fully featured container orchestration platforms like Kubernetes.
But that’s not all. Amazon also announced Fargate, which allows you spin up containers on-demand and be billed the amount of memory and CPU on a second-level granularity, just like Azure’s Container Instance. Unfortunately, at the time of writing of this blog, EKS is still in preview, and the connection between EKS and Fargate will not be available until 2018. Still, it seems that EKS and Fargate will be an ideal marriage of containers and serverless—just like AKS and ACI, but without the aci-connector.
What to Expect in 2018
Looking back at 2017, the "container orchestration war," which could have captivated our attention and prompted a lot of innovation, never really got off the ground. Instead, a great deal of energy has gone into integrating Kubernetes into different product offerings.
So, what does that mean for 2018? I'm expecting three things to happen:
1. Pay-per-use pricing for running containers in the cloud will give us the best of serverless and containers—freedom and pay-per-use pricing.
2. Amazon’s EKS and Fargate, along with Microsoft’s AKS and ACI, will make life difficult for Google's GKE. Amazon and Azure have high adoption rates, and a solid Kubernetes-based offering should allow them to capitalize on that.
3. The next level of problems to solve will emerge. After Docker made it easy to run containers, the next problem was how to orchestrate them. Now Kubernetes has solved that problem. So, what's next? How to promote Kubernetes configurations across clusters? How to manage the release cycle of applications across environments?
One thing is certain—the future of container orchestration will be K-shaped.
- Learn about the challenges of using containers at enterprise scale: solutions/docker/
- Before You Go Over the Container Cliff with Docker, Mesos etc: Points to Consider