Google has been using Linux containers in its data centers for the better part of a decade. Across Gmail, search, Google Drive, and whatever else, Google has been taking advantage of the technology to run web-scale services with fewer headaches and a higher quality of service.
If you're not as cool as Google (and who is?), the search giant today announces at the first-ever DockerCon the release of Kuberetes, its homegrown Docker management tool, to the open source community -- along with the news that Google App Engine has expanded Docker support for running the containers in its cloud.
Before we dive into the nitty-gritty of these announcements, it might be helpful to briefly go over what Docker is and why the world of cloud computing is going nuts for the technology. Even Microsoft CEO Satya Nadella is amped up for Docker, judging by a rare tweet yesterday pointing to Microsoft Azure's own recent improvements to Docker support.
Docker is a containerization technology that lets you package up all the libraries and runtimes that an application you need to run it in a way that makes it much easier to pick up that container, deploy it anywhere else and have it run the same way.
And the really neat part that has a lot of people hyped is that it can run on bare metal, bypassing the overhead of having to run it in a virtual machine -- important, because, to paraphrase a great philosopher, mo' VMs, mo' problems, especially at large scales. If nothing else, making sure all the guest operating systems on virtual machines are patched and up-to-date is an administration headache, especially when those patches can break applications.
"It not that you couldn’t do this in a virtual machine world, it was just hard to, and it wasn’t worth it," says Google's Craig McLuckie.
In other words, Docker is significantly cutting down on the complexity of deploying cloud applications, especially as public cloud providers like Google continue to make it easier to use and manage Docker containers with their platforms.
So with today's news, Google is releasing Kubernetes -- Greek for "helmsman," as on a ship -- its homegrown solution for orchestrating and managing Docker containers at scale, making sure they smoothly replicate according to schedule. It's not as scalable as Omega, Google's own container scheduling technology, but Kubernetes is open source and available from Github.
"[Kubernetes] lets you treat a cluster of virtual machines like a virtual Google data center," McLuckie says.
In addition, Google is supporting Docker images in Google App Engine within Managed VMs. This is actually kind of a trade-off: Letting Google App Engine manage your VMs means that you can get a higher level of automation, but you lose some of the performance gains you can get by running the Docker container on bare metal. But the fact that the application is packaged up means you don't have to rely on Google App Engine's native library and language support -- it'll run no matter what, so long as it's a standard Docker image.
Finally, Google infrastructure chief Eric Brewer has been nominated to the Docker governance board, with the hopes that he can bring all of that container experience to bear within the Docker ecosystem. Google has its own stack and has solved a lot of problems, McLuckie says, but the Docker community has the potential to solve many more, and Google wants to help shepherd its customers towards that future.
"We’re trying to establish the Docker image as the de facto environment for deploying software into a cloud environment," McLuckie says.
Regardless of whether or not Google is a bunch of cloud hipsters (it is), Docker is a growing technology that's only going to accelerate. It turns out people wanted easier ways to build cloud applications. Who knew?