Borg, Omega, and Kubernetes

被引:359
作者
Burns, Brendan [1 ]
Grant, Brian [1 ]
Oppenheimer, David [1 ]
Brewer, Eric [1 ]
Wilkes, John [2 ]
机构
[1] Google, Mountain View, CA 94043 USA
[2] Google, Cluster Management & Infrastruct Serv, Mountain View, CA USA
关键词
Linux - Batch data processing;
D O I
10.1145/2890784
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Though Widespread Interest in software containers is a relatively recent phenomenon, at Google we have been managing Linux containers at scale for more than 10 years and built three different containermanagement systems in that time. Each system is heavily influenced by its predecessors, even though they were developed for different reasons. This article describes the lessons we've learned from developing and operating them. The first unified container-management system developed at Google was the system we internally call Borg.7 It was built to manage both long-running services and batch jobs, which had previously been handled by two separate systems: Babysitter and the Global Work Queue. The latter's architecture strongly influenced Borg, but was focused on batch jobs; both predated Linux control groups. Borg shares machines between these two types of applications as a way of increasing resource utilization and thereby reducing costs. Such sharing was possible because container support in the Linux kernel was becoming available (indeed, Google contributed much of the container code to the Linux kernel), which enabled better isolation between latency-sensitive user-facing services and CPU-hungry batch processes. © 2016 ACM.
引用
收藏
页码:50 / 57
页数:8
相关论文
共 4 条
[1]  
[Anonymous], P EUR C COMP SYST EU
[2]  
Burrows M., 2006, P S OP SYST DES IMPL
[3]  
Metz C, 2015, WIRED SEP
[4]  
Schwarzkopf M., 2013, P EUR C COMP SYST EU