Google Offers Up Tool for Enterprises To Manage Software Containers
Containers are a lightweight means to develop, ship and run distributed applications on different platforms.
Software "containerization" is all the rage lately in enterprise software development, as evidenced by this week's DockerCon conference where Google announced it was open sourcing a container management tool.
Container-based virtualization is basically a lightweight means to develop, ship and run distributed applications on different platforms, such as a discrete computer, a virtual machine (VM) or a cloud service. Docker Inc. is the main steward of the technology, and announced the release of the Docker 1.0 platform at its conference.
At the same time, Google made several related announcements, including the contribution of its Kubernetes container cluster management tool to the open source community via GitHub.
The company is offering to the entire developer/sysadmin community its internal expertise in software container management.
As explained by Docker founder Solomon Hykes, containers address complex software distribution problems in much the same way that shipping containers solved transportation problems. They provide a standardized way to create and distribute a packaged app, which can be based on an increasingly complex software stack with components such as a static Web site, user and analytic databases, background workers, Web front-ends, API endpoints, queues and so on.
"Docker gives you a standard way to pack that into a box, with standard properties," Hykes explains in a video on the Docker site. "And then you can hand that box to toolmakers, ops teams, infrastructure providers, and they know how to handle the box, and they will handle the box in their own particular way, while you know exactly what's going to happen in the end. You know how things are organized inside. So the developer worries about inside the box, infrastructure worries about outside the box, and then things are interoperable, repeatable and ultimately cheaper and more reliable."
Enter Kubernetes, an open source container cluster manager based on expertise Google has developed while using containerization internally, at the vast scale that probably only it can attain with its nearly unlimited resources.
"Everything at Google, from Search to Gmail, is packaged and run in a Linux container," explained Eric Brewer, vice president of infrastructure at the Internet search giant, in announcing the open sourcing of Kubernetes. "Each week we launch more than 2 billion container instances across our global data centers, and the power of containers has enabled both more reliable services and higher, more-efficient scalability. Now we’re taking another step toward making those capabilities available to developers everywhere."
Kubernetes (the Greek term for "helmsman" of a ship) is a lighter-weight version of Google's own internal technology it calls Omega. Most developers don't work at Google scale, so the company open sourced this leaner version of the technology for working with containers on the Google platform. Brewer said Kubernetes "deploys containers into a fleet of machines, provides health management and replication capabilities, and makes it easy for containers to connect to one another and the outside world."
While Kubernetes -- written in Google's Go programming language -- was designed for use with the company's Google Compute Engine, the open sourcing of the project could lead to wider use on other platforms. Google said Kubernetes was optimized for the Google Cloud Platform but can run on any physical machine or VM. "Kubernetes can run anywhere," the GitHub project page states. "However, initial development was done on GCE and so our instructions and scripts are built around that. If you make it work on other infrastructure, please let us know and contribute instructions/code."
Google just last month added better Docker image support to its GCE, which provides VMs running on the company's infrastructure, including Container VMs, which are Debian-based, container-optimized images with the Docker runtime built in. Along with the Kubernetes announcement, Brewer said this week that Google is providing a set of extensions so developers working with the company's App Engine can create and deploy Docker images in Managed VMs. Google invited interested to developers to sign up to become early adopters of the extension initiative.
Docker support has also been popping up elsewhere lately, such as in this week's release of Red Hat Enterprise Linux 7, which includes "enhanced application development, delivery, portability and isolation through Linux Containers, including Docker, across physical, virtual, and cloud deployments as well as development, test, and production environments."
Also this week, Microsoft upgraded its Azure cloud service to run Docker hosts, as reported by John K. Waters.
Brewer, in a related announcement this week, said Google was also open sourcing the cAdvisor tool, which provides detailed statistics on container resource usage. He also announced he was joining the Docker Governance Committee to help guide community development of the technology. "Containers have been a great building block for Google, and by working together we can make them the key building block for 'cloud native' applications," he said.
David Ramel is editor in chief of Visual Studio Magazine and Application Development Trends Magazine.