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

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

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

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

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

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


当前回答

持续集成

自动化(签入+单元测试的构建)

持续交付

持续集成 自动化(部署到测试环境+负载测试+集成测试) 手动(从部署到生产)

持续部署

持续交付但自动化(部署到生产)

CI/CD是一段旅程。不是目的地。

These stages are suggestions. You can adapt the stages based on your business need. Some stages can be repeated for multiple types of testing, security, and performance. Depending on the complexity of your project and the structure of your teams, some stages can be repeated several times at different levels. For example, the end product of one team can become a dependency in the project of the next team. This means that the first team’s end product is subsequently staged as an artifact in the next team’s project.

补充说明:

连续练习 集成与持续 AWS交付

其他回答

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

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

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

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

持续集成:是开发人员尽可能频繁地将对代码库的更改合并到主分支的实践。通过创建构建,然后对构建运行自动化测试来验证这些更改。如果这些测试没有通过,更改就不会合并,开发人员就会避免可能发生的集成挑战。

Continuous Delivery : is an extension of CI since it enables automation to deploy all the code changes to an environment (dev, qa, stage, prod, etc) after the changes have been merged. The artifact may be built as part of CI or as part of this process since the source of truth (your repository) is reliable given your CI process. In simple terms, this means that there is an automated release process on top of the automated testing process and that developers can deploy their changes at any time by simply clicking a button or at the completion of CI.

持续部署:比持续交付更进一步。在这里,在管道的每个阶段通过验证步骤的所有更改都将发布到生产环境中。这个过程是完全自动化的,只有一个失败的验证步骤才能阻止将更改推到生产环境中。

让我们长话短说:

置信区间: 一种软件开发实践,团队成员至少每天集成他们的工作。每个集成都通过自动构建(包括测试)进行验证,以尽可能快地检测错误。 CD: CD构建在CI之上,在CI中构建软件时,软件可以在任何时候发布到生产环境。

我认为我们过度分析了“连续”一组词,可能把它复杂化了一点。在这种情况下,连续意味着自动化。对于“continuous”后面附加的其他单词,请使用英语作为翻译指南,不要试图把事情复杂化!

在“持续构建”中,我们自动构建(写入/编译/链接/等)我们的应用程序为特定平台/容器/运行时/等可执行的内容。

"Continuous integration" means that your new functionality tests and performs as intended when interacting with another entity. Obviously, before integration takes place, the build must happen and thorough testing would also be used to validate the integration. So, in "continuous integration" one uses automation to add value to an existing bucket of functionality in a way that doesn't negatively disrupt the existing functionality but rather integrates nicely with it, adding a perceived value to the whole.

从简单的英语定义来看,集成意味着事物和谐地运行,在代码对话中,我的add在整体中编译、链接、测试和运行完美无缺。如果一个东西不能得到最终产品你就不能称之为集成,对吧!

In our context "Continuous deployment" is synonymous with "continuos delivery" since at the end of the day we've provided functionality to our customers. However, by overanalyzing this, I could argue that deploy is a subset of delivery because deploying something doesn't necessarily mean that we delivered. We deployed the code but because we haven't effectively communicated to our stakeholders, we failed to deliver from a business perspective! We deployed the troops but we haven't delivered the promised water and food to the nearby town.

如果我加上“连续过渡”一词,它会有自己的优点吗?毕竟,也许它更适合描述代码在环境中的移动,因为它具有“从/到”的内涵,而不是部署或交付,后者可能只意味着永久地在一个位置!如果我们不运用常识,这就是我们得到的结果。

总之,这是很简单的描述(做起来有点…复杂!),只要使用常识,英语,你就会好起来的。

持续集成:不断地将开发工作与主要分支合并,以便尽可能频繁地测试代码,以便及早发现问题。

持续交付:一旦代码准备好交付,就持续地向环境交付代码。这可以是分期或生产。其理念是将产品交付给用户群,用户群可以是QA或客户,以便进行审查和检查。

持续集成阶段的单元测试不能捕捉到所有的错误和业务逻辑,特别是设计问题,这就是为什么我们需要QA或测试环境。

持续部署:在代码准备好后立即部署或发布。持续部署需要持续集成和持续交付,否则在发布版中代码质量将得不到保证。

持续部署~~持续集成+持续交付