Hall of FameBrendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, John Wilkes201625 min readpaperintermediate
Borg, Omega, and Kubernetes
Summary
Google developed three container management systems: Borg, Omega, and Kubernetes, over a decade. This article details their evolution, design principles, and the lessons learned from managing containers at scale, emphasizing the shift from machine-oriented to application-oriented infrastructure.
- Borg unified long-running services and batch jobs, using Linux containers for resource sharing and cost reduction.
- Omega improved Borg's ecosystem with a more consistent, principled architecture, using a Paxos-based store and optimistic concurrency.
- Kubernetes, open-source, focused on developer experience and exposed state via a domain-specific REST API, unlike Omega's direct store access.
- Containers enable higher utilization by colocating diverse workloads and abstracting away machine/OS details for application developers.
Engineers working with container orchestration systems like Kubernetes should read this to understand the foundational design decisions and historical context from Google's pioneering work.
9/10

