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

2330

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



