读书笔记:Borg, Omega, and Kubernetes Lessons learned from three container-management systems over a decade

这篇文章介绍了Google资源调度的三大金刚:Borg, Omega, 和 K8S。并且进行了很有意义的对比和Lesson Learn,读起来很有意思,而且难度不大。

关于Borg:
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.

关于Omega:
Omega, an offspring of Borg, was driven by a desire to improve the software engineering of the Borg ecosystem. It applied many of the patterns that had proved successful in Borg, but was built from the ground up to have a more consistent, principled architecture. Omega stored the state of the cluster in a centralized Paxos-based transaction-oriented store that was accessed by the different parts of the cluster control plane (such as schedulers), using optimistic concurrency control to handle the occasional conflicts. This decoupling allowed the Borgmaster's functionality to be broken into separate components that acted as peers, rather than funneling every change through a monolithic, centralized master. Many of Omega's innovations (including multiple schedulers) have since been folded into Borg.

关于K8S:
The third container-management system developed at Google was Kubernetes.4?It was conceived of and developed in a world where external developers were becoming interested in Linux containers, and Google had developed a growing business selling public-cloud infrastructure.

关键技术:
Containers(容器):The resource isolation provided by containers has enabled Google to drive utilization significantly higher than industry norms. For example, Borg uses containers to co-locate batch jobs with latency-sensitive, user-facing jobs on the same physical machines.(Borg这点他们的各种文章里面总提,结果还不开源,就TM馋大家)

Application-oriented Infrastructure(面向应用架构):Over time it became clear that the benefits of containerization go beyond merely enabling higher levels of utilization. Containerization transforms the data center from being machine oriented to being application oriented. This section discusses two examples:
Containers encapsulate the application environment, abstracting away many details of machines and operating systems from the application developer and the deployment infrastructure.
Because well-designed containers and container images are scoped to a single application, managing containers means managing applications rather than machines. This shift of management APIs from machine-oriented to application-oriented dramatically improves application deployment and introspection.

Things to Avoid(要避免的)
Don't Make the Container System Manage Port Numbers
Don't Just Number Containers: Give Them Labels
Be Careful with Ownership
Don't Expose Raw State

Some Open, Hard Problems(待解决问题)
Configuration
Dependency Management

文章链接:http://queue.acm.org/detail.cfm?id=2898444

时间: 2024-12-23 10:27:37

读书笔记:Borg, Omega, and Kubernetes Lessons learned from three container-management systems over a decade的相关文章

091025 L DNA读书笔记

读书笔记和读后感 02 如何开始第一个工作     大企业,有很多好处.它与小企业的不同在于,小企业的竞争是对外的,而大企业的竞争则是来自于内部的.选择进入大企业的人,一定要有一个目标,多年后做到某个位置的目标.大企业适合喜欢跟同事竞争的人工作.     小企业,坏处是没有大企业的待遇好,不过可以学会更多的本领.     政府机关,如果选择到这里工作,那就是一个比较稳定的工作.在这里,如果比别人更勤奋的话,爬得也比别人快.     自由职业,如果选择这种方式工作,那么需要人有比较高的自我管控能力

Java与XSLT读书笔记(1)

笔记 <Java与XSLT>读书笔记 一,所有的XSLT处理器必须包括四个内置的模版规则,它们的优先级要低于任何其他规则,所以只要编写一个新的模版规则来匹配相同的式样,就可以覆盖它们.理解内置规则的最好方法就是架设它们总是位于后台,如果没有找到其他匹配一个节点的规则,就应用这些内置规则. <xsl:template match="*|/"> <xsl:apply-templates/> </xsl:template> <xsl:te

《点石成金》读书笔记:为网站增加注意力吸引点

文章描述可用性设计建议--<点石成金>读书笔记. 阅读笔记8-12章 1. WEB设计团队讨论可用性是在浪费时间 原因 1"每个人都喜欢______" 我们也是Web用户对网站上自己喜欢什么不喜欢什么有着强烈的感觉.而且由于主张的力量和人的天性自然有种把这些喜欢或不喜欢投射到整个Web用户身上的倾向. 2职位情绪 设计师通常认为大多数人喜欢视觉上看起来有趣的网站开发人员认为人们喜欢功能又多又酷的网站在建立优先级时他们在看法上的不同常引发冲突. 更大的冲突是市场文化和工程文化

深入了解JVM-----Inside JVM读书笔记

笔记   本文首先介绍一下Java虚拟机的生存周期,然后大致介绍JVM的体系结构,最后对体系结构中的各个部分进行详细介绍. (  首先这里澄清两个概念:JVM实例和JVM执行引擎实例,JVM实例对应了一个独立运行的java程序,而JVM执行引擎实例则对应了属于用户运行程序的线程:也就是JVM实例是进程级别,而执行引擎是线程级别的.) 一. JVM的生命周期 JVM实例的诞生:当启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String

PHP-SOCKETS读书笔记

笔记 学习PHP2个月了,收获挺多.但是与别人不同的是,我更喜欢SOCKET.PHP在SOCKET这方面的文章太少了.所以决定写一系列PHP-SOCKET读书笔记.一直从最基本写到SOCKET_RAW.实例+心得.实例将会有端口转发(突破防火墙),动网类型EXP,端口扫描,PHP后门,发包型EXP框架.由于学习缘故,每周只能写一篇.现给出卷一.希望大家一起投入到PHP SHELL编程中来. 前言: PHP是世界上最流行的脚本语言之一.一直以来它在WEB编程中得到极广泛的应用.我想说的是PHP不仅

一个男人和三个女人的故事[《.net框架程序设计》读书笔记

.net框架|笔记|程序|设计|示例 第十一章 多事件示例[一个男人和三个女人的故事] 摘要: 应用FCL中的System.ComponentModel.EventHandlerList示例一个类型中发布多事件的应用 场景:一个男生有三个女朋友,各自有不同的爱好,女朋友A爱好音乐,女朋友B爱好美食,女朋友C爱好XXX,为满足各个女朋友,此男生必须进行唱歌.烹饪食物.xxx. 以此制作程序演示单类型多事件的应用,并假设此男同时只能干一件事情(即排除一边xxx一边唱歌或一边xxx一边烹饪的可能J)

101 VB.NET Applications 读书笔记(1)

application|笔记 今天开始看<101 Microsoft Visual Basic .NET Applications>. 这本书是很多人集体编写的,带有101个示例程序,涵盖了VB.NET编程的大部分方面,主要作者是Sean Campbell, Scott Swigart, Bob Carver等. 书由MSPress出版,看了一下,感觉还可以,现在开始写读书笔记吧. 书中提到,书中的程序包含了近700个小时的编程实践(Practice),个人认为,学习编程这东西就是要实践,要读

第十四章 数组[《.net框架程序设计》读书笔记]

.net框架|笔记|程序|设计|数组 第十四章 数组. 内容摘要: 本章讨论了数组的方方面面,对于这种常用类型进行深入研究. 一. 数组简介 三种类型:一维数组.多维数组.交错数组(jagged aray) l 一维数组: Int32[] myIntegers; myIntegers = new Int32[100]; l 多维数组: Int32[,] myIntegers; myIntegers = new Int32[100,100]; l 交错数组:交错数组不受CLS支持 Point[][

asp.net 2.0揭秘读书笔记二:使用Rich控件

Rich控件主要包括: (1)FileUpload控件 (2)Calender控件 (3)Adrotator控件 (4)Multiview控件 (5)Wizard控件 本笔记主要讲了FileUpload控件的简单用法. 1. FileUpload控件用于用户向web应用程序上传文件. (1)把文件保存到文件系统 在FileUpload控件浏览选择好本地要上传的文件后,点击确定按钮进行上传,代码如下所示: protected void Button1_Click(object sender, Ev