Table of Contents

The Power of Uniformity

统一的力量

每个组织都想快速发展,所以了解那些会使它慢下来的东西很重要。在SRE【1】中,这些往往来自于在做出改变或了解如何改变时的摩擦,操作领域的复杂性,以及选择的自由度中的一个或多个。在Monzo,统一性是保持我们前进的关键;统一性导致了一致性,一致性导致了专注,而专注使我们建立了英国有史以来增长最快的银行。

像所有的初创公司一样,我们开始时有一小群工程师负责公司的全部技术,从低层次的物理基础设施到为客户请求服务的微服务。有了一个小团队和一张空白的画布,我们需要把精力集中在最需要的地方——建设一家银行。标准方法的分层只是意味着我们在解决客户实际问题方面变得越来越高效。与其在每个迭代中从零开始,我们可以把精力集中在真正能带来变化的10%上。

这并不是要扼杀选择的自由或对创新施加不必要的限制,而是要提供一套运作良好的默认方法,以至于很难有理由去做其他事情。当工程师可以创建一个带有处理程序、指标、日志、信号处理和调试端点的服务,并在几分钟内将其运送到生产中,就很难证明从头开始的成本是合理的。有了一个良好的路径,并且有一个共同的理解,即遵循该路径的好处超出了任何个人或团队的局部最大值,人们自然会对他们的创新代币(innovation tokens)的使用变得更加明智。

也许你在读这篇文章时,会想:“这在我的组织里不可能行得通”。统一性不应该被看作是绝对的。对一家公司来说是统一的东西,在另一家公司可能是扩散的。一个历史悠久的组织,拥有不同的系统和应用组合,仍然可以定义趋于统一的方法。我们很容易看着眼前的景象,认为自己已经无法恢复了,但是请试着在你今天所拥有的东西周围画一个界限,再画一个更小的界限,定义你下一步要做什么。

如果你有六种编程语言在流通,而其中一个子集满足了大多数工程师的需求,那么统一性可能意味着在所有未来的开发中对这个子集进行标准化。考虑到明确的原则和围绕选择的限制,任何公司都可以朝着一个更统一、更简单的操作系统发展。

由于每个人都在一个共同的框架下工作,统一性是一种力量的倍增器。任何个人在任何共享组件上的努力都会对组织中的每个其他工程师产生积极的影响。如果我们修复了一个库中的错误,每个人都会受益。如果修复需要重新部署大量的服务,而这些服务都是以同样的方式部署的,我们也会很容易做到这一点。

在一个统一的环境中,操作活动也变得更容易。服务变得可以用业务逻辑的差异来衡量,当每个工程师都了解所有服务的通用组件和通信模式时,他们就更容易支持自己的服务和直接与之互动的服务。

系统变得越来越复杂;通用组件的一致性意味着减少认知负荷,加快执行速度,并专注于对您的业务最重要的事情。对我们来说,从必要性和不成文的约定中诞生的东西,已经演变成一套定义良好的原则和实践,工程师们现在生活和呼吸,有一个共同的平台、一种编程语言、一个所有1600个微服务的框架、一个部署过程和一种监控一切的方法。

我们如何构建本书的结构

SRE虽然涉及复杂的技术系统,但归根结底是一种文化实践。文化是人的产物,这启发我们根据你在组织中的SRE数量来组织本书的各个部分–你具体处理什么,你的一天是怎样的,取决于有多少个SRE工程师。我们将本书的文章分为 “SRE新手” 、0-1个SRE、1-10个SRE、10-100个SRE和 “SRE的未来 ”。

读者如果想找寻先从哪里开始的指导,可以直接跳到最适用于自己的部分;但是,你仍然会发现阅读那些目前并不适用于你日常的部分的文章的价值。

在0到1个SRE时,还没有人被指定为SRE,或者你已经找到了你的第一个SRE,这个角色看起来几乎是孤独的。

在1到10名SRE时,你正在组建一个团队,有知识共享和分工的能力。

在10到100个SRE时,你已经成为一个组织,你需要思考的不仅仅是你所从事的系统,还需要思考如何组织这么多SRE。

“SRE新手” 涵盖了基础性的话题(尽管并不详尽!),对于那些刚刚开始SRE之旅的人来说是很有帮助的,即使是最有经验的SRE,也是一种复习。 “SRE的未来” 包含了一些文章,这些文章探讨了SRE潜在的发展方向,或者是(目前)坐拥时代潮流。

没有必要按照任何特定的顺序阅读本书。你可以从头到尾读一遍。或者,如果你对某个特定的主题感到好奇,可以翻到索引,在那里你可以找到关于该主题的所有文章。把它作为参考指南,或者是灵感的来源–可以在需要的时候提供一个震撼。或者,也许可以建立一个阅读俱乐部,每周一次挑选一篇文章与同事讨论。这就是散文集的魅力所在。我们希望你和我们一样喜欢阅读它们。

结语

SRE系列的文章,有时间我就会翻译一些,希望大家能学到对自己有用的东西。谢谢

翻译不易,转载时请注明原文链接,谢谢

延伸阅读

1.Site Reliability Engineering-中文
   Site Reliability Engineering-english