第 14 章 · 综合演练日(发布日全链路)
本章目标:模拟 demo-mall 大促前发布日,从备份、CI/CD、金丝雀、监控到应急回滚,一次性串联本课 1~13 章;产出可入 L3 认证的 docs/ops/ 交付物包。
学时建议:4 小时(建议 3~5 人组队)
前置:ops-deploy ch01~ch13;xiaozi-cloud 全课;paas MySQL/Redis 至少一章。
14.1 场景说明
| 项目 | 内容 |
|---|---|
| 背景 | demo-mall release-1.5.0 定档下周大促,需在本周末完成 staging→prod 全流程彩排 |
| 痛点 | 单章都会,连在一起就漏备份、漏观察窗口、回滚命令临时现找 |
| 你的角色 | 发布经理 / 运维 / 监控 / 研发 / 记录员(可一人多角,但角色职责须分开) |
| 本章任务 | 按 T 日时间线走完;可选教官注入「12:15 强制回滚」 |
| 约束 | 可用 staging 代替 prod 做毕业演练;真 prod 须变更单审批(ch05) |
14.2 学完你能
| 能力 | 验收标准 |
|---|---|
| 发布日时间线 | 按表执行 T-1 与 T 日任务 |
| Go/No-Go | 7 项检查任一项否则 No-Go |
| 金丝雀发布 | 5%→20%→50%→100% 有观察 |
| 可观测 | 发布前后 Dashboard 截图 |
| 应急回滚 | MTTR <15min(演练指标) |
| 文档交付 | docs/ops/ ≥5 个文件 |
| Rubric 自评 | ≥70 分且应急维度非 0 |
14.3 演练目标
| 目标 | 验收 |
|---|---|
| 零事故发布 staging→prod(或 staging 全链路) | 变更单完整 |
| 金丝雀观察通过 | 指标截图 |
| 15min 内可回滚 | 实测 MTTR |
| 备份可恢复 | RTO 记录(ch11) |
| 文档可追溯 | Git + Jenkins + 变更单 |
14.4 角色分工
| 角色 | 人数 | 职责 |
|---|---|---|
| 发布经理 | 1 | 变更窗口、Go/No-Go 签字 |
| 运维执行 | 1~2 | Jenkins / Helm / 小紫 应用部署 |
| 监控值守 | 1 | 运维 → 集群监控 + 告警 |
| 研发支持 | 1 | 冒烟、业务确认 |
| 记录员 | 1 | 时间线、截图、交付物 |
原则:发布经理是唯一 Go/No-Go 口令;运维执行改集群前口头复述 Namespace。
14.5 时间线(T 日)— 逐步跟练
| 时间 | 任务 | 参考章节 | 小紫 / 工具入口 |
|---|---|---|---|
| T-1 16:00 | staging 全量回归 + k6 压测 | ch10 | 监控截图 |
| T-1 18:00 | prod/staging Namespace + DB 备份 | ch11 | 管理 → 备份恢复 |
| T 09:00 | 变更评审 Go | ch05 | 变更单 |
| T 10:00 | Jenkins 构建 tag release-1.5.0 | ch03 | Jenkins |
| T 10:30 | staging 自动部署 + 冒烟 | ch03 | 应用部署 列表 |
| T 11:00 | 金丝雀 5%→20%→50% | ch09 | Ingress 权重 / Argo |
| T 12:00 | 业务签字,100% 流量 | ch09 | 监控确认 |
| T 12:00-12:30 | 黄金 30 分钟观察 | ch07 | 告警中心 无 P0 |
| T 12:30 | 关闭变更单 | ch05 | 记录员归档 |
可选注入故障:T 12:15 教官要求 10 分钟内回滚 → Ops 执行 ch04 回滚并记录 MTTR。
你应该看到什么
- 每个阶段有 记录员截图(构建号、Pod 版本、错误率曲线)
- 金丝雀每档至少观察 15 分钟 再升档
- 回滚后错误率恢复基线
14.6 Go / No-Go 检查表
- [ ] staging 与目标环境镜像 tag 一致且已验证
- [ ] 备份 24h 内成功(管理 → 备份恢复 任务历史)
- [ ] 告警静默已解除
- [ ] On-call 在岗(ch13)
- [ ] 回滚命令已粘贴变更单(ch04)
- [ ] 错误预算未耗尽(ch07)
- [ ] 无并行其他 prod 变更
任一否 → No-Go,延期发布。