SRE(Site Reliability Engineering,站点可靠性工程)这一理念最早由 Google 于 2003 年提出,并在 2016 年通过《Site Reliability Engineering》一书在全球范围内广泛传播。
SRE 概念大约在 2017 年前后开始进入中国大陆的技术社区和互联网企业视野。
随着国内云计算、微服务和大规模分布式系统的发展,越来越多的中国互联网公司(如 阿里巴巴、腾讯、字节跳动 等)开始关注并引入 SRE 实践。
2018 年以后,SRE 相关的书籍、社区、技术大会和岗位招聘在中国大陆逐渐增多,SRE 已成为国内大型互联网公司提升系统可靠性和自动化运维能力的重要方法论之一。
那么,Google 为什么会提出 SRE?Google 运维工程师如何转型成 SRE? Google SRE 工程师的 OKR 是什么样的呢?
SRE(Site Reliability Engineering,站点可靠性工程)是 Google 于 2003 年首次提出的一种工程实践和文化理念,旨在通过软件工程的方法来管理和运维大规模系统。SRE 团队的核心目标是提升服务的可靠性、可用性和可扩展性,同时保持开发创新的速度。
SRE 的核心思想是将传统的运维工作自动化、工程化,把『运维』变成『软件问题』,用代码和自动化工具解决系统的可用性、容量、变更管理等挑战。SRE 通常与 DevOps 理念相辅相成,但更强调工程化和量化目标(如 SLI、SLO、SLA)。
Google 首次组建 SRE 团队,由 Ben Treynor Sloss 领导,目标是用软件工程师的方法来管理生产系统。
Google 出版了《SRE:Google 运维解密》一书,系统总结了 SRE 的理念、方法和最佳实践,推动了 SRE 在全球范围的普及。
进入中国大陆的技术社区和互联网企业视野。
随着云计算和微服务架构的兴起,SRE 的理念被越来越多的互联网公司和大型企业采纳,成为现代 IT 运维和服务管理的重要方法论。
SRE 已经成为全球范围内提升系统可靠性和运维效率的主流工程实践。
许多公司都设有专门的 SRE 团队,负责服务的可用性、自动化运维、容量规划、故障响应等工作。
SRE 不仅仅是一套技术方法,它更是一种文化变革,强调 工程师对服务可靠性的共同责任,以及 通过数据驱动和自动化持续改进系统。
事件(Incident) 是生产环境的一类故障。并不等同于生产事故。
一个事故可能是一个事件,但一个事件并不一定是一个事故。
基于 Google 强大的监控体系,『大多数事件是被自动发现和创建出来的』。会通过电子表格记录所有事件及其缓解时间。
在创建事件的同时,还会『自动分析并记录一些事件的相关信息』,以备后续作为定位分析的输入。
在 Google SRE 的实践中,事件(Incident) 是以 Google 产品(Product) 为单位来记录的,而不是其内部的某个服务组件。
例如,如果 App Engine 发生故障,会为 App Engine 这个产品声明一个 事件(Incident),而不是为其内部的某个服务或团队单独声明该事件。
一个事件是根据其影响,可能会被记录到多个 产品(Product) 上,但最终会有一个 "父" 事件。
例如,某个基础设施服务(如 认证服务)宕机,因其所有受影响的产品都会声明各自的这次事件,但这些事件会有一个『父』事件(即 认证服务 的产品事件)。
Google SRE 对事件的影响有明确的分级标准:
影响分级的变量 包括:
每个事件都需要声明自己在其附着点的影响级别,可以不同。
例如,认证服务 可能声明为『极严重』事件,但如果对用户的影响较小的话,Google App Engine 可能只声明为『轻微』。
Google 建议各团队根据自身及客户当前面临的问题设定目标,而不是设定全局统一目标。
但是拥有标准化的影响定义、缓解时间等指标非常有用。
Google 的事件管理工具会自动捕获所有这些元数据,并在报告中提供,便于数据分析和目标追踪。对于所有影响为 Medium 及以上的事件,都会进行事后复盘(Postmortem),并检查所有元数据的准确性。
我们以缓解时间(TTM,Time to Mitigation)和 恢复时间(TTR,Time To Recovery)为例。
关于 MTTR 等概念,请参考文章:度量:MTTR,MTBF,MTTF,你分得清楚么? 在 SRE 团队内部,其在 2022 年前后,关注的并不是传统的恢复时间(Time To Recovery),而是『缓解时间(Time to Mitigation)』。
TTM 是指:用户不再感知到问题的时间点,而不是事件完全『解决』且不再需要 SRE 介入的时间(后者有时会更长)。
笔者认为,软件工程师
SDE可能就会关注TTR。
不同级别的 SRE,其 OKR 的关注点可能也不同。
例如,一个 Principle SRE 可能更关注那些影响为 Medium 及以上的事件。
由于事件的 TTR 时间分布不是正态分布,所以,并不使用 MTTR(平均值),而是采用 75 分位数(P75)作为衡量标准。
例如,某个 Principle SRE 的半年 OKR 目标是:
『对于 Medium 及以上事件,2022 H2 的 TTR(P75) 值要比 H1 降低 50%』
以上内容涵盖了 Google SRE 在事件管理、影响分级、MTTR 计算、目标设定和元数据采集等方面的实际做法和经验。
作者注:由于信息获取并非
SRE(Site Reliability Engineering,站点可靠性工程)是由谷歌提出的一套将软件工程方法应用于基础设施和服务可靠性管理的体系。
其核心理念围绕“用工程思维解决可靠性问题”,打破传统运维与开发的边界,以数据和量化指标为驱动,平衡业务快速迭代与系统稳定性。以下是 SRE 的核心思想提炼:
它将可靠性从“运维的责任”转化为“整个团队的技术目标”,通过数据量化、自动化、跨学科协作,在快速变化的业务需求中找到稳定性的平衡点。核心不是“不出错”,而是“知道哪里可能出错、能承受多少错误,并通过技术手段持续优化”。