您现在的位置是: 首页 > 科技 >

了解谷歌如何运行其生产系统

  • 2019-12-08 16:18:56
这本书帮助读者理解一些谷歌人是如何思考的:它包含了超过125位作者的想法。四位编辑,Betsy Beyer、Chris Jones、Jennifer Petoff和Niall Richard Murphy,设法将所有不同的观点编织成一个统一的工作,传达了管理分布式生产系统的一致方法。

Site Reliability Engineering提供了34个章节——共计500多页来自O'Reilly Media的印刷页面——这些章节包含了保持谷歌生产系统工作的原则和实践。整本书可以在https://landing.google.com/sre/book.html的网站上找到,还有其他演讲、采访、出版物和活动的链接。

大多数IT操作专业人员会发现这些主题都很熟悉:风险管理、停机跟踪、负载平衡、产品发布、故障排除、通信等等。在谷歌,现场可靠性工程师(SRE)的职位将软件工程师放到了运营团队中。(SRE工作的许多方面与其他组织中的DevOps角色相似。)该书使用了一个假设的服务——莎士比亚搜索服务——来展示SREs如何与各种系统协同工作。

以下五个观点只是本书所涵盖主题的一小部分。

在《拥抱风险》一书中,Marc Alvidrez强调,服务的可靠性需要根据用户需求和产品经理的目标来确定,并与成本进行权衡。因此,低于100%的可用性可能是可取的。例如,当谷歌在2006年收购YouTube时,该产品仍在快速发展,因此一个较低的可用性目标(即。,增加对不可用风险的接受)将允许更快地添加更多的特性。相反,G套件的可靠性目标可以“设置为99.9%的外部季度可用性目标”,而内部目标设置得更高。然后,Mark Roth详细阐述了产品和SRE团队如何处理他们所谓的“错误预算”。

Vivek Rau给出了“辛劳”的具体定义:“手工的、重复的、自动化的、战术的、没有持久价值的、随服务的增长而线性扩展的”工作。在“消除辛苦”一章中,我们详细地定义了这些术语。季度调查显示,SREs将三分之一的时间花在了被定义为辛苦的工作上。谷歌的自动化发展详述了谷歌随时间自动执行任务的各种方式,从自动化MySQL故障转移任务到减少启动新集群所需的时间。

在其中一个较长的章节《数据完整性:你读什么就是你写什么》(Data Integrity: What You Read Is What You write)的末尾,雷蒙德·布鲁姆(Raymond Blum)和Rhandeev Singh两次提到,谷歌通过离线保存数据避免了潜在的数据丢失。第一个案例研究详细介绍了谷歌如何在2011年将数据从GTape恢复到Gmail。第二部分讲述了团队如何处理将5000盘磁带中的数据恢复为谷歌音乐的后勤挑战。正如作者所写的,这两个例子都说明了对健壮的数据恢复系统的需求,“认识到不仅任何事情都可能出错,而且所有事情都将出错,这是为任何真正的紧急情况做准备的重要一步。”

虽然很少有公司规模谷歌分布式操作系统,如果你理解distributed-consensus系统的体系结构,你可以做出决定,有助于提高系统的可靠性和服务通过选择与供应商合作,构建系统基于这些原则。Laura Nolan涵盖了现代多站点数据中心经理在管理临界状态时需要知道的基本概念:可靠性的分布式共识。

有时候,看似简单的改变就能带来改变,比如由谁来主持会议。Niall Murphy(与《SRE中的沟通与协作》的几位合著者)建议,当两个SRE团队通过视频进行会议时,让一个人从人数较少的站点主持会议是有帮助的。这是一种帮助平衡两个不同规模的远程团队之间的力量动态的微妙方法。科学吗?不。有用吗?是的。

SRE的长期影响产生了高度自动化的系统,可以用越来越高的抽象级别来管理这些系统。正如该团队的口号所说,“SRE是当您将操作视为软件问题时所得到的结果。”

站点可靠性工程对于任何参与IT操作的人来说都是值得一读的。对于大型企业中拥有一个或多个数据中心的人员来说,这尤其值得花时间。在阅读它之后,您将无法复制谷歌的系统。但是,您将深入了解逻辑谷歌SREs方法是如何工作的,如何解决问题,如何清晰地传达技术概念。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
Top