登录/注册 帐户

DevOps

CI / CD是什么?

CI/CD是一种通过介绍频繁地向客户交付应用程序的方法自动化到应用程序的发展阶段。归因于CI / CD的主要概念是持续集成,持续交付和持续部署。CI / CD是整合新的代码中的问题的解决方案可能会导致开发和运营团队(又名“集成地狱“)。

具体来说,CI / CD介绍正在进行的自动化和连续监测整个应用程序生命周期,从集成和测试阶段到交付和部署。综合起来,这些连接起来的实践通常被称为“CI/CD管道”,并且由开发和运营团队一起工作以敏捷的方式使用DevOps或者网站可靠性工程(SRE)的方法。


CI和CD(和其他CD)有什么区别?

缩写CI / CD有几个不同的含义。“辞”,在CI / CD总是指的是持续集成,这是开发商的自动化过程。成功的CI意味着新的代码更改到一个应用程序定期构建,测试,并合并为一个共享的存储库。这是在一次与对方可能有冲突在发展应用的分支太多的问题的解决方案。

CI/CD中的“CD”指的是连续交付和/或连续部署,它们是相关的概念,有时可以互换使用。两者都是关于管道的进一步自动化阶段,但有时它们单独用于说明自动化程度有多大。

连续交货通常意味着开发人员对应用程序的更改会被自动测试并上传到存储库(比如GitHub上或者容器注册中心),然后操作团队可以将它们部署到现场生产环境中。它可以解决开发团队和业务团队之间缺乏可见性和沟通的问题。为此,持续交付的目的是确保部署新代码所花费的努力最小。

连续部署(其他可能的“CD”)是指从仓库到生产,它是由客户使用自动释放开发人员的变化。它解决了超载运营团队与手工流程减慢应用交付的问题。它通过在管道自动化下一阶段的基础上持续交付的好处。

CI / CD流
CI / CD流

CI/CD可以只指定持续集成和持续交付的连接实践,也可以指持续集成、持续交付和持续部署的所有三种连接实践。为了使其更加复杂,有时“连续交付”也以包含连续部署过程的方式使用。

最后,可能不值得您花时间在这些语义上—只需记住,CI/CD实际上是一个过程,通常被看作是一个管道,需要向应用程序开发添加高度的持续自动化和持续监控。

逐案,哪些术语指的是取决于有多少自动化已建成的CI / CD管道。很多企业通过增加CI开始,然后朝作为部分自动化输送和展开的道路,比如他们的工作方式云计算的本地应用

我们的专家可以帮助您的组织开发实践、工具和文化,从而更有效地现代化现有应用程序并构建新的应用程序。


持续集成

现代应用开发,我们的目标是拥有多个开发人员在同一应用程序的不同功能同时工作。但是,如果一个组织设置为合并在一起的所有分支的源代码在第一天(俗称“合并天),其结果可能是乏味的、手工的和时间密集的工作。这是因为当开发人员单独对应用程序进行更改时,可能会与其他开发人员同时进行的不同更改发生冲突。如果每个开发人员都定制了自己的本地代码,那么这个问题可能会进一步加剧集成开发环境(IDE),而不是团队在一个基于云的IDE同意。

持续集成(CI)帮助开发人员合并他们的代码更改回共享分支,或“主干”,更频繁,有时甚至每天。一旦开发人员对应用程序更改将被合并,这些变化是由自动构建应用程序和运行不同程度的自动化测试,通常单元测试和集成测试,以确保变更没有破坏应用程序验证。这意味着测试一切从类和函数包含整个应用程序的不同的模块。如果自动测试发现的新的和现有的代码之间有冲突,CI使得它更容易快速并经常修复漏洞。


持续交付

随着CI中构建、单元和集成测试的自动化,持续交付将自动地将验证过的代码发布到存储库中。因此,为了拥有一个有效的持续交付过程,重要的是在开发管道中已经内置了CI。持续交付的目标是拥有一个始终准备好部署到生产环境的代码基。

在连续交付,每一个阶段,从代码合并更改为交付生产就绪建立,涉及到自动化测试和代码发布自动化。在该过程结束时,运营团队能够快速,轻松地部署应用到生产中。


持续部署

一个成熟的CI / CD管道的最后一个阶段是持续部署。作为扩展连续递送,其生产就绪构建的自动释放到一个代码库,持续部署能自动化释放一个应用程序来生产。因为在生产之前流水线的阶段没有手动门,持续部署在很大程度上依赖于精心设计的测试自动化。

在实践中,持续部署意味着开发人员的变化的云应用可以写它(假设它通过自动化测试)的几分钟之内去住。这使得它更容易连续地接收并结合用户反馈。总之,所有这些连接的CI / CD的做法使一个应用程序的部署风险较小,因此更容易一下子释放小块变化的应用程序,而不是全部。还有大量的前期投入,不过,因为自动化测试将需要被写入容纳各种在CI / CD管道测试和发布阶段。


常见的CI/CD工具有哪些?

CI / CD工具可以帮助团队自动化的开发,部署和测试。一些工具,专门处理集成(CI)的一面,有些管理开发和部署(CD),而另一些专注于连续测试或相关功能。

最著名的CI/CD开放源码工具之一是自动化服务器詹金斯。Jenkins被设计用来处理从简单的CI服务器到完整的CD中心的任何东西。

Tekton的管道是Kubernetes平台的CI / CD框架,提供与容器中的标准云的原生CI / CD经验。

除了Jenkins和Tekton管道,您可能希望研究的其他开源CI/CD工具包括:

  • 大三角帆,为多云环境构建的CD平台。
  • GoCD,一个CI/CD服务器,侧重于建模和可视化。
  • 中央大厅“一个开源的连续事情善人。”
  • 螺丝刀,为CD设计的构建平台。

团队可能还希望考虑管理CI/CD工具,这些工具可以从各种供应商获得。主要的公共云提供商都提供CI/CD解决方案必威体育官必威体育官方GitLabCircleCI特拉维斯CIAtlassian竹等等。

此外,任何工具的基础,以DevOps的很可能是一个CI / CD过程的一部分。工具配置自动化(如Ansible厨师,木偶),容器的运行时(如搬运工人RKT,cri-o),以及容器配器(Kubernetes)没有严格的CI / CD的工具,但他们会在很多CI显示/ CD的工作流程。

CI/CD管道的构建块

CI / CD需要自定义编码,并与多个软件包工作。红帽Ansible自动化平台是与一个组成所有这些功能的开源自动化语言。

加快您的下一个应用开发项目。我们的专家将指导您的团队充分利用创新的开源技术,构建原型,并解决了最棘手的问题。

还有很多更与CI / CD做