首页/开发/CI/CD 与发布速查/CI、持续交付与持续部署的区别
流水线设计54 条

CI、持续交付与持续部署的区别

CI 强调频繁集成与自动验证;持续交付要求提交处于可发布状态、发布由业务决定;持续部署把上生产也自动化。

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

三个概念怎么区分

CI(持续集成)指开发者频繁把代码合入主干,每次合入自动触发构建与测试,尽早暴露集成错误;它聚焦合入前验证,不涉及把版本发布给用户。CD 有两种常见含义:持续交付(Continuous Delivery)要求流水线把验证过的制品一直准备到随时可发布,上生产的时机由业务方人工决定;持续部署(Continuous Deployment)把上生产也自动化,验证通过即发布,不再有人按按钮的环节。区分三者的关键口径:产物能否随时发布、发布是否还需要人决策。三者是能力阶梯,不是互相替代的口号:先做到主干常绿(CI),再让产物随时可发(交付),最后才谈自动上线(部署)。落地顺序建议从 CI 开始:没有稳定的自动验证,后面两级只是把不可靠的流程搬得更快。

基本信息

适用平台任何使用版本控制与流水线的团队
判断问题一验证失败的版本,产物还能随时发布吗
判断问题二上生产是否需要人工决定时机
落地顺序先绿主干,再随时可发,最后自动上线
阅读对象研发、测试、发布经理、运维

三者对比

概念自动化边界发布决策
持续集成 CI合入前后自动构建与测试不涉及发布
持续交付 CD(Delivery)流水线推进到预发,产物可随时发布人工决定何时上生产
持续部署 CD(Deployment)验证通过后自动发布到生产由流水线与门禁决定

典型使用场景

  • 多人协作的主干分支:每日多次合入,用 CI 保证每次合入后主干可构建、测试可过。
  • 发布节奏由业务决定的团队:用持续交付把制品准备到预发,市场活动与合规窗口由人选择。
  • 低风险高频发布的内部服务:持续部署让修复与功能随提交自动上线,批次更小、出问题更好回退。
  • 强监管环境:在链条中保留人工审批与审计记录,而不是追求全自动上生产。
  • 配置与基础设施仓库:同一套三层划分同样适用,配置变更走同等验证与晋级流程。
  • 评估团队成熟度:先绿主干再谈可发布,跳级常导致流水线建了但没人敢发。
  • 对外承诺发布窗口:先用交付链条保证预发验证完备,再由业务决定上线时间,避免脚本赶工上线。

判断口径

判断口径
同一提交流水线通过后:
- 只做到可随时发布 = 持续交付
- 自动上线且客户可见 = 持续部署
# 自查问题
- 回归失败时产物还能发吗?不能 -> 未达持续交付
- 上生产需要人点按钮吗?需要 -> 不是持续部署
DORA《Accelerate》研究显示:版本控制、测试自动化、部署自动化等能力与交付绩效正相关,持续交付是其中一组关键工程能力。
人工门不等于低效:持续交付中的审批通常只针对上生产一步,构建、测试与预发部署全自动,审批与自动化并不冲突。
把有流水线等同于持续交付是常见误判:若回归未过产物就发不出去,或回滚通道从未演练,实际仍停留在自动化构建阶段。

易错点

  • 把有流水线等同于持续交付:产物不可随时发布(例如回归未过)就不算,先补测试稳定性与回滚演练。
  • 持续部署不等于无门禁:质量门禁、审批与自动回滚仍是组成部分,拆掉全部护栏只是把风险直接推给用户。
  • CI 只跑部分作业却对外称全绿:被跳过的集成测试问题会在发布时集中爆发,应让必需检查显式阻断合入。
  • 交付与部署口径不统一:对外汇报数字时先对齐定义(按什么事件计一次部署),否则改进目标失真。
  • 把自动部署当终点:缺少可观测性与自动回滚的自动发布只是让故障扩散更快,先补监控与回滚再放开自动化。

数据来源与参考

  • Humble & Farley《Continuous Delivery》
  • DORA《Accelerate》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌