Microsoft, IBM and Red Hat, along with startups CoreOS, SaltStack and Mesosphere, are now supporting and contributing to Kubernetes, the open-source container-management project that Google announced in June. Kubernetes is Google’s attempt to push its own style of computing into the greater world, something made easier by the exploding popularity of the Docker container technology that Kubernetes is designed to manage — and that brought all these other cloud providers and software vendors into Google’s camp.
Containers allow applications to be composed of various services while still running in isolation from one another on a host machine. It’s kind of like the type of server virtualization that VMware made ubiquitous, only it’s easier and containers are more lightweight than virtual machines because containers all share the host Linux operating system rather than each running their own guest OS on top of a host OS. Theoretically, containers, which are like a pre-packaged building blocks defining the resources an application needs, improve the portability of applications because they can run anywhere there’s a Linux OS in place.
But container-based applications, like all applications, need a little help when it comes to running at scale. Kubernetes is a way of helping users easily launch Docker containers onto a cluster of servers, and then to help those containers communicate with each other. Docker has its own similar project called Libswarm, which it claims, among other things, can let users manage all their containers “across multiple hosts and infrastructure providers, as if they were running on a single host.”
For more information on Docker, check out our recent feature on the company or listen to our new Structure Show podcast featuring Docker founder and CTO Solomon Hykes. (And for more another take on why server virtualization is passe, check out our recent podcast interview with Mesosphere’s Florian Leibert.)
[soundcloud url=”https://api.soundcloud.com/tracks/158076928″ params=”color=ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false” width=”100%” height=”166″ iframe=”true” /]
A peace pipe …
What’s very interesting in this new alliance, several members of which are fierce competitors in the cloud computing space, is just how different their agendas with Kubernetes appear to be. They have all supported Docker in one way or another because containerization is a smart way to build and run applications, and Docker is the container technology that most developers are using. With Kubernetes, they see a way to expand Docker’s utility to meet their own needs.
According to the official announcement from Google about the new community, IBM is backing Kubernetes as a way to ensure customer applications can run across multiple clouds. Red Hat, a major OpenStack contributor, sees Kubernetes as a way to push hybrid environments where users can move workloads to and from public and private clouds as needed.
Microsoft, on the other hand, is talking about giving customers choice about what they can run in its Azure cloud platform. It’s actually backing both Kubernetes and Libswarm, and is committed to “supporting and contributing to open source projects,” Corey Sanders, a group product manager for Azure, told me. “We view this as one possible soution for being able to deploy applications in the cloud,” he added, and said Microsoft will evolve its support for Docker as a whole as customers’ demands change.
… and a Trojan horse
Google, on the other hand, pretty clearly sees Kubernetes as a way to make its own Compute Engine cloud stand out by helping make application management a generic experience across all environments. Craig McLuckie, a Google product manager, acknowledged the importance of having partners in this effort in terms of validating it, developing it and generally building an ecosystem of software partners that want to build around it. “Having serious software companies … being serious about containers is going to be important,” he said. “This is a disruptive technology.”
But if Docker and Kubernetes become standard methods of managing applications, that means the point of differentiation in the cloud will move back down into the infrastructure layer where Google thinks it has the advantage with its decades of experience building the world’s largest systems. “We feel pretty confident in the quality of our infrastructure,” McLuckie said. A technology that lets a customer pick providers based on the underlying infrastructure, he added, is “extremely beneficial to Google.”
In the video below, Google’s senior vice president for technical infrastructure, Urs Hölzle, and I discuss the company’s infrastructure advantages at our recent Structure conference
Leibert of Mesosphere seems to agree with that assessment, saying in a separate interview that Google has built the highest-performance cloud around so it makes sense it would push a technology that highlights that. However, he noted, Mesosphere is contributing to Kubernetes as a way to help other cloud providers and data center operators level the playing field a bit. The open source Mesos technology in which Mesosphere specializes is based on the same technologies that Google uses to orchestrate its massive infrastructure and move its containerized workloads from server to server in case servers fail or other issues arise.
“Google of course hasn’t released Omega or Borg,” Leibert said, “and they’re not planning to as far as we know.”