How Google's Borg Inspired the Modern Datacenter
In part one of this series, What Is Kubernetes?, and in part two, Why Choose Kubernetes to Manage Containerized Applications?, we learned what Kubernetes does, its architecture, and how it compares to similar container orchestrators. Now we'll learn how Kubernetes was descended from the secret Google Borg project.
The Borg Heritage
Kubernetes is distinguished from similar container orchestration systems, such as Apache Mesos and Docker Swarm, by its Google heritage. Kubernetes was inspired by Borg, the very advanced internal datacenter management system used by Google for a decade. Nearly all of Google's services run in containers, both internal and external services such as Gmail, Google search, Google Maps, MapReduce, Google File System, and Google Compute Engine. Think of Borg as the giant brain that manages Google's datacenters as a single pool of resources to fuel Google's giant fleet of services, and manages them so efficiently it saves Google the cost of an entire datacenter.
Google still owns Borg, and is building the next version, codenamed Omega, which is not nearly as cool a name as Borg. Kubernetes was founded as an open source project in 2014, and several of Borg's top contributors also work on Kubernetes. Google donated Kubernetes to the Cloud Native Computing Foundation, which is hosted at the Linux Foundation and supported by a number of big companies (including Google, Cisco, Docker, IBM, and Intel). The idea is to create a reference architecture for cloud technologies that anyone can use.
Borg was a closely held secret until 2015, when Google published the Large-scale cluster management at Google with Borg paper. This reveals a lot of fascinating details and bold claims such as "We are not sure where the ultimate scalability limit to Borg's centralized architecture will come from; so far, every time we have approached a limit, we've managed to eliminate it."
Figure 1 shows how Borg has inspired current datacenter systems, and the underlying technologies used in container runtimes today.
- Google contributed cgroups to the Linux kernel in 2007, which limits the resources used by collections of processes.
- cgroupsand Linux namespaces are at the heart of containers today, including Docker.
- Mesos was inspired by discussions with Google when Borg was still a secret.
- The Cloud Foundry Foundation embraces The Twelve-Factor Application principles. These principles provide guidance for building Web applications that scale easily, are deployed in the Cloud, and have automated build system. Borg and Kubernetes both address these principles.
To sum up, the modern datacenter owes a lot to Google, and Kubernetes is built on over a decade of research and production use in one of the most demanding environments on Earth.