关于生产事故最普遍的看法是,真正重要的是响应速度——团队反应越快,结果就越好。这个前提听起来很合理,直到你观察到真正危机的第一分钟实际发生的情况:人们重复工作,没有人协调与利益相关者的沟通,工程师在渠道中相互挤压,以及由喊得最大声的人做出关键决策。没有结构的速度并不能解决事件,它会加剧混乱。
为什么大多数团队仍然即兴发挥
几乎每个团队都有一些操作手册、一些 Slack 上的 #incident 频道以及一些模糊的严重性定义。问题在于这些部分是孤立存在的,没有构成一个连贯的过程。当事件真正发生时,没有人知道谁负责,谁与客户交谈,谁记录了时间表。每个人都根据自己的本能行事——这与周围每个人的本能不同。
这不是性格缺陷。这是一个设计缺陷。事件响应过程并不是由有能力的工程师的善意自然产生的。它需要经过精心设计、记录,最重要的是,在真正必要之前进行实践。仅在真实事件中测试流程的团队正在以最昂贵的方式学习。
管理良好的事件的剖析
结构化事件始于明确的严重性。纸上有 SEV1、SEV2、SEV3 是不够的:每个级别都需要有客观标准——财务影响、受影响用户的百分比、SLA 降级——以及明确的响应影响。 SEV1 在凌晨三点叫醒每个人。 SEV3可以等待营业时间。如果没有定义这些标准,每个值班工程师都会自行决定什么严重程度足以升级。
从严重性声明来看,需要明确分配三个角色。事件指挥官(IC)是指挥现场的人:不一定是房间里技术含量最高的人,而是维持流程、委托调查、在出现僵局时做出决定并决定何时解决事件的人。技术主管专门专注于诊断和缓解,而不用担心沟通或协调。 Comms Lead 负责照顾内部和外部利益相关者,提供状态页面并响应领导者想要了解正在发生的情况的消息。当这些角色不明确时,技术主管会浪费时间在 Slack 上做出响应,而系统仍然崩溃。
孤胆值班英雄的陷阱
有一个浪漫化的事件响应版本,其中最有经验的工程师出现,访问终端,并通过一系列神秘的命令,在二十分钟内解决所有问题。这个英雄存在于某些队伍中,而这正是这些队伍出现严重问题的原因。
孤独的英雄会产生依赖,积累倦怠,并且不会转移知识。当他去度假时,团队害怕任何警告。当他辞职时——他会辞职,因为值班的英雄不会持续太久——团队发现没有其他人知道关键基础设施是如何工作的。除其他外,结构化事件响应是一种知识分配策略。当流程存在并且角色轮换时,更多的人了解系统,更多的人感到有能力做出响应,对单个人的依赖就会减少。
如何构建一个在不破坏团队的情况下缩短 MTTR 的流程
对于评估流程健康状况最重要的指标不是事件数量,而是 MTTR,即平均恢复时间。缩短 MTTR 是多项设计决策的结果,而不是迫使团队在压力下更快地工作。
第一个杠杆是警报的质量。拥有数十个嘈杂警报的团队会训练工程师忽略通知,从而产生系统性风险:当真正重要的警报到达时,它会迷失在噪音中。更少的警报,更准确,有足够的背景信息让工程师能够立即了解问题出在哪里以及在哪里查找——这减少了最初几分钟的迷失方向,而这种迷失会导致大量的 MTTR。
第二个杠杆是实时操作手册。不是创建一次后就被遗忘的文档,而是在每次事件发生后更新的资源,其中包括有效的诊断、有帮助的命令以及要避免的误报。该操作手册不会取代判断,但它消除了为以前遇到的问题重新发明解决方案所花费的时间。
第三个杠杆是刻意练习。消防演习——在工作时间内模拟事件并计划场景——是一个在理智上了解流程的团队与一个能够在压力下执行流程的团队之间的区别。对运行模拟的抵制通常来自于“我们有真正的工作要做”的论点。周日晚上 SEV1 期间一支毫无准备的球队所付出的代价清楚地回答了这个论点。
事后分析作为一个学习系统
事件响应中最被低估的部分是系统恢复后发生的情况。无可指责的事后剖析——不追究个人责任——的存在是出于技术原因,而不仅仅是道德原因:复杂的系统失败是因为系统条件,而不是因为工程师在凌晨两点在信息不完整的情况下做出了错误的决定。责备他人是结束谈话的一种解释。了解导致该失败的条件才能防止下一次失败。
良好的事后剖析包括事件的事实时间表、超越直接症状的根本原因分析(五个为什么直到达到系统状况)以及具有明确所有者和截止日期的纠正措施。能够产生学习的事后剖析与官僚主义的事后剖析的区别在于问题的诚实性:监控系统没有检测到什么?是什么建筑决策使得爆炸半径如此之大?部署过程是否有任何可以防止这种情况发生的关卡?
在出色的事后分析中积累的知识是工程团队最宝贵的资产之一。它是关于系统如何失败的集体知识,而这些系统化的知识使我们能够逐步构建更具弹性的系统。
另请阅读
- [实践中的SRE:工程和运营合并时会发生什么变化0
- [站点可靠性工程指标:定义和监控 SLI、SLO 和 SLA1
- [Bug 追踪:完整指南2
- 【Bug追踪:真实案例的良好实践3
- [错误跟踪:使用清单的良好实践4
- [软件测试周期:趋势与清单5
