来源:不爱笑的青年 | 发布日期:2026-06-22
复盘的价值,不在于写出一份漂亮的报告,而在于同样故障不再发生第二次。
一个真实的教训
某微服务 3 月 15 日发生 OOM Kill,Pod 重启 12 次,业务中断 25 分钟。复盘结论是"内存配置不合理",改进项"将内存限制从 2Gi 调整到 4Gi",责任人研发组长,截止日期 3 月 22 日。
6 月 18 日,同一个服务,同样的 OOM,同样的中断——内存限制从未被调整过。改进项创建后,无人跟踪落地。
复盘报告写了不等于复盘结束了。改进项落地才是复盘的结束。
复盘的认知误区
| 误区 | 表现 | 正确做法 |
|---|---|---|
| 复盘 = 写报告 | 报告写完就完事 | 报告是开始,改进项落地才是结束 |
| 根因分析 = 追责 | "研发的锅""运维的锅" | 根因是流程问题,不是人的问题 |
| 5-Why = 问 5 次 | 流于形式,归因"人员意识不足" | 追问到可落地的改进项为止 |
| 改进项 = 创建就完 | 无人跟进,下次故障还在 | 有责任人+截止日+验收标准 |
| 复盘会 = 批评会 | 当事人不敢说真话 | 对事不对人,聚焦流程 |
5-Why 分析法 — 追问到可落地的改进项
以 OOM 故障为例:
| 轮次 | 问题 | 答案 | 可落地? |
|---|---|---|---|
| W1 | 为什么 OOM? | JVM 堆内存用满 | ❌ |
| W2 | 为什么堆内存用满? | 缓存未设 TTL,数据无限增长 | ❌ |
| W3 | 为什么没设 TTL? | 写代码时没考虑数据量级 | ❌ |
| W4 | 为什么没被早期发现? | 监控只有 CPU/内存使用率,无堆内存告警 | ❌ |
| W5 | 为什么堆内存告警没配? | 监控配置 Checklist 缺少 JVM 内存监控项 | ✅ |
可落地的改进项:
- 更新监控配置 Checklist,增加 JVM 内存监控项(运维组长,本周五)
- 所有微服务添加 JVM 内存监控告警(运维,下周五)
- 代码 Review 检查单增加"缓存 TTL 配置"检查项(研发组长,本周五)
关键: 追问到有人能动手去改的一项具体工作时,5-Why 才算结束。
复盘报告 7 要素
| 章节 | 内容 | 示例 |
|---|---|---|
| ① 故障摘要 | 时间、影响范围、恢复时间 | 6/18 14:32-14:57,2300+订单受影响 |
| ② 时间线 | 每分钟的关键事件 | 告警→介入→定位→恢复 |
| ③ 根因分析 | 5-Why 追溯结果 | 监控 Checklist 缺失 JVM 监控 |
| ④ 改进项 | 措施、责任人、截止日、验收标准 | 加 JVM 监控(张三,6/25,告警正常触发) |
| ⑤ 经验教训 | 这次教会我们什么 | 缓存必须设 TTL;配置要有 Checklist |
| ⑥ 防止再发 | 确保同类故障不再发生 | Code Review 检查单加缓存 TTL 检查项 |
| ⑦ 附件 | 日志、截图、配置 | 监控截图、Code Review 检查单截图 |
改进项跟踪闭环
改进项落地才是复盘的句号:
| 环节 | 负责 | 操作 |
|---|---|---|
| 创建 | 复盘会当场 | 明确责任人+截止日+验收标准 |
| 公示 | 复盘主持人 | 会后 24h 内发团队群+知识库 |
| 跟进 | 复盘主持人 | 每周例会检查进度,阻塞项升级 |
| 验收 | 主持人+Leader | 责任人提交验收申请,共同验收 |
| 归档 | 复盘主持人 | 验收通过后归档到知识库 |
复盘检查清单
复盘前逐项打勾:
- ☐ 故障后 24h 内召开复盘会
- ☐ 邀请所有相关方(研发+运维+测试+产品)
- ☐ 5-Why 追问到可落地改进项
- ☐ 改进项有责任人+截止日+验收标准
- ☐ 改进项 24h 内公示
- ☐ 定期跟进机制已建立
- ☐ 主持人+Leader 共同验收
- ☐ 验收通过后归档知识库
关联页面
| 页面 | 关联点 |
|---|---|
| ops-sre-jargon-guide | SRE 核心术语与运维规范,涵盖 SLA/MTTR 等复盘关键指标 |
| devops-interview-guide | DevOps 面试常考故障复盘流程 |
| server-performance-four-dimensions | 服务器性能四维排查法,复盘基础素材 |
| cpu-spike-troubleshooting-guide | CPU 飙高全链路排查,常见复盘场景 |
| k8s-rolling-update-pitfalls | K8s 滚动更新踩坑集,含真实故障复盘案例 |