近些年来,持续集成、持续交付以及持续部署这几个热词总是在大家的眼前晃来晃去!在招聘信息和面试过程中也会经常提及!在这里我就用三分钟时间来带大家了解他们!
1. 持续集成(CI:Continuous Integration)
持续集成强调开发人员提交了新代码之后,立刻进行构建然后进行单元测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
注意:这里的测试重点是指开发人员进行的代码级别测试!
2. 持续交付(CD:Continuous Delivery)
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的类生产环境中。如果测试没有问题,可以继续手动部署到生产环境中。
注意:这里的测试重点是指测试人员进行的产品级别的测试!往往在这个测试过程中普遍都会引入测试脚本进行自动化回归测试,主要是进行接口测试和UI测试,
当然部分公司也会引入安全测试和性能测试。持续交付能够以较短地周期完成需求的小粒度频繁交付。
频繁的交付周期带来了更迅速的对软件的反馈,并且在这个过程中,各个角色密切协作,相比于传统的瀑布式软件团队更少浪费资源。
3. 持续部署(CD:Continuous Deployment)
持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。整个过程无需人工参与!
4. 总结
简单地说:
- 持续集成主要是在开发范围,包括:构建>单元测试;
- 持续交付涉及开发、测试、运维合作,包括:构建>单元测试>测试环境部署>测试(不涉及生产环境的自动化部署)
- 持续部署是在持续交付的基础上的延伸:包括:构建>单元测试>测试环境部署>测试>生产环境部署>生产环境测试(全流程自动化)