Table of Contents

The Human Baseline in SRE

SRE的基本要求

没有所谓的SRE【1】学校。网站可靠性工程是一个独特的职业,因为成为SRE的要求非常广泛,而且这些技能不是普通计算机科学学位课程的一部分。企业雇用SRE的前提是他们有良好的代码,对系统有深刻的理解,知道监控和告警,可以运行任何服务,可以调试生产问题,可以提高性能–以及从帽子里拿出一只兔子(and pull a rabbit out of their hat.)。

拥有这样的范围似乎是超人的,但这需要对事物如何运作有深刻的好奇心,以及四处学习的能力。公平地说,期望每个人从一开始就知道所有这些是不现实的;我们都来自不同的背景,学习方式也不同。我们中很少有人能成为这么多领域中的深度专家,所以相反,我们应该互相依靠,不断提高彼此的技能水平。

提高水平应该是指导和个人努力的综合。指导可以对团队产生深远的积极影响,提高指导者和被指导者的知识水平,并建立更牢固的联系。然而,由于指导需要时间、精力、奉献精神,当然还有良好的意愿,所以它被认为是额外的工作。它通常不计入绩效考核,不被认为具有影响力,也不包括在我们团队的规划中。因此,指导他人成为课外活动,而提升水平往往成为一项单打独斗的运动,由个人自行决定如何实现。

这不应该是一项单打独斗的运动,人们不应该在这方面感到孤独。我相信,指导工作可以贯穿于日常工作中。这里有一些简单的策略可以尝试:

走远路回家(Take the long way home)
         与其把任务分配给能更快完成任务的工程师,不如考虑把任务分配给能从中获益更多的工程师,并得到团队的适当支持/指导。

错误和不完美是可以的(Mistakes and imperfections are okay)
         在合理范围内,让人们犯错,然后让他们改正错误是可以的。此外,接受一个普通的解决方案,让工程师随着时间的推移改进它,也是可以的。

配对系统工程(Pair systems engineering)【2】
         这就相当于结对编程的系统,两个SRE一起执行一项任务,比如说,共享同一个屏幕。

退一步(Stepping back)
         在一个事件中,根据严重程度,更高级的工程师可以退后,让团队的其他成员进行调查。事件中的英雄主义会产生结果,但它也可能使团队的其他成员黯然失色,并阻止他们变得有足够的信心来站出来。

将指导工作纳入团队的日常工作是一个基石,可以使其更具包容性并帮助其茁壮成长。

在运行服务时,我们使用baselines作为我们的系统表现良好的指标,但baselines并不限于我们的生产;它们延伸到运行它的人。The human baselines是团队同意候选人加入团队时应具备的软技能和技术技能的组合。我们时常想雇用那些不完全符合条件的人,但有时,投资于我们认为有前景的人,可能比浪费时间面试寻找独角兽更好。当我们这样做的时候,我们需要有一个框架,帮助新成员达到团队的human baseline,然后再超越它。

随着时间的推移,在我们团队的帮助下,技能可以得到提高。还有什么比一个相互关心的团队更有生产力和效率吗?

我们如何构建本书的结构

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.結對程式設計 (Pair programming)
結對程式設計是一種敏捷軟體開發的方法,兩個程式設計師在一個電腦上共同工作。一個人輸入代碼,而另一個人審查他輸入的每一行代碼。輸入代碼的人稱作駕駛員,審查代碼的人稱作觀察員。兩個程式設計師經常互換角色。 在結對程式設計中,觀察員同時考慮工作的戰略性方向,提出改進的意見,或將來可能出現的問題以便處理。