Table of Contents

Risk and Rot in Sociotechnical Systems

社会技术系统中的风险和腐烂

我们在由人组成的组织中工作,这些人都受到结果偏差的影响,容易低估或高估风险,这取决于我们的团队在多大程度上实现了偏差的正常化。高管们可能会远离一线的现实生活,他们对不利事件概率的理解可能会受到近期结果的强烈影响。

我听说过在运维中有一种现象叫做准备悖论(paradox of preparation)——一个有效管理风险和预防问题的组织可能无法被认可。 由于这种预防性工作,实际上并没有出现糟糕的结果,所以决策者可能会认为风险比实际情况要低很多。 因此,领导者可能会得出结论,阻止负面事件发生的组织不再是对资源的有效利用。

SRE【1】或运维团队的主要职能之一是积极主动地管理风险。这种工作涵盖了广泛的范围,从保持系统的补丁,轮换证书和令牌,验证备份,到不太日常的事情,如编写运行程序和恢复工具,运行灾难测试,为新系统进行生产准备的审查,以及对险些发生的生产事故进行彻底检查。当一个团队超负荷工作或人手不足时,这些工作也很容易被忽视。最终的结果很可能是一场危机和一个新的投资周期的开始。

因此,我们工作的一个重要部分是使我们的工作价值可见,以避免组织腐烂,使我们低估风险和对可靠性投资不足。我们生活在一个数据驱动的世界,但是,我们当然无法追踪那些因为良好的预防工作而没有发生的事件。然而,在我们不处于危机模式的时候,我们可以做许多其他的事情来显示我们的工作如何有助于提高可靠性。

我们可以为我们所做的常规工作创建内部SLO【2】,以管理风险,并设置仪表盘来显示我们是否达到了这些SLO。编写你希望你的服务满足的生产准备标准,涵盖的领域有:变更管理、监控和警报、负载均衡和请求管理、故障转移和容量规划。跟踪你的服务如何满足这些标准(或不满足)。设立混沌工程和游戏日,以测试你的服务如何处理故障,并跟踪这些结果,就像你的事后分析行动项目项目一样。对你的系统进行负载测试,以了解它们是如何扩展的,并解决你在未来一两年内会遇到的瓶颈问题。认真对待差错和意外,并将其与行动项目一起跟踪。所有这些事情都有助于防止偏离常态化,并让我们的工作变得清晰可见。

作为工程师,我们有责任清楚地传达我们系统中的风险,以及我们为减少风险所做的前瞻性工作。然而,鱼是由头向下腐烂的;工程领导者最终会做出关键的决定。因此,他们必须敏锐地意识到结果的偏差,以及一线工程师与他们之间对风险的理解脱节的风险。最重要的是,他们必须注意到危机——自满循环,并保持对弹性和可靠性的适当持续投资,以避免危机。

我们如何构建本书的结构

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

2.Service-Level