知识卡片
持续交付与持续部署的区别
内容
持续集成(CI)是基础:每天至少一次把改动提交到主干,每次提交自动编译、测试、打包,尽快拿到反馈。持续交付(CD)在此之上要求主干始终处于”可发布”状态——代码经过额外的验收测试、性能测试等确认可发布性,但具体什么时候真正发布是业务决策,不是技术决策。持续部署再往前一步,把发布这个动作也自动化,每次改动都自动上生产。三者常被笼统合并成 CI/CD 这个词,但持续交付本身不等于持续集成加发布流水线,它还包括测试驱动开发、自动化配置管理、验收测试等实践,工具化不等于在做持续交付。发散:这个区分能解释很多团队”有 CI/CD 流水线但发布依然很痛”的现象——流水线只是持续交付的必要不充分条件。
参考来源
《Cloud Native Spring in Action》第1章《Introduction to cloud native》