CI:
持续集成(CONTINUOUS INTEGRATION)
在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流进行验证。这样做是基于之前持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警。
持续集成(CI)是一种软件开发实践,开发人员经常在其中进行代码更改并将其添加到中央存储库中,然后再运行自动化测试。CI是软件发布过程的集成阶段,它取决于自动化和持续集成。主要目标是发现错误并迅速解决问题,以提高软件质量并缩短产品上市时间。
在持续集成中,开发人员一天要专注于较小的提交。开发人员将代码从存储库中拉出,然后再将其推送到构建服务器,构建服务器将在其中运行各种测试以验证代码提交。
CD:(1)
持续交付(CONTINUOUS DELIVERY)
持续交付就是讲我们的应用发布出去的过程。这个过程可以确保我们尽可能快的实现交付。这就意味着除了自动化测试,我们还需要有自动化的发布流,以及通过一个按键就可以随时随地实现应用的部署上线。
通过持续交付,您可以决定每天,每周,每两周发布一次,这完全可以根据自己的业务进行设置。
但是,如果您真的希望体验持续交付的优势,就需要先进行小批量发布,尽快部署到生产线,以便在出现问题时方便进行故障排除。
持续交付是一种软件开发实践,可确保更快,更稳定地发布代码更改。这样,更改将自动生成,测试并为生产发布做好准备。构建阶段完成后,将代码更改部署到测试环境或生产环境。当实现连续交付时,开发人员始终具有已通过标准测试过程的可部署的构建工件。在连续开发中,代码会自动对生产环境进行修订,从而可以在开发周期的早期提供连续的反馈循环。
CD:(2)
持续部署(CONTINUOUS DEPLOYMENT)
如果我们想更加深入一步的话,就是持续部署了。通过这个方式,任何修改通过了所有已有的工作流就会直接和客户见面。没有人为干预(没有一键部署按钮),只有当一个修改在工作流中构建失败才能阻止它部署到产品线。
持续部署是一个很优秀的方式,可以加速与客户的反馈循环,但是会给团队带来压力,因为不再有“发布日”了。开发人员可以专注于构建软件,他们看到他们的修改在他们完成工作后几分钟就上线了。基本上,当开发人员在主分支中合并一个提交时,这个分支将被构建、测试,如果一切顺利,则部署到生产环境中。
连续部署有点类似于连续交付,但又朝着过程自动化迈进了一步。贯穿所有生产阶段的变更将直接发布给客户,而无需任何人工干预。持续部署会加速反馈循环,因为只有失败的测试才能阻止更改部署到生产中。
CI/CD的好处
1、提高开发人员生产力
CI / CD实践使开发人员从手动任务中解脱出来,处理复杂的依赖项,并将精力集中在提供新功能上,从而提高了团队的生产力。开发人员可以将精力集中在提供所需功能的编码逻辑上,而不必将其代码与业务的其他部分集成并花费时间在如何将此代码部署到平台上。
2、自动化软件发布流程
连续交付为您的团队提供了一种方法,用于检入已自动构建,测试并为发布到生产环境而准备的代码,从而使软件交付高效,有弹性,快速且安全。
3、提高代码质量
CD可以帮助您在交付过程中尽早发现并解决错误,然后再将它们变成更大的问题。您的团队可以轻松执行其他类型的代码测试,因为整个过程已经自动化。通过更频繁地进行更多测试的原则,团队可以更快地迭代,并立即获得有关变更影响的反馈。这使团队能够以高度的稳定性和安全性来驱动质量代码。开发人员将通过即时反馈了解新代码是否有效以及是否引入了任何重大更改或错误。在开发过程中尽早发现的错误最容易解决。
4、更快地提供更新
CD可帮助您的团队快速,频繁地向客户提供更新。当实施CI / CD时,整个团队的速度,包括发布功能和错误修复的速度都会提高。企业可以更快地响应市场变化,安全挑战,客户需求和成本压力。例如,如果需要新的安全功能,您的团队可以实施CI / CD并进行自动测试,以高度自信地将修复程序快速可靠地引入生产系统。过去需要花费数周甚至数月的时间,现在可以在几天甚至几小时内完成。
持续集成和持续交付是组织的应用程序开发团队的理想解决方案。开发人员只需要将代码推送到存储库即可。该代码将被集成,测试,部署,再次测试,与基础架构合并,经过安全和质量审查,并准备以极高的信心进行部署。一个CI / CD管道有助于提高代码质量和软件更新快速传递。
参考链接:https://blog.csdn.net/belalds/article/details/81091753
DevOps持续集成
来源:51CTO
作者:BonnieJason
链接:https://blog.51cto.com/lovejxs/2477924