持续集成与持续交付:原理、策略与实践
1. 持续集成与持续交付的区别
持续集成(CI)和持续交付(CD)虽然相似,但存在一些差异。CI 专注于每次提交时对软件进行集成,这发生在单元测试之后。CD 则是对 CI 的扩展,在软件集成和测试完成后增加了一个环节,负责构建软件并为其潜在发布做好准备。
CI 非常重视测试阶段,尤其是在代码合并到主分支时。其目标是确保合并后软件的功能不会丢失。而 CD 更侧重于软件的构建,借助 CD,我们可以实现每天发布新软件。例如,2011 年亚马逊平均每 11.6 秒就发布一次新软件,这意味着每天有大量的发布次数。通过持续发布,我们可以将实现这一结果所需的任何步骤和流程自动化。
| 实践 | 成本/变更 | 益处 |
|---|---|---|
| 持续集成 | 开发者必须使用测试驱动开发(TDD)实践编写代码,代码必须与单元测试关联;需要搭建新的 CI 服务器,用于监控仓库并在每次提交时启动构建;开发者必须每天至少集成一次软件;每次构建都需要提供反馈 | 每次发布都进行测试,可减少生产环境中的 bug 数量;能快速发现并修复 bug,节省成本;每天至少集成一次软件,意味着每天至少能发布一次软件;使用 CI 服务器可并行执行更多测试,减少测试时间;QA 团队可减少测试单个功能所需的测试量,有更多时间在真实场景中提高软件测试质量 |
| 持续交付 | 必须有强大的 CI 作为基础 |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



