首页/开发/CI/CD 与发布速查/环境晋级链(Environment Promotion)
流水线设计54 条

环境晋级链(Environment Promotion)

同一制品按 dev → staging → prod 逐级晋级:每级记录部署结果,敏感环境用审批与保护规则控制。

CI/CD 与发布速查开发更新于 2026-10-13

环境晋级是什么

同一制品按 dev、staging、prod 逐级晋级:每一级记录部署结果,追溯到谁把哪个版本、在什么时候部署到了哪个环境;敏感环境用审批与保护规则控制。晋级的是同一制品与镜像,只有配置与批准层级变化,验证结果才能从预发迁移到生产,回滚也才有共同基准。

基本信息

GitLabenvironment 名称加部署记录,页面可追溯部署内容
GitHubenvironments 绑定保护规则:必需审批人与允许分支
原则制品不变,只有配置与批准层级变化
命名环境名保持稳定,不带随机后缀
凭据各环境凭据独立,事故污染半径可控

典型使用场景

  • 多环境流程:开发自测后推荐到预发,再审批上生产。
  • 部署审计:部署页面回溯版本与操作者。
  • 审批门:生产环境需指定审批人通过后才执行。
  • 受限分支:生产部署仅允许从主分支发起。
  • 等待机制:审批未通过时保持等待,而不是超时失败。
  • 回滚同路:回滚也走同一套环境与记录体系。

GitLab 晋级示例

GitLab 晋级示例
deploy-staging:
  environment: staging
  script: ./ci/deploy.sh staging

deploy-prod:
  environment: production
  when: manual
  script: ./ci/deploy.sh prod

环境阶梯

环境门槛目标
dev自动快速验证合理性
staging自动或轻审批接近生产的完整验证
production审批与保护规则承载真实用户流量
环境名保持稳定,不要带随机后缀,否则部署历史碎片化无法聚合。
晋级失败要能重试:环境级重跑入口保持可用,卡在某一级时不必重新编制品。
预发与生产要尽量同构:配置差异越大,晋级到生产暴露的问题越多。
晋级检查清单挂在环境上:冒烟结果、指标窗口、变更单号,条件满足后审批才有依据。
发布记录与代码版本双链:从部署记录能跳回提交,事后复盘时直接对照。
审批后接自动冒烟:通过审批先跑冒烟作业再放量,比全程人工更省时间。

易错点

  • 测试与生产部署的是不同构建:晋级链名存实亡,回滚不可复现。
  • 环境命名不一致,prod 与 production 与 prd 混用:仪表盘与权限规则难以统一。
  • 只在最后一级加审批:预发验证不充分,问题在末端才暴露。
  • 手工重新构建绕过晋级链:验证结果不可迁移,制品来源不一致。
  • 各环境共用一套部署凭据:一个环境被攻破,全部环境受影响。
  • 审批形同虚设:不核对内容直接通过,保护规则变成打卡。

数据来源与参考

  • GitLab Docs《Environments》
  • GitHub Docs《Using environments for deployment》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌