97 Things Every SRE Should Know-28
Table of Contents
I Have an Error Budget—Now What?
我有一个错误预算,现在怎么办?
SLI、SLO和错误预算是网站可靠性工程的基石。关于它们是什么已经写了很多,但关于如何使用它们却没有写很多。经典的例子是:“当你有错误预算时,就能够发布一些新功能;当你没有错误预算时,就停止发布新功能并专注于可靠性”,这有点过时了,并没有真正揭示出你可以用你的数据做出的所有伟大的决定。
那么,如果这不仅仅是关于发布新功能与否的问题,我们可以用错误预算数据来做什么呢?
事实上,您可以使用错误预算来决定何时发布新特性,如果我没有提到这一点,那就是我的疏忽了。对代码或配置的更改是导致新问题的最常见的向量,所以有时说“让我们稍微放慢速度,找出使事情更稳定的方法”实际上是完全合理的。但是,让我们花些时间讨论一下,利用错误预算数据,您还可以做出哪些其他决定。
错误预算数据的一个更合理的用途是确定你的项目工作重点。基于SLO的可靠性方法是为你提供更好的数据,来进行更好的讨论和做出更好的决定。在很多情况下,硬性规定何时发布代码可能没有什么意义,但使用这些数据来帮助你弄清楚你的团队应该关注什么,确实有很大的意义!你不必停止发布流程就可以说:“我们比预期目标更加不可靠–也许在下一个冲刺阶段,一半的团队专注于修复这个问题,而不是功能工作。 ”
你也可以使用你的错误预算状态来计算何时进行实验(混沌工程[1]实验)。当引入更改时,你将了解系统,所以要有目的地引入变化,看看你的服务是如何反应的!这可以是-任何东西,从混乱工程到执行故障转移练习,甚至像实验一个新的算法或垃圾收集方法。使用你的错误预算来计算出进行这些实验的正确时间;如果你的服务最近不太可靠了,也许暂缓是有意义的,但如果你有大量的错误预算剩余,做你想做的事吧!
更加可怕的事情是故意消耗掉你的超额预算。如果其他服务依赖你的服务,则需要确保自己的可靠性不比广告宣传的可靠性高。故意关闭你的服务,这样依赖你的服务的团队就可以了解到当你不可靠时他们的服务表现如何。
最后,你也可以什么都不做! 如果你有大量的错误预算剩余,也许你只是让事情保持这样,因为你的团队有其他紧急的优先事项。如果你已经用完了你的预算,甚至超过了好几倍,则可能是因为你正在等待一批新硬件来帮助解决问题,或者是你经历了一个黑天鹅事件,没有一个合理的理由来进行可靠性工作。
关键是,错误预算是为你提供更好的数据,以做出更好的决定。如果你有一个有意义的SLI和一个合理的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系列的文章,有时间我就会翻译一些,希望大家能学到对自己有用的东西。谢谢
延伸阅读
Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.