专业书籍精读 · SRE · 合辑 01

值班与事故响应:唯一无法自动化的那部分

Site Reliability Engineering · Ch 11 / 13 / 14 / 16 · Google · 2016

EN →

这几章讲什么?

你刷的每个 App 背后,都有一群人轮班守着。半夜系统出问题,手机响的就是他们。Google 这本《SRE》里有四章专门讲这件事:怎么排班才不把人熬垮、警报响了第一步该干什么、一群人同时救火怎么不打架、以及每次响过的警报要不要记账。这几章合起来是全书最「不技术」的一部分——因为它管的是人。

先说个怪事

系统崩了,公司派了一屋子最强的工程师去救,结果修得比只派两个人还慢。为什么?因为十个人各自打开笔记本,各查各的、各改各的:A 刚重启了一台机器,B 正好在往那台机器上导数据,C 以为是网络问题去动了配置,D 在给老板写邮件却拿到的是半小时前的情况。力气全用在互相抵消上。

旧世界为什么难

过去救火靠「英雄」:某个待得最久、脑子里装着全部历史的人,一被叫醒就知道该看哪儿。这套模式有三个致命伤:英雄会累、会请假、会离职;新人永远学不到他脑子里的东西;而且没人知道这个月到底被叫醒了多少次——痛苦全被个人默默吸收,公司账上看不见,所以永远没人去修那个天天半夜响的破警报。

核心机制:把消防队搬进机房

这几章的答案很朴素:抄消防队。真实火场上,最有经验的那个人不拿水枪——他站在外面当现场指挥,只负责「现在谁在做什么、下一步做什么」。拿水枪的是另一组人,而且只有他们能动阀门,别人再着急也不许伸手。还有一个人专门对外通报,让家属和记者拿到的是同一份最新说法。现场支一块白板,写着「起火点在哪、已经封了哪几层」——谁半路加入,看白板就能跟上,不用打断任何人问一遍。

另外两件同样重要:排班要养得住人——一个班被叫醒的次数得有上限,因为每次事故后都要坐下来好好复盘,堆多了就只能草草了事;每次警报都要记一笔账——响过几次、其中几次真需要人起床。记了账才看得见:有些警报响了整个季度,没有一次是真的;看见了,才好意思删掉它。

带来了什么

把救火从「靠某个人的记性」变成「一套谁都能跑的流程」:新人有路可学,老人有假可休,痛苦变成了能拿到会上讨论的数字。代价也很实在:这套流程本身有开销,小毛病也摆开指挥体系,纯属浪费。所以真正的手艺在于判断什么时候该升级、什么时候就地修掉。

一句话记住

救火不是比谁手快,是比谁不乱:指挥的人不动手、动手的人只有一组、对外只有一个口径、现场有一块谁都能看的白板。再加上排班养得住人、警报笔笔记账——这几件事,机器替不了。

想进到角色分工、具体阈值和示意图? → 切到精读版