3.5 KiB
3.5 KiB
AI-Customer-Service 灰度放行清单
版本:v1.0
状态:灰度放行总门禁
用途:作为一页式放行清单,统一判断“是否允许进入灰度、是否允许继续放量、是否必须回滚”
1. 使用规则
- 任一
阻断项未通过:不得进入灰度 - 任一
回滚项触发:立即回滚 - 任一
观察项异常:冻结当前档位,不继续放量 - 本清单的结论优先级高于口头判断
2. 代码级门禁
go test ./... -count=1通过go test -race ./...通过go vet ./...通过- production 禁止 memory fallback
- readiness 语义已与真实依赖对齐
- 工单闭环语义已收口
- 后台接口最小鉴权已启用
说明:
- 当前这些门禁已通过,属于进入灰度准备的必要非充分条件
3. Gate B 预生产门禁
scripts/verify_preprod_gate_b.sh已建立- 本地/容器化 Gate B 预演通过
- 真实 PostgreSQL migration 成功
- signed webhook 联调通过
- ticket / audit / dedup 入库可验证
live/ready探针符合预期- 有验证记录:
docs/PREPROD_VERIFICATION_RECORD.md - 真实共享预生产环境已复跑同一脚本并留痕
阻断结论:
- 最后一项未完成前,不得宣称“真实预生产门禁已通过”
4. Gate C 灰度门禁
- 最小监控指标已定义
- 告警阈值已定义
- 灰度放量节奏已定义
- 回滚触发条件已定义
- 最小 dashboard 已定义
scripts/verify_gate_c_rollback.sh已建立- 本地/容器化回滚演练已通过
- 有验证记录:
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 写入失败数 = 0postgres 连接异常 = 0readiness down未持续发生单实例重启次数 <= 2 / 10 分钟handoff 比率 <= 25%或未高于基线2xticket 创建量与人工承载能力匹配
任一不满足:
- 冻结当前档位
7. 立即回滚判定
满足任一项,立即回滚:
webhook 5xx > 5%持续 5 分钟- PostgreSQL 异常导致
ready持续失败 audit 写入失败数 > 0持续 5 分钟- ticket 创建链路断裂
- 全量 readiness down
- 实例反复重启且影响服务
8. 当前总判定
当前状态:
- 代码级门禁:通过
- 本地/容器化 Gate B:通过
- 真实共享预生产 Gate B:未通过
- 本地/容器化 Gate C 回滚演练:通过
- Gate C 灰度门禁:未通过
因此当前唯一允许的结论是:
可以继续做共享预生产验证和灰度准备,但还不能进入真实灰度放量。