6.0

6.0 第6部分导言:可靠性、运营与安全指标

第2部分涵盖了一项变更如何从一次提交抵达生产环境;这一部分涵盖的是它在那里运行起来之后会发生什么,无限期地、在团队无法完全控制的真实条件下。可靠性、运营与安全指标,正是软件工程的承诺与持续的现实相遇的地方:不是”这次部署成功了吗”,而是”这个系统能否日复一日地保持运转,在负载下,在攻击下,在一份必须维持多年、而不只是撑到下一次事件的待命轮值的压力下”。

这一部分的四个主题遵循一条刻意设计的脉络。服务水平指标与目标(主题 6.1)确立了这一部分其余一切所依赖的词汇和目标设定纪律。事件指标(主题 6.2)衡量的是当那个目标未能达成时会发生什么。待命与容量指标(主题 6.3)衡量的是维持目标达成所付出的人力和基础设施成本。安全与漏洞指标(主题 6.4)把同样的可靠性纪律,延伸到一种不同但密切相关的风险:不是”这会自己出故障吗”,而是”会不会有人故意让它出故障”。这四个主题都共享本书的核心纪律:指出这项指标,指出它是如何被操纵的,并把它与能够捕捉这种操纵的护栏配对。

对大团队而言,这一部分的指标,正是工程的承诺变得具有合同约束力、在政府情境下有时甚至具有法律约束力的地方。企业组织依据主题 6.1 所引入的指标来签订服务水平协议,未能达标会有真实的经济处罚;政府组织运营着关键的公共基础设施,一次可靠性或安全故障所带来的后果,远远超出单一公司的资产负债表。这一部分自始至终都认真对待这份分量。

本部分各主题

  • 6.1 服务水平指标、目标与错误预算: 支撑整个站点可靠性工程的词汇和目标设定纪律,以及一份错误预算如何把可靠性变成一种可花费、可管理的资源,而不是一个无法企及的绝对值。
  • 6.2 事件指标:检测、响应与恢复: 衡量一个组织察觉、响应并解决一次故障的速度,以及让这种测量保持诚实的无责纪律。
  • 6.3 待命、容量与运营负载指标: 维持可靠性所付出的人力和基础设施成本,以及为什么一份不可持续的待命负担最终自身也会显现为一个可靠性问题。
  • 6.4 安全与漏洞管理指标: 把同样这套有纪律、护栏配对的方法,延伸到安全风险上,从漏洞发现一直到补救。

这些主题如何相互关联

主题 6.1 为这一部分后面每个主题都以此为基础打下了地基:没有一个清晰的服务水平目标,“这次事件有多糟糕”(主题 6.2)和”我们的待命负荷是否可持续”(主题 6.3)就没有一个共享的参照点可以据以衡量。从真正的意义上说,主题 6.2 的事件指标,是主题 6.1 所引入的错误预算花费的记录;主题 6.3 衡量的是负责让这种花费保持在预算之内的那套人力系统的可持续性;主题 6.4 把同样这套目标与预算的思维方式,应用到一种在不被测量的情况下、往往只在一次事件之后被动地、而不是主动地获得关注的安全态势上。

这一部分直接连接回第2部分:DORA的变更失败率与故障部署恢复时长(两者都在主题 2.10 涵盖)分别是这一部分事件指标的一项先行指标和一个实例。它也向前连接到第8部分,那里的仪表盘和项目成熟度指导大量借鉴了这一部分的错误预算模型,把它当作一个把一个抽象目标(可靠性、安全性)转化为一个具体、可跟踪、非绝对目标的实例,让一个团队真正能够日复一日地管理它。