首页/开发/CI/CD 与发布速查/回滚预案(Rollback Playbook)
质量门禁与回滚51 条

回滚预案(Rollback Playbook)

把回滚写成可执行的步骤文档:触发条件、决策人、命令与验证、沟通模板;事故现场照单执行,避免临场摸索。

CI/CD 与发布速查开发更新于 2026-10-13

回滚预案是什么

回滚预案(Rollback Playbook)把出事怎么退写成可执行的步骤文档:触发条件(什么指标、持续多久、谁判定)、决策人与权限、分步命令(含命名空间与资源名)、恢复验证方法、对外沟通模板。目标很直接:事故现场照单执行,不用临场摸索命令与判断。预案要与回滚机制配套:特性开关关闭是秒级止血手段,镜像与版本回滚是分钟级,数据库迁移这类不可逆变更要在预案里明确向前修复的决策链。文档放代码仓库随服务一起维护,按季度或在重大发布前演练复查,确保它始终可达、可执行。

基本信息

内容触发条件、决策链、分步命令、验证方法、通知模板
载体与代码同仓库管理,随变更更新
演练按季度或重大发布前复查
可达性事故时无需额外申请即可获取
机制配套开关、镜像回滚、数据前滚各自写明

典型使用场景

  • 值班上手:新成员按预案能独立执行第一轮操作。
  • 重大活动前:大促与关键版本发布前复查并演练。
  • 通道盘点:梳理开关、镜像回滚、数据修复各自耗时与责任人。
  • 多人协作:沟通模板让各方同步状态,不打扰执行人。
  • 复盘依据:比对预案与实际执行的差异,迭代文档。
  • 演练:定期在预发环境跑一遍回滚全流程。

预案骨架

预案骨架
1. 触发条件: 5xx 比例 > 5% 持续 5 分钟
2. 决策人: 值班 SRE
3. 回滚命令: kubectl rollout undo deploy/web -n prod
4. 备选: helm rollback web 12 -n prod
5. 验证: 健康检查 + 核心冒烟
6. 通知: #incident 频道同步状态

回滚通道对比

通道耗时量级适用
特性开关秒级新功能止血
镜像回滚分钟级服务逻辑问题
数据修复小时级或更长迁移或数据损坏,倾向前滚
流量切换分钟级多集群与多版本切换
命令要写成可复制片段:带上命名空间与资源名,事故中手打命令出错率高。
回滚后要有观察窗口:确认指标恢复再宣布结束,防止随即二次故障。
数据库变更默认不可回滚:预案里写清前滚修复的负责人与方案,避免现场争论。

易错点

  • 只写命令不写判断:谁在什么条件下执行没有定义;把触发条件量化并指定决策人。
  • 预案过期:资源改名、命令失效无人知;定期演练验证可达性。
  • 回滚依赖的旧镜像被清理:保留策略没给回滚留窗口;与清理策略联动。
  • 从未演练:需要时才发现权限、网络、命令都有坑。
  • 数据库跟着乱回滚:引发数据损坏;数据类变更明确走前滚决策。

数据来源与参考

  • Google SRE Book《Managing Incidents》
  • PagerDuty《Incident Response》文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌