生产发布与回滚流水线

同一份已验证制品从预生产晋级,不在生产服务器重新构建

云迁易编辑部更新于 2026-07-14内容与审核规范

部署方式可以不同,但安全发布的主线一致:源代码通过质量门后生成不可变制品,在预生产验证,再由有权人员把同一制品晋级到生产。


  1. 提交与评审: 分支保护、依赖锁定、代码评审和秘密扫描。
  2. 质量门: 单元、集成、构建、内容、安全与许可证检查。
  3. 生成制品: 静态目录、压缩包、函数包或容器镜像,记录摘要与来源提交。
  4. 预生产部署: 使用独立账号、数据和密钥,不与生产共享写入路径。
  5. 兼容变更: 先执行向后兼容的数据库扩展,再部署新代码。
  6. 自动验证: 健康、登录、权限、上传、任务、模型降级和关键业务冒烟。
  7. 人工门禁: 检查变更、风险、回滚、观察指标和中国大陆接入状态。
  8. 渐进切流: 小流量、单实例或单函数版本开始,观察后扩大。
  9. 完成与留证: 记录版本、配置、迁移、指标、事件和审批结果。

运行方式不可变制品回滚锚点
静态托管
完整构建目录与清单
上一版对象前缀或制品包
虚拟机 / 轻量服务器
应用包或固定 Digest 镜像
上一版包、镜像与配置版本
函数
发布版本及其配置
上一函数版本或别名权重
Kubernetes
Digest 镜像和版本化清单
上一 Deployment / Helm 版本

生产制品不能引用会改变含义的浮动标签作为唯一版本,也不能在生产机器执行 git pull 后临时安装未知依赖。


  • CI 使用独立部署身份,只能写目标制品库和更新指定服务。
  • 如果代码托管平台与云厂商支持工作负载身份或短期令牌,优先避免长期访问密钥。
  • 必须使用长期密钥时,限制权限、有效期和使用来源,设置轮换和异常告警。
  • 部署日志只记录凭据引用和请求 ID,不输出秘密值、环境变量全集或签名请求。
  • 生产审批人与代码提交人按组织风险要求分离。

先增加兼容结构、再迁移数据、最后移除旧结构。破坏性删除应等待旧版本回滚窗口结束。代码回滚不会自动恢复数据,数据库恢复也不应覆盖故障后产生的正确记录。

流水线遇到数据库迁移失败、冒烟失败或关键指标恶化时应停止扩大流量;回滚动作需要明确是重新部署旧代码、切换函数版本、恢复入口,还是进入数据修复流程。


  • 发布命令失败:保持旧流量,保留失败日志和制品,不在生产手工补丁。
  • 健康检查失败:摘除新实例,检查配置、依赖和迁移版本。
  • 错误率或延迟异常:停止放量,按预设阈值回退制品与入口。
  • 数据校验失败:停止新写入扩大,进入数据影响评估,不盲目覆盖恢复。
  • 模型供应商异常:启用限流、降级或人工接管,不无限重试。

上线前结合生产上线准备度工作台核对安全与恢复门禁,结合备份、恢复与版本回滚验证数据恢复。

Built with