Docker is sure making a splash in the developer community these days, and Google is taking note. After adding some basic Docker support to Compute Engine earlier this year, the company today announced that it is embracing Docker in App Engine, too, with the help of its recently launched managed virtual machines.
To help developers work with Docker, Google is also launching Kubernetes today, a new tool for managing containers. And to cement its involvement in the Docker community, the company is nominating Eric Brewer, its vice president of infrastructure, to the Docker Governance Committee to “continue working with the community on building better open container standards.”
Containers are nothing new for Google, of course. Internally, the company has been using containers to manage its massive data centers for a long time. Indeed, it now launches more than 2 billion containers across its data centers every week.
Google product manager Craig McLuckie, who spearheaded much of the company’s work on Docker, noted that support for Docker is a natural fit for the company. In traditional hosting, adding a new box was always a big deal. Modern apps, however, are often broken down into lots of micro-services and containers fit perfectly into this world. “To us, containers provide a tremendous amount of value,” he told me. “Docker make a lot of this available for more developers.”
Using Docker on App Engine, developers can access the large library of Docker images already in existence or they can bring in their own through Google’s storage services. The Docker images will be deployed in Managed VMs, which bring a lot of flexibility to App Engine as they allow developers to run services that aren’t natively supported by Google’s platform-as-a-service offering.
As McLuckie told me, the company also wants to make it very easy for developers to package their App Engine apps and create a Docker image from it.
For now, Docker support in App Engine is still in beta, and developers who want to give it a try can sign up here.
Once you have Docker running, though, you are left with the challenge of managing and scheduling all of your containers. That’s where Kubernetes comes in (that’s Greek for the “helmsman of a ship,” in case you are wondering). Kubernetes is an open-source container manager that helps you deploy your containers to a fleet of machines. It provides health management and replication capabilities in addition to making it easier to connect machines to each other. The container manager, it’s worth noting, is not bound to Google’s service and can be used across platforms.
Google itself uses Omega for its container system, but it’s worth noting that while Kubernetes was built on the expertise Google developed from running its data centers, it’s completely new code that the company wrote specifically for Docker. It’s meant to be far more developer-friendly than what Google does internally (most startups don’t have the kind of experienced DevOps team that Google has, after all).
According to McLuckie, the idea is for Kubernetes to be as approachable and usable for a large number of developers, which in turn will help bring the idea of using containers to a wider range of developers. The code is now available on GitHub.