事故处理流程泳道图:发现-止血-恢复-复盘-改进的责任边界

线上出事故时,你需要的不是一张“描述发生了什么”的图,而是一张把人从混乱里拉回秩序的图:谁来指挥、先做哪一步、每一次交接要交什么、什么条件算“止血”、什么条件才能“恢复”、什么时候必须回滚、怎么对内对外同步。

一张能在事故现场用起来的事故处理流程泳道图,通常要解决四个问题:

如果你想把这些节点快速排成一张清晰的泳道图,并能导出高清图片给群里、文档里、复盘报告里直接用,可以用:泳道流程图在线制作

一、先把“事故处理”定义清楚:不是修 bug,而是把服务拉回可用

很多团队把事故处理等同于“把问题找出来并修掉”。但事故现场的优先级顺序更像这样:

  1. 确认影响:到底影响了谁、影响多大、什么时候开始。
  2. 控制扩散:先止血,把系统从失控状态拉回可控。
  3. 恢复服务:恢复到可接受的可用性与数据一致性。
  4. 追根因与改进:在稳定后做复盘,把同类事故变成更难发生。

这也决定了泳道图上“主干节点”的顺序:发现 → 分级/升级 → 指挥建立 → 止血 → 恢复 → 结束 → 复盘 → 改进落地

1.1 事故处理节点要写“可执行动作”,不要写抽象状态

更好用的节点命名方式:

容易让人吵起来的节点命名:

状态可以作为节点旁注,但节点本身要能被执行、能被验收。

二、泳道怎么分:建议 6 条泳道,别把“沟通”塞到备注里

事故处理时,技术动作和沟通动作是并行发生的。把沟通写在备注里,实际效果往往是:

更稳妥的做法是:把沟通放进泳道图里,明确负责人、频率、口径版本。

2.1 推荐泳道(通用可套用)

  1. 监控/平台(告警、日志、发布系统、工单):告警触发、自动化隔离、变更记录、工单归档。
  2. 值班/一线响应(On-call):首响、初步判断、拉群、初步缓解。
  3. 指挥/记录(IC + Scribe):分级、角色分配、节奏控制、时间线记录、决策确认。
  4. 技术处置(SRE/运维 + 开发):止血方案选择与执行、回滚/切换/降级、根因定位。
  5. 验证(QA/业务):功能与数据验证、回归范围确认、恢复判定。
  6. 沟通(产品/客服/运营/PR):对内播报、对外公告、客户解释、工单回复模板。

如果你们公司有安全合规要求,可以把“安全/风控”作为第 7 条泳道加入;否则建议先用“参与方旁注”表达,避免图变成一张巨大的地图。

2.2 每条泳道最少要有的“交接物”

没有交接物,流程就会退化成“口头说了算”。

三、严重级别与升级条件:把“什么时候拉人、什么时候停发布”写进图里

事故处理最常见的拖延不是技术问题,而是决策迟疑:

建议在泳道图里专门画一个“分级/升级判断节点”,并把触发条件写得能落地。下面给一个可直接套用的例子(你可以按业务调整阈值):

3.1 一个可执行的分级示例

3.2 升级条件写法(直接放到判断节点旁)

升级不是“更紧张”,升级意味着:更清晰的指挥链路、更快的决策、更完整的记录

四、事故处理流程泳道图模板(主干 16 步):照着画就能跑

下面这套流程适合大多数互联网/企业系统:既包含技术处置,也包含沟通与复盘入口。你可以在图上用“主干 + 分支”的方式呈现。

Step 1:告警触发与首响确认(判断误报)

把“排除误报”画成显式分支,能减少很多“大家跑起来又发现没事”的成本。

Step 2:建立事故工单与事故群(把沟通与记录拉到台面)

对内播报不需要很长,建议包含四项:现象、影响、当前措施、下次更新时间。

Step 3:分级与升级(决定节奏)

Step 4:收集关键信息(最少三类:时间、版本、变更)

很多事故的突破口就是“最近改了什么”。把“变更清单”作为交接物,后面每一步都会用到。

Step 5:快速影响评估(别靠感觉)

Step 6:选择止血策略(四选一为主)

止血策略建议在泳道图上画成“决策节点”,并写出选择依据:

事故现场常见误区:一上来就“彻底修好”。更可取的是先止血,再修。

Step 7:执行止血(务必留下可追溯的操作记录)

如果你们需要把止血动作快速画成“节点—连线—责任”并导出给复盘文档,直接用:泳道流程图在线制作

Step 8:止血有效性验证(指标 + 业务双验证)

止血不是“感觉好了”,而是“指标与业务都回到阈值内,并持续一段观察期”。

Step 9:恢复策略(从“可用”走向“稳定”)

这里特别建议在泳道图里增加一个“数据风险判断节点”:

Step 10:对内对外同步(固定频率,降低噪音)

对外通告写法建议只包含:现象、影响、当前状态、预计下一次更新时间、补偿方式(如有)。避免在未确认前把根因写死。

Step 11:恢复判定(明确“退出事故”的门槛)

Step 12:解除发布冻结(或继续冻结并说明原因)

Step 13:结束事故(宣布进入复盘)

Step 14:复盘准备(时间线、证据、决策点)

Step 15:复盘会议(把“怎么避免再发生”落到具体行动)

Step 16:改进落地与回收(没有回收就等于没做)

事故处理真正的终点不是“恢复”,而是“下次同类问题更难再把你打趴”。

五、三个常见反例(以及怎么改成可执行的泳道图)

反例 1:图上只有技术节点,没有指挥与沟通

症状:流程图看起来很“工程化”,但事故现场还是一团乱:谁来拍板回滚?谁对外发公告?谁在记录时间线?

修正:增加两条泳道:

并在关键决策点(升级、回滚、恢复判定)画出“谁确认、输出是什么”。

反例 2:回滚节点写成一句“必要时回滚”

症状:看上去留了后手,但真正需要回滚时发现:

修正:把回滚拆成 4 个节点,并写出交接物:

  1. 回滚条件确认(触发阈值、时间窗口)
  2. 回滚方案与风险说明(含影响范围)
  3. 回滚执行(变更单/操作记录)
  4. 回滚验证(指标 + 业务)

反例 3:止血与恢复混成一段,节奏失控

症状:团队一边找根因一边改代码一边扩容,一小时后发现指标反弹,大家还在同一堆动作里打转。

修正:在图上明确两个阶段边界:

并要求止血完成必须经过“止血有效性验证”节点,验证不过就回到策略选择。

六、事故处理泳道图验收清单(发到群里就能对齐)

你画完图后,可以用下面这份清单做一次“能不能在事故现场用”的自检:

七、FAQ:事故处理流程里最容易问的 7 个问题

1)什么时候必须“发布冻结”?

当你满足下面任一条时,发布冻结通常是合理的:

冻结不是“躺平”,冻结是为了把变量减少,让止血更快发生。

2)指挥一定要是技术负责人吗?

不一定。指挥的核心能力是:控制节奏、做决策、协调资源、把信息说清楚。

在一些团队里,SRE 做指挥更合适;在另一些团队里,值班负责人或某位资深工程师更合适。关键是:指挥只能有一个,而且角色要在流程图里明确。

3)止血策略选哪个最稳?

没有“最稳”,只有“最匹配当前风险”。

把选择依据写在决策节点旁,能显著减少争论时间。

4)为什么要同时做“指标验证”和“业务验证”?

指标好看不代表业务真的恢复;业务能下单也不代表系统指标健康。

事故里常见的“假恢复”包括:

双验证能把这种坑提前踩掉。

5)对外通告什么时候发、发什么?

当影响明确、用户感知明显,且短时间无法恢复时,对外通告通常比沉默更好。

通告建议只写可确认的信息:现象、影响范围、当前状态、下一次更新时间。根因未确认前,不要把“猜测”写成结论。

6)事故结束后,复盘最重要的产出是什么?

最重要的不是“写得漂亮的复盘文档”,而是三件可验收的东西:

7)流程图画好了,怎么保证真的会用?

把流程图和两件事绑定:

图只是一张纸;让它在真实场景里跑起来,才算真正完成。