介绍
持续集成(CONTINUOUS INTEGRATION)
在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流进行验证。这样做是基于之前持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警。
持续交付(CONTINUOUS DELIVERY)
持续交付可以确保尽可能快的实现交付(需要先进行小批量发布,尽快部署到生产线,以便在出现问题时方便进行故障排除),这就意味着除了自动化测试,我们还需要有自动化的发布流,以及通过一个按键就可以随时随地实现应用的部署上线。
通过持续交付,您可以决定每天,每周,每两周发布一次,这完全可以根据自己的业务进行设置。
持续部署(CONTINUOUS DEPLOYMENT)
持续部署通过自动化的构建、测试和部署循环来快速交付高质量的产品。通过这个方式,任何修改通过了所有已有的工作流就会直接和客户见面。没有人为干预(没有一键部署按钮),只有当一个修改在工作流中构建失败才能阻止它部署到产品线。
持续部署是一个很优秀的方式,可以加速与客户的反馈循环,但是会给团队带来压力,因为不再有“发布日”了。开发人员可以专注于构建软件,他们看到他们的修改在他们完成工作后几分钟就上线了。基本上,当开发人员在主分支中合并一个提交时,这个分支将被构建、测试,如果一切顺利,则部署到生产环境中。
区别
持续集成是一个团队问题
持续交付和部署是工程问题
持续集成是在给开发人员的反馈速度与执行的检查(构建和测试)的相关性之间做出的折衷。没有任何妨碍团队进步的代码可以进入主分支。
持续交付部署是要进行彻底检查,以发现代码问题。检查的完整性是最重要的因素。通常以测试的代码覆盖率或功能覆盖率来衡量。尽早发现错误可以防止将坏代码部署到任何环境,并节省测试团队的宝贵时间。
参考地址:https://blog.csdn.net/belalds/article/details/81091753
http://dockone.io/article/9825