1d85329a6a
Build and Test Quality Gate / Contract Web typecheck and build (pull_request) Successful in 9m12s
Build and Test Quality Gate / Isolated Alibaba and Tencent KMS gateway (pull_request) Failing after 4m53s
Build and Test Quality Gate / Python tests and Contract API migration (pull_request) Failing after 24m55s
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 8m42s
3.6 KiB
3.6 KiB
试点运营值班、SLO 与版本级起草证据运行手册
1. 发布顺序
- 停止 Contract API 和治理 worker 的新写入;
- 备份数据库并执行
python -m alembic -c alembic.ini upgrade head; - 确认版本为
20260825_0067,运行 schema check; - 启动 Contract API、Web、审查 worker 和治理 worker;
- 先保持值班表和自动分派关闭,执行一次完整扫描并检查 SLO;
- 配置值班账号、轮换锚点和班次,核对当前排班后再启用自动分派。
2. 值班配置与日常操作
- 成员填写系统内可追溯的运营账号 ID,每行一个,顺序即轮换顺序;
- 轮换锚点使用平台时区解释,班次长度允许 60–10080 分钟;
- 队列专属成员优先于通用成员,均为空时才使用兜底负责人;
- 启用后先手工执行一次扫描,抽查自动路由事件中的值班表版本、班次边界和负责人;
- 自动路由后仍必须由负责人执行确认或处理动作,不能把“已有负责人”当作“已首次响应”;
- 临时换班不要直接改工单事件或数据库;更新值班表并保留新版本,从下一次扫描生效。
3. SLO 判读
| 指标 | 正常判读 | 异常处置 |
|---|---|---|
| 扫描成功率 | 有样本且不低于 99% | 查看失败运行 error_code,修复依赖后强制扫描 |
| 扫描新鲜度 | 最近成功不超过两倍扫描间隔,最低 5 分钟 | 检查治理 worker、租约和数据库连接 |
| 扫描 P95 | 与日常基线接近 | 分析回看周期、数据量和慢查询,不要盲目缩短间隔 |
| 通知终态成功率 | 有终态样本且不低于 99% | 检查通道握手、密钥轮换、SMTP/Webhook 和死信 |
| 通知待处理 | 队列可在投递周期内清空 | 检查 worker 租约与重试时间,避免手工重复入队 |
“待验证”表示没有足够样本,不是正常,也不是故障。外部通知 SLO 只统计试点 SLA 升级事件,不能与全部 Playbook 通知混算。
4. 起草证据故障排查
- 页面没有起草路径:确认
draft_generated是否携带合同 ID,回执是否为version_evidence_bound=true; - 返回
contract_version_not_found:先确认起草动作已经生成带正文哈希的合同版本; - 返回
draft_version_evidence_stale:正文已变化或事件未绑定当前版本,必须重新生成/保存版本后再核对; - 四项核对返回 422:四项布尔值都必须显式为 true,后端不会接受部分确认;
- 已核对但没有最终决策:确认核对之后是否发生审批通过、下载或归档,再运行完整扫描;
- 同版本已有审查决策:不会再生成第二条起草决策,这是防重复口径,不是数据丢失。
禁止手工改事件版本、正文哈希、核对项或最终决策行来提高指标。
5. 权限与隐私
- 值班表和 SLO 只对平台超级管理员开放;
- 合同核对只允许具有当前租户合同编辑权限的用户;
- SLO、漏斗和值班事件不保存合同正文、签署账号、供应商临时链接或密钥;
- 正文只以已有合同版本 ID 和 SHA-256 摘要参与证据校验;
- 值班成员 ID 属于运营元数据,仍应遵循最小访问和离职账号清理流程。
6. 回滚
代码回滚前先关闭自动分派和定时扫描。0067 -> 0066 会删除起草路径最终决策、起草人工确认和值班表,并移除事件绑定、扫描耗时/路由计数及决策路径字段。正式环境必须先导出审计证据、停止写入并取得变更批准;downgrade 不是普通故障恢复手段。