CI/CD 是一种通过在利用开发阶段引入自动化来频繁向客户交付利用的办法。CI/CD 的外围概念是继续集成、继续交付和继续部署。
1、CI 继续集成(Continuous Integration)
CI/CD 中的 ”CI” 始终指继续集成,它属于开发人员的自动化流程。
胜利的 CI 意味着利用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案能够解决在一次开发中有太多利用分支,从而导致互相抵触的问题。
古代利用开发的指标是让多位开发人员同时解决同一利用的不同性能。然而,如果企业安顿在一天内将所有分支源代码合并在一起(称为 ” 合并日 ”),最终可能造成工作繁琐、耗时,而且须要手动实现。这是因为当一位独立工作的开发人员对利用进行更改时,有可能会与其余开发人员同时进行的更改发生冲突。如果每个开发人员都自定义本人的本地集成开发环境(IDE),而不是让团队就一个基于云的 IDE 达成统一,那么就会让问题更加雪上加霜。
继续集成(CI)能够帮忙开发人员更加频繁地(有时甚至每天)将代码更改合并到共享分支或 ” 骨干 ” 中。一旦开发人员对利用所做的更改被合并,零碎就会通过主动构建利用并运行不同级别的自动化测试(通常是单元测试和集成测试)来验证这些更改,确保这些更改没有对利用造成毁坏。这意味着测试内容涵盖了从类和函数到形成整个利用的不同模块。如果自动化测试发现新代码和现有代码之间存在抵触,CI 能够更加轻松地疾速修复这些谬误。
2、CD 继续交付(Continuous Delivery)
实现 CI 中构建及单元测试和集成测试的自动化流程后,继续交付可主动将已验证的代码公布到存储库。
为了实现高效的继续交付流程,务必要确保 CI 已内置于开发管道。继续交付的指标是领有一个可随时部署到生产环境的代码库。
在继续交付中,每个阶段(从代码更改的合并,到生产就绪型构建版本的交付)都波及测试自动化和代码公布自动化。在流程完结时,运维团队能够疾速、轻松地将利用部署到生产环境中。
3、CD 继续部署(Continuous Deployment)
对于一个成熟的 CI/CD 管道来说,最初的阶段是继续部署。
作为继续交付——主动将生产就绪型构建版本公布到代码存储库——的延长,继续部署能够主动将利用公布到生产环境。因为在生产之前的管道阶段没有手动门控,因而继续部署在很大水平上都得依赖精心设计的测试自动化。
实际上,继续部署意味着开发人员对利用的更改在编写后的几分钟内就能失效(假如它通过了自动化测试)。这更加便于继续接管和整合用户反馈。总而言之,所有这些 CI/CD 的关联步骤都有助于升高利用的部署危险,因而更便于以小件的形式(而非一次性)公布对利用的更改。不过,因为还须要编写自动化测试以适应 CI/CD 管道中的各种测试和公布阶段,因而后期投资还是会很大。
参考链接
https://www.redhat.com/zh/top…