七、发布准入、交付清单与运行维护
本章承接 §0.6 的版本计划和第三章的工程交付。版本计划描述目标与预期范围;候选清单登记待验收组合;发布清单(Release Manifest)固化获准部署的组合;部署回执记录实际结果。清单适用于单仓、多制品及跨仓交付,简单发布可复用现有发布记录。
7.1 发布清单的必要信息
| 信息 | 记录要求 |
|---|---|
| 范围与责任 | 版本目标、目标用户与环境、必备范围、负责人及适用审批 |
| 源码与制品 | 实际源码的完整 Commit SHA、构建记录、不可变镜像 Digest 或制品校验和 |
| 契约与运行前提 | 接口和消费者兼容范围、工具链与运行时版本、外部依赖 |
| 数据与迁移 | 迁移基线、文件与校验和、执行身份、顺序及数据核验方式 |
| 配置与密钥 | 配置版本或摘要、开关状态、密钥引用;不记录密钥明文 |
| 验收与已知问题 | 受测组合的证据、准入结论、非阻断 OPEN 项及接受人 |
| 发布与恢复 | 执行顺序、分批或灰度策略(适用时)、停止阈值、恢复前提与负责人 |
| 运行与交接 | 健康和业务探针、监控告警、值班与支持责任、用户可理解的发布说明 |
唯一可填写的完整示例见附录 A.15。所有摘要与阈值须来自真实产物或已接受的方案,模板中的占位值不能作为证据。候选组合变化后,按影响重新验收并生成新的清单版本;已固化的清单不直接覆盖修改。
7.2 从候选构建到发布回执
准备:构建与登记候选。 确认版本必备范围齐备,使用可追溯的构建输入生成不可变制品,记录候选清单。验证与后续部署引用相同摘要;验收后重新构建的产物属于新候选,除非已验证其内容完全一致并满足既定复用规则。
- 阶段 A:隔离验收。 将候选制品组合部署到预发或独立测试环境,先直接启动真实制品核对依赖装配、引导与版本,严禁挂载源码补齐运行依赖;再在真实依赖的隔离环境执行适用的契约、集成、业务与容量检查,核对最终业务终态、持久化、适用的账务不变量、幂等重试和服务重启恢复,验证迁移顺序、配置和恢复前提。涉及数据恢复时,核验备份可用性与恢复后的数据一致性。失败或受阻须处理后重新验证,不能进入下一阶段。
- 阶段 B:发布准入。 核对必备验收项、证据有效性、非阻断问题、发布与恢复责任。L3 及另有规定的变更取得相应独立签字;运维接手方确认监控、告警路由、支持安排和操作手册可用。随后固化发布清单版本、摘要及批准范围。
- 阶段 C:发布、核验与回执。 向获准的目标环境按顺序发布,执行迁移、配置、开关与服务部署,并核对实际部署身份、健康及获准范围内的受控业务读写探针、指标与告警链路。适用时先发布至有限范围,达到条件后扩大。失败或结果未知时暂停扩大发布范围、核查事实并执行恢复预案;成功、失败、部分完成和结果未知均如实留存回执,不得只记录成功发布。
预发环境验收不能直接证明生产运行正常。实际部署后仍须核对运行制品、配置、数据状态与关键业务结果;生产发布还应满足团队规定的生产授权和运维接管条件。无部署任务不创建虚构回执。
7.3 恢复策略与紧急修复
设计阶段选择适用策略,不将“回滚镜像并执行 down.sql”视为通用恢复方案:
- 向前修复(Forward Fix):保留已有数据事实,通过补丁或新增迁移修复问题;修复版本仍须有验证与发布记录。
- 代码回滚(Code Rollback):确认旧版应用兼容当前数据结构、配置及已产生的数据,再恢复旧制品;先按预案停止新增写入并排空或隔离在途任务,核对执行代际、业务状态及恢复后仍会运行的旧消费者。不能满足兼容或排空条件时拒绝直接回滚,改用另行验证的向前修复或数据恢复方案。
- 数据回滚或恢复(Data Rollback / Restore):明确可恢复时间点、允许的数据损失、停写顺序、备份有效性、业务核对与补偿方式。无法保证数据正确性时,禁止直接执行逆向迁移或恢复覆盖。
紧急修复可以按预先授权的应急流程调整顺序,但仍须保留事故编号、影响范围、负责人、最小必要验证、批准依据和部署回执。因应急延期的非关键检查须登记负责人和完成期限;受阻检查不能记为通过。恢复后核对真实副作用,再补齐复盘与改进任务。
7.4 运行维护与能力退役
发布后的运行责任持续存在。运维负责人跟踪可用性、容量、积压、错误、数据一致性与依赖维护,验证告警能够送达并被处理;需求负责人按 §0.7 评估目标效果。事故和紧急风险进入应急通道,常规缺陷、用户反馈及技术债回到统一需求池。
决定停止某项能力时,明确使用方与消费者、通知和支持期限、替代方式、停止受理及在途任务处理、数据保留或删除规则、资源和凭据回收、验收责任人。涉及真实数据和共享资源的操作按权限执行;完成收尾后记录退役事实,更新有效规格与支持范围。未发布的探索可以直接关闭,不套用生产退役步骤。