Skip to content
返回运维与 SRE

复盘流程

5 工作日内运行结构化复盘,产时间线、根因和被跟踪行动项。

为什么

无复盘的事件是未学的课 — 同系统原因(无部署门、无金丝雀、无 runbook)存活产下次宕机,团队事件史是独特事件列表非模式。5 工作日内(记忆新鲜数据可用)结构化复盘产数据驱动时间线、5 个为什么找到的根因、带负责人和到期修系统的行动项。流程重要因它是组织从宕机学习的机制:无它每事件付客户信任但学习浪费。有它每事件使下次更不可能,这是改可靠性的唯一可持续方式。

何时使用

每个 SEV1 和 SEV2 后,解决后 5 工作日内。SEV3 可选;SEV4 无。

如何做

1. 解决后 24h 内排,5 工作日内开
   - 邀:IC、值班、变更作者、SME、引导者(无指责守护)
   - 60-90 分钟;每人来前已审查时间线草稿

2. 会前从数据建时间线
   - 引导者拉告警、部署、聊天日志、指标截图入时间线草稿
   - 会议审查并修正时间线;数据驱动非记忆驱动

3. 用 5 个为什么找根因,停在系统修复
   - "为何结账坏?" → "null 折扣抛" → "无 null 测试" → "无要求测试的门" → ...
   - 停在可用系统变更修的原因(加测试、加门),非"更小心"

4. 写行动项:负责人、到期、系统修复
   - 每项修系统非人;无"更小心"项
   - 在团队 issue 跟踪器跟踪,非复盘文档

5. 发布并跟踪到完成
   - 复盘向全组织分享(无指责故无秘密)
   - 行动项在冲刺规划审查直到全发布;事件未关直到它们完

示例

# postmortem-2026-03-15-checkout-down.md
**严重性:** SEV1  **持续:** 12m  **影响:** 340 订单丢失(约 $4.2k)
**日期:** 2026-03-15  **作者:** Alice(引导者)

## 时间线(来自数据)
14:03  部署 v2.4.1 发布(经"小变更"覆盖跳金丝雀)
14:05  错误率 0% → 100%(null 折扣订单抛异常)
14:07  告警 CheckoutSLOBurnRateFast 触发
14:08  值班确认,作战室开,IC 指定
14:15  根因识别(v2.4.1 null 折扣 bug)
14:16  回滚决策定并启
14:20  回滚完,错误率 0%
14:32  事件宣布解决

## 根因(5 个为什么)
1. 结账坏 → v2.4.1 对 null 折扣抛异常
2. 发布 → 金丝雀跳过
3. 金丝雀跳过 → 部署工具存在"小变更"覆盖
4. 覆盖存在 → 无策略防生产关键路径用它
5. → **修复:移除 /checkout 金丝雀跳过覆盖;要求 SRE 批准**

## 行动项(系统、有主、有期)
- [ ] 移除生产关键路径金丝雀跳过 — @deploy-platform,到期 2026-03-22
- [ ] 加集成测试:null 折扣边界情况 — @payments,到期 2026-03-29
- [ ] 加部署门:金丝雀错误率 >1% 则阻塞 — @deploy-platform,到期 2026-03-22

## 顺利处
- 告警 2m 触发、值班 2m 确认、回滚 4m — 监控和 runbook 工作
## 出错处
- 金丝雀覆盖允许生产关键部署跳金丝雀
## 运气处
- bug 仅影响 null 折扣订单(约 5% 流量);全影响本会 100%

常见问题

  • ⚠复盘数周后开 — 记忆衰减、数据老化、时间线从回忆重构且错。
  • ⚠根因是"人类错误"无系统修复 — 同错误复发因只人变非允许它的系统。
  • ⚠行动项在复盘文档非 issue 跟踪器 — 冲刺规划看不见且永不发布,系统原因存活。
  • ⚠复盘团队私有 — 组织无法学习,同系统缺口存在于有同工具的其他团队。

最佳实践

  • ✓24h 内排复盘 5 工作日内开;会前从数据(日志、告警、部署)建时间线。
  • ✓用 5 个为什么找系统根因并停在改系统的修复(加测试、加门)非人("更小心")。
  • ✓行动项在 issue 跟踪器带负责人和到期;冲刺规划审查直到全发布 — 事件未关直到它们完。
  • ✓复盘向全组织发布(无指责故无秘密);跨团队学习是防同缺口于他处的乘数。