feat(ai-customer-service): add gate readiness verification and handoff docs
This commit is contained in:
122
docs/GRAY_LAUNCH_CHECKLIST.md
Normal file
122
docs/GRAY_LAUNCH_CHECKLIST.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# 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 灰度门禁:未通过**
|
||||
|
||||
因此当前唯一允许的结论是:
|
||||
|
||||
> **可以继续做共享预生产验证和灰度准备,但还不能进入真实灰度放量。**
|
||||
Reference in New Issue
Block a user