SRE(站点可靠性工程)是 Google 于 2003 年创立的一套工程实践,核心思想是”用写软件的方式做运维”——当运维问题反复出现时,应该写代码自动化解决它,而不是靠人肉重复操作。

核心概念

  • SLO(Service Level Objective):服务级别目标,如”99.9% 的请求在 200ms 内响应”。SLO 是 SRE 决策的锚点
  • 错误预算(Error Budget):100% 减去 SLO 得到的”允许出错的空间”。预算充足时可以加速发版,耗尽时冻结变更专注稳定性
  • Toil(琐事):手动的、重复的、可自动化的运维工作。SRE 的目标是将 toil 控制在 50% 以下,剩余时间用于工程化改进
  • On-call:值班轮换制度,但通过自动化和 runbook 减少人为干预

与 DevOps 的关系

如果 DevOps 是”开发和运维应该协作”这一理念,SRE 就是”具体怎么做”的一种回答。SRE 团队通常同时具备开发和运维能力,用 SLO/错误预算等量化工具将”可靠性”从主观感受变成可度量的工程指标。

延伸

  • Playbook / Runbook:预定义的故障处理步骤手册,SRE 实践中的标准产物
  • Postmortem(事后复盘):无责复盘文化,关注系统改进而非追责