这三个词的区别是什么?我所在的学校提供了以下定义:

持续集成基本上意味着开发人员的工作副本每天多次与共享主线同步。

持续交付被描述为持续集成的逻辑演进:始终能够将产品投入生产!

持续部署被描述为持续交付之后的逻辑下一步:只要产品通过QA,就自动将其部署到生产环境!

它们还提供了一个警告:如果您能够持续部署到测试系统,有时也会使用术语“持续部署”。

所有这些都让我感到困惑。任何更详细的解释(或附带一个例子)都是非常感谢的!


当前回答

一个图表可以代替很多单词:

享受吧!:-)

#我已经更新了正确的图片…

其他回答

DevOps是3C的组合——持续、沟通、协作,这导致了各个行业的主要关注。

在物联网连接设备的世界中,产品所有者、web、移动和QA等多种scrum功能以敏捷的方式在scrum周期中工作,将产品交付给最终客户。

持续集成:多个scrum特性在多个端点同时工作 持续交付:通过集成和部署,同时向多个客户交付产品。 持续部署:在多个平台上将多个产品部署到多个客户。

观看此视频,了解DevOps如何实现物联网连接的世界:https://youtu.be/nAfZt2t4HqA

一个图表可以代替很多单词:

享受吧!:-)

#我已经更新了正确的图片…

来源:https://thenucleargeeks.com/2020/01/21/continuous-integration-vs-continuous-delivery-vs-continuous-deployment/

什么是持续集成 持续集成是一个自动构建和自动测试的过程或开发实践,即开发人员需要多次将他的代码提交到一个共享存储库中,其中每次集成都通过自动构建和测试进行验证。

如果构建失败/成功,它会通知开发人员,然后他可以采取相关行动。

什么是持续交付 持续交付是一种实践,在这种实践中,我们保持我们的代码在任何通过所有测试并具有将代码推入生产环境所需的所有配置的地方都是可部署的,但还没有部署。

什么是持续部署 在CI的帮助下,我们已经为我们的应用程序创建了构建,并准备将其推向生产环境。在这一步中,我们的构建已经准备好了,通过CD,我们可以直接将应用部署到QA环境中,如果一切顺利,我们可以将相同的构建部署到生产环境中。

所以基本上,持续部署比持续交付更进一步。通过这种实践,通过您的生产管道的所有阶段的每个变更都被发布给您的客户。

持续部署是配置管理和容器化的结合。

配置管理:CM主要是维护与应用程序需求兼容的服务器配置。

容器化:容器化是一组将在整个环境中保持一致性的费用。

Img来源:https://www.atlassian.com/

根据我和Alex Cowan在持续交付和开发运维课程中所学到的,CI和CD是产品管道的一部分,包括从观察到发布产品的时间。

从观察到设计的目标是得到高质量的可测试的想法。这部分过程被认为是持续设计。

之后发生的事情,当我们从代码开始,它被认为是一种持续交付能力,其目标是非常快速地执行想法并发布给客户(你可以阅读Jez Humble的书《持续交付:通过构建、测试和部署自动化的可靠软件发布》了解更多细节)。下面的管道说明持续集成(CI)和持续交付(CD)由哪些步骤组成。

持续集成,正如Mattias Petter Johansson解释的那样,

当一个软件团队有每天进行多次合并的习惯时 他们有一个自动验证系统来检查这些 合并问题。

(您可以观看以下两个视频,以获得使用CircleCI -开始使用CircleCI -持续集成P2和在拉请求上运行CircleCI的更实际的概述)。

可以像下面这样指定CI/CD管道,从新代码到发布的产品。

前三个步骤与测试有关,扩展被测试对象的边界。

另一方面,持续部署是自动处理部署。因此,任何通过自动化测试阶段的代码提交都会自动发布到生产环境中。

注意:这并不一定是您的管道应该是什么样的,但它们可以作为参考。

Atlassian发布了一个关于持续集成、持续交付和持续部署的很好的解释。

简而言之:

持续集成——是 每当新提交被推入分支时,自动构建和测试应用程序。

持续交付——即持续集成+通过“点击一个按钮”将应用程序部署到生产环境(通常是发布给客户,但按需发布)。

持续部署-是 持续交付,但没有人为干预(向客户发布正在进行中)。