The announcement that Mesosphere is going to incorporate Kubernetes into DC/OS has generated a fair amount of buzz in the industry, with the consensus landing largely on the side that this is a sign that Mesosphere is ceding to Google’s open source software. I have a different perspective – namely, that this move is a sign that Mesosphere is focusing on their end users, and committing to providing the most flexible options to best suit their needs. As more companies move to the cloud from on-premises, or from an individual cloud provider to a multi-cloud environment, containers remain the current best level of abstraction.
Containers run just about everywhere, which helps to avoid certain levels of lock-in, and as much as it’s possible, they future-proof applications. Once you master managing and deploying containers, your deployment process becomes the best thing it could ever be…boring! No engineer wants an unpredictable, possibly chaotic deployment. Boring deployments are the best deployments, which is why it’s crucial to use the best tools possible.
Before you can start deploying containers in production, you need a container orchestrator that meets your needs. Container orchestration is what makes running containers in production useful. Orchestration tools are responsible for managing various aspects of a container’s lifecycle, including scheduling, deployment, updates, failover, health checks, and beyond. This move to incorporate Kubernetes has potential implications for any enterprise using or planning to use containers in production.
Let’s look at the products in question. DC/OS has an existing container orchestrator called Marathon, and it offers support for both Mesos and Docker containers. Marathon supports Docker and Mesos containers. While you’re probably familiar with Docker containers, you might not know about Mesos containers. Mesos containers started out before Docker, and are based on some of the same underlying technologies.
They use control groups and namespaces to manage non-Docker based applications. They are a great choice for apps that aren’t already using Docker. An example of this might be some operations tools, shell scripts, Go based application binaries, etc. Even outside of Docker containers, Marathon is still a great orchestrator for running any legacy applications, ops tools, or any other non-Docker based process.
Like Marathon, Kubernetes supports Docker, however, it also supports other containers. Kubernetes supports containers based on the OCI (Open Container Initiative) model. This means there’s support for Docker, containerd, rkt, Windows containers, and anything else based on OCI. Besides all of the technical aspects that make Kubernetes a great option, it also has an ever-growing community. Part of that community comes in the form of developers contributing to the project, and continuously adding new features. And the other part are the operations engineers that work with it every day. Having such an active community is an important part of any open source project. The addition of Kubernetes makes DC/OS all that much more appealing from my perspective.
Right now you can deploy all kinds of different applications using the DC/OS Catalog, which was called the Universe before version 1.10. Being able to deploy applications such as Cassandra, Spark, MySQL, Elasticsearch and more with the push of a button is powerful. Once Kubernetes is added it will allow you to choose the best container orchestration system for the given task. All this flexibility, combined with the ease of use of DC/OS makes it a solid choice when selecting a container orchestrator.
One of the things I like best about DC/OS is that both the CLI and UI are simple and intuitive. I’m curious to see how Kubernetes will be integrated. If it becomes a first class citizen and gains the level of polish that the rest of DC/OS has, then it’ll add a lot of value to DC/OS.
However, full integration would mean that all of Kubernetes features are available, including Windows containers. As of 1.9 DC/OS doesn’t support Windows so it’ll be interesting to see if the integration of Kubernetes pushes DC/OS forward, or holds Kubernetes back. In addition, if this means that the developers at Mesosphere will start contributing to Kubernetes, it will serve both tools well.
There are already close to 1400 contributors according to Github. I’d imagine that the added expertise from the Mesosphere developers will not only add value to Kubernetes but also show Mesosphere’s commitment to using and enhancing the best technologies available.
It’s still too early to tell what this will actually look like when implemented, but if you’re currently looking into container orchestration tools, keep an eye on how this shapes up. Both DC/OS and Kubernetes are enterprise-ready systems, so the combination has the potential to serve the widest audience possible. I can’t wait to test it out for myself, and when I do, I’ll be back to share my thoughts.