跳转至

附录 C:上线清单(隐私 / 安全 / 成本)

目标:让发布变成按表执行,而不是靠胆量。阻断项写清楚,越界动作写清楚,证据留档写清楚。

建议先通读全书质量控制与复现清单(QCR),再用本清单做上线门禁。

门禁分级(建议统一口径):

  • L0 阻断:命中即停止合并/发布。
  • L1 警告:不阻断,但必须留档并由负责人确认风险后放行。
  • L2 观察:只记录与跟踪,不影响发布。

通用证据规则:每一条门禁都要能回答“证据是什么/在哪里”。建议复用复现包目录(例如 reports/YYYY-MM-DD/<change-id>/),并参照 附录 D:证据包与门禁速查 统一字段与目录。

C.0 发布版本组合(上线前必须能说清)

上线不是发一份代码,而是发一组会影响行为的对象。最低要能指向这一组版本组合:

  • 代码版本:commit/tag
  • 配置版本:config_hash 或配置版本号
  • 数据与索引:dataset_snapshot_id、index_id(或等价版本)
  • 模型与提示:model_id/checkpoint、prompt_id(或 prompt 版本)
  • 门禁证据:离线报告、对比表、阻断项是否通过(证据路径)
  • 回滚动作:回滚到哪个版本组合;怎么确认已恢复(证据路径)

推荐的命令入口命名(避免跨团队/跨章节口径漂移)

为减少沟通成本,建议在你的产品仓库统一 4 个动词入口(不强制 Makefile,任意任务编排工具均可):

  • gate:跑阻断级门禁(失败即退出非 0)
  • evidence:生成并归档证据包(版本组合 + 报告 + diff + 回滚指针)
  • release:灰度发布(绑定 Runbook,按表推进/暂停/回滚)
  • rollback:一键回滚/降级(10 分钟止损)

Runbook 模板与常见事故的 10 分钟止损动作库见:E-runbooks.md;指标字典与告警门禁速查见:F-metrics-alerts.md

C.1 发布前(阻断项)

需求与合同

  • [L0] PRD 验收标准齐全,且能追踪到测试/评测/对比证据;缺证据视为未完成。(证据:验收映射表/报告)
  • [L0] 关键失败路径与恢复入口齐全(无权限、证据不足、预算越界、外部依赖失败)。(证据:状态矩阵/走查记录)

隐私与安全

  • [L0] 密钥与凭据:最小权限、轮换机制、无明文存储、泄露即废弃。(证据:配置与存储审计记录)
  • [L0] 越权与注入:阻断级回归用例存在且通过;命中即阻断发布。(证据:回归报告 + 失败样本清单)
  • [L0] 审计事件:关键动作可追溯可查询(登录、导入、导出、共享、支付、工具调用、拒答/降级)。(证据:可查询样例 + 字段说明)

成本与稳定

  • [L0] 预算阈值已配置:至少包含每请求与每日两级门槛,并区分告警阈值与阻断阈值。(证据:阈值配置 + 触发日志)
  • [L0] 降级与止损可触发:越界时能自动限流/降级/回滚,并记录原因与证据。(证据:演练记录 + 回滚后恢复证明)
  • [L1] 关键链路可观测:质量/延迟/成本/风险四线至少各 1 个守门指标可用。(证据:仪表盘/告警配置摘要)

C.2 灰度发布(按表推进)

  • [L0] Feature Flag/灰度策略已配置:按用户/租户/比例分批推进,并定义每批观察窗口。(证据:灰度策略与分批表)
  • [L0] 推进门槛明确:每批次必须满足哪些主指标;守门指标不得退化到什么程度。(证据:门禁表 + 阈值)
  • [L0] 暂停与回滚条件明确:触发条件、执行动作、回滚后如何验证指标已恢复。(证据:Runbook + 演练记录)

C.3 发布后 24 小时(把失败变资产)

  • [L0] 失败样本收集:用户反馈、工单、关键失败请求进入失败样本池(含最小复现条件)。
  • [L0] 回归集更新:把新增失败样本写入阻断级回归;复跑通过才允许继续迭代。
  • [L1] 成本盘点:单位成本、峰值、缓存命中率、热门问题与高成本路径;越界就做降级或改定价。

C.4 发布后 7 天(避免回归失效)

  • [L1] 门禁复盘:哪些门禁挡住了问题,哪些门禁形同虚设(阈值过宽或口径不稳)。
  • [L0] 版本组合治理:提示/索引/配置是否被绕过版本管理;若有,优先补齐可追溯与回滚。
  • [L1] 监控与告警校准:用真实分布校准阈值,避免告警疲劳与漏报。

C.5 文档与图片发布自检(站点发布时同样适用)

  • [L0] 严格构建通过:python3 -m mkdocs build --strict。(证据:构建日志)
  • [L0] 引用编号可裁决:python3 tools/check_citations.py。(证据:检查输出)
  • [L0] 图片门槛:无占位图/占位词;每张图有 alt;外部来源注明来源与许可证/边界;深色背景下可读。(证据:抽样走查记录)