事故指挥角色分工与响应流程
事故指挥(Incident Commander,IC)不是“最会排障的人”,而是负责定级、分工、决策和升级的人。IC 不亲自查日志,否则没人统筹全局。事故一开始就应指定 IC、建立单一频道,并冻结相关变更。
响应顺序是:确认影响 → 定级 → 指定角色 → 止血 → 恢复 → 沟通 → 复盘。止血优先于根因。
事故分级与响应时限:
| 级别 | 判据 | 首次响应 | 对外更新 | 升级对象 |
|---|---|---|---|---|
| P0 | 核心链路全挂、资金损失、数据泄露 | 5 分钟 | 每 15 分钟 | CTO / 安全负责人 |
| P1 | 核心功能部分不可用、SLO 快速燃烧 | 10 分钟 | 每 30 分钟 | 部门负责人 |
| P2 | 非核心功能降级、有绕过方案 | 30 分钟 | 每 2 小时 | 团队负责人 |
| P3 | 无用户影响、容量或单点预警 | 下一工作日 | 日报 | 无需升级 |
角色分工:
| 角色 | 负责 | 不负责 |
|---|---|---|
| IC | 定级、分工、决策、升级 | 不直接排障 |
| Ops Lead | 回滚、切流、扩容、降级 | 不对外承诺 |
| Comms Lead | 状态页、客户、管理层同步 | 不猜根因 |
| Scribe | 时间线、决策、行动项 | 不参与操作 |
第一条事故消息模板:
[P1] 支付回调失败率升高
影响:约 12% 支付订单状态未更新
开始时间:2026-10-18 14:02 UTC
IC:@alice
频道:#inc-20261018-payment
当前动作:回滚 payment v2.3.1
下次更新:14:17 UTC
时间线记录(每条都带 UTC 时间):
incident_log=/tmp/INC-20261018-payment.log
printf '%s | IC | 宣布 P1,建立频道\n' "$(date -u +%FT%TZ)" >> "$incident_log"
printf '%s | Ops | 开始回滚 v2.3.1\n' "$(date -u +%FT%TZ)" >> "$incident_log"
printf '%s | Ops | 错误率从 12%% 降到 0.3%%\n' "$(date -u +%FT%TZ)" >> "$incident_log"
交接模板:
IC 交接(14:40 UTC)
当前级别:P1
影响:支付回调失败率 0.3%,积压 240 条
已做:回滚 v2.3.1,扩容消费者到 6 副本
待验证:积压是否在 15 分钟内清空
风险:数据库连接池仍接近 80%
下次更新:15:00 UTC
决策规则:
合上页面,先回答,再展开对照。