今天我们来谈一下谷歌的 (Site Reliability Engineer)。同时,也期望你能在我们介绍的这些运维模式中找到一些共通点,只有找到这些共通点,才能更深刻地理解,并借鉴到真正对我们有用的东西。
谷歌的 SRE 是一个真实具体的岗位,也有明晰的岗位职责。从借鉴意义上来讲,SRE 可以给我们提供更好的学习思路和样板。SRE 这个概念,我应该是 2014 年下半年的时候听到的。当时可接触的资料和信息有限,只知道是谷歌对运维岗位的定义,负责稳定性保障,就没有更多其他的认识了。后来,有越来越多在谷歌工作或接触过这个岗位的专家开始在公开演讲中分享这个概念。
同时,《SRE:Google 运维解密》,这本由多名谷歌 SRE 亲笔撰写的图书也开始在国内广泛流传,让我们对很多细节有了更加细致的了解。SRE 岗位的定位首先,SRE 关注的目标不是 Operation(运维),而是 Engineering(工程),是一个“通过软件工程的方式开发自动化系统来替代重复和手工操作”的岗位。我们从 SRE 这本书的前面几个章节,可以看到谷歌不断强调 SRE 的工程能力。
我简要摘取几段:Common to all SREs is the belief in and aptitude for developingsoftware systems to solve complex problems.所有的 SRE 团队成员都必须非常愿意,也非常相信用软件工程方法可以解决复杂的运维问题。By design, it is crucial that SRE teams are focused on engineering.SRE 模型成功的关键在于对工程的关注。SRE is what happens when you ask a software engineer to design anoperations team.SRE 就是让软件工程师来设计一个新型运维团队的结果。
与之相对应的,还有一个很有意思的地方,整本书中提到 Operation 的地方并不多,而且大多以这样的词汇出现:Operation load,Operation overload,Traditional/Manual/Toil/Repetitive Operation Works。你可以仔细体会一下,这些大多就是传统的纯人工操作模式下的一些典型词汇。
我们可以看到,从一开始,谷歌就没把 SRE 定义为纯操作类运维的岗位,也正是谷歌换了一个思路,从另外一个维度来解决运维问题,才把运维做到了另一个境界。
SRE 岗位的职责:书中对 SRE 的职责定义比较明确,负责可用性、时延、性能、效率、变更管理、监控、应急响应和容量管理等相关的工作。如果站在价值呈现的角度,我觉得可以用两个词来总结,就是“效率”和“稳定”。