Files
ai-customer-service/docs/GRAY_LAUNCH_CHECKLIST.md

123 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI-Customer-Service 灰度放行清单
> 版本v1.0
> 状态:灰度放行总门禁
> 用途:作为一页式放行清单,统一判断“是否允许进入灰度、是否允许继续放量、是否必须回滚”
---
## 1. 使用规则
- 任一 `阻断项` 未通过:**不得进入灰度**
- 任一 `回滚项` 触发:**立即回滚**
- 任一 `观察项` 异常:**冻结当前档位,不继续放量**
- 本清单的结论优先级高于口头判断
---
## 2. 代码级门禁
- [x] `go test ./... -count=1` 通过
- [x] `go test -race ./...` 通过
- [x] `go vet ./...` 通过
- [x] production 禁止 memory fallback
- [x] readiness 语义已与真实依赖对齐
- [x] 工单闭环语义已收口
- [x] 后台接口最小鉴权已启用
说明:
- 当前这些门禁已通过,属于**进入灰度准备的必要非充分条件**
---
## 3. Gate B 预生产门禁
- [x] `scripts/verify_preprod_gate_b.sh` 已建立
- [x] 本地/容器化 Gate B 预演通过
- [x] 真实 PostgreSQL migration 成功
- [x] signed webhook 联调通过
- [x] ticket / audit / dedup 入库可验证
- [x] `live` / `ready` 探针符合预期
- [x] 有验证记录:`docs/PREPROD_VERIFICATION_RECORD.md`
- [ ] 真实共享预生产环境已复跑同一脚本并留痕
阻断结论:
- **最后一项未完成前,不得宣称“真实预生产门禁已通过”**
---
## 4. Gate C 灰度门禁
- [x] 最小监控指标已定义
- [x] 告警阈值已定义
- [x] 灰度放量节奏已定义
- [x] 回滚触发条件已定义
- [x] 最小 dashboard 已定义
- [x] `scripts/verify_gate_c_rollback.sh` 已建立
- [x] 本地/容器化回滚演练已通过
- [x] 有验证记录:`docs/ROLLBACK_DRILL_RECORD.md`
- [ ] 真实共享预生产/灰度环境监控接线完成
- [ ] 真实共享预生产/灰度环境回滚演练完成并留痕
- [ ] 值班通知链路已确认
阻断结论:
- **最后三项未完成前,不得进入真实灰度放量**
---
## 5. 灰度放量节奏
| 阶段 | 流量比例 | 最短观察时间 | 进入条件 |
|------|----------|--------------|----------|
| Stage 1 | 5% | 30 分钟 | Gate B 已通过,核心门禁全绿 |
| Stage 2 | 20% | 2 小时 | Stage 1 稳定5xx / audit / DB 指标正常 |
| Stage 3 | 50% | 半天 | Stage 2 稳定handoff / ticket 指标正常 |
| Stage 4 | 100% | 次日 | Stage 3 稳定跨工作日,无新增 P0/P1 |
---
## 6. 继续放量判定
进入下一档前,必须同时满足:
- [ ] `webhook 5xx <= 0.5%`
- [ ] `webhook reject` 无异常升高
- [ ] `audit 写入失败数 = 0`
- [ ] `postgres 连接异常 = 0`
- [ ] `readiness down` 未持续发生
- [ ] `单实例重启次数 <= 2 / 10 分钟`
- [ ] `handoff 比率 <= 25%` 或未高于基线 `2x`
- [ ] `ticket 创建量` 与人工承载能力匹配
任一不满足:
- **冻结当前档位**
---
## 7. 立即回滚判定
满足任一项,立即回滚:
- [ ] `webhook 5xx > 5%` 持续 5 分钟
- [ ] PostgreSQL 异常导致 `ready` 持续失败
- [ ] `audit 写入失败数 > 0` 持续 5 分钟
- [ ] ticket 创建链路断裂
- [ ] 全量 readiness down
- [ ] 实例反复重启且影响服务
---
## 8. 当前总判定
当前状态:
- **代码级门禁:通过**
- **本地/容器化 Gate B通过**
- **真实共享预生产 Gate B未通过**
- **本地/容器化 Gate C 回滚演练:通过**
- **Gate C 灰度门禁:未通过**
因此当前唯一允许的结论是:
> **可以继续做共享预生产验证和灰度准备,但还不能进入真实灰度放量。**