以下是当前持续集成内容的引言:


...经常将开发人员的工作代码副本合并到共享代码库中的过程,以防止或最小化集成问题。


好,我明白了。但是接着还有连续交付和连续部署,这就是我不断迷失的地方:


假设持续集成与持续交付和/或持续部署有何关系?通过integration在生产线上的某个地方,您最终会在目标环境为delivering的情况下得到deployed
连续交付和连续部署之间有什么区别?

,在DevOps称为DevOps之前,我们使用的术语可能会有助于理解这些新的DevOps术语,例如: prod目标,可以选择与某些类型的再生过程(编译,绑定等)结合使用,以将所有相关组件打包在一起,形成类似可执行文件的形式。那应该类似于/接近持续集成吗?

使用FTP之类的东西分发到某些目标环境(如果标准副本不能弥补差距),但是还没有在FTP中激活它。目标。这应该类似于/接近连续交付吗?

在某些目标环境中安装(或激活),并结合诸如绑定,停止/启动操作等内容。这应该是相似的/接近连续部署?


评论

标记减价过多会使其难以阅读。但这并没有给问题带来更多的背景信息,因此我认为可以通过_markdown_下划线强调Ords,以简化阅读

我的意思是编辑很痛苦:)提示答案的提示blog.crisp.se/wp-content/uploads/2013/02/…

相关StackOverflow帖子

我的相关答案:softwareengineering.stackexchange.com/a/358551/3385

#1 楼

持续交付和持续部署都通过在流程中添加“生产部署”步骤,进一步将持续集成向前迈进了一步。
连续交付和部署之间的区别在于,交付步骤是手动完成的,而部署则是它是自动的。



持续集成,持续交付和持续部署之间的区别。从codeproject.com复制的图片

无论是连续交付还是连续部署,在很大程度上都是一种实现选择。如果您进行连续部署,则代码更改将在通过验收测试后自动部署。这对于您的产品可能是不希望的。通过连续交付,人们可以选择是否部署特定代码更改(以及可能在何处确切部署)。

由于连续交付和部署之间的差异很小,并且许多人不知道确切的差异,因此有时可以互换使用这两个术语。

评论


真好!但是...问题(我的问题)的解决方案(您的答案),改变了问题...阅读更多...

– Pierre.Vriens♦
17 Mar 12 '17 at 10:42

#2 楼

连续交付和连续部署(CD)几乎是同一件事*。每次更改被认为“可行”(经过测试/验证)时,都应立即发布。您每天可以完成工作多次。

持续集成(CI)仅指经常将代码合并在一起,以确保功能分支不会偏离主框架太远'master'分支,这样您就可以从集成的角度快速了解代码是否存在问题-即您在更改内容时是否破坏了任何功能。

关于它们之间的关系彼此之间,CI可以极大地帮助验证代码,以便可以快速发布(CD)。您仍然可以在没有CI的情况下获得CD(反之亦然),但是您会发现,这通常会使早期集成代码变得更加容易,并且常常可以更快地发现问题,从而使您可以更快地解决上述问题,最后

*编辑:这是一篇讨论差异的文章。 https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff
连续交付并不总是意味着实际上一直在部署到生产中,而是意味着不断地将其部署到生产环境中。类似于生产的环境,并确信一旦业务准备就绪,这些更改就可以随时投入生产。实际上,大多数人将这些术语混为一谈。

评论


谢谢!但是根据您的“或多或少相同的事情”,真的吗?您能想到任何可以说明细微差别的东西吗?

– Pierre.Vriens♦
17 Mar 12 '17 at 7:08

我已经用有关差异的注释更新了我的帖子,但是我相信在通常的对话中,大多数人会互换使用这些术语。

–tayworm
17 Mar 12 '17 at 12:32

#3 楼

某个版本的软件产品必须先完成其集成阶段,然后才能交付或部署。

对于连续交付/部署,必须进行持续集成。否则,如果集成完成事件相距太远而无法获得“连续”属性的资格,则可能的交付/部署也是如此(通常只有一部分集成版本才有资格进行交付/部署)。

更新:我的回答仅强调了CI和CD和CD两者之间的依赖关系,THelper的回答很好地涵盖了该术语。

我唯一需要评论的是关于(超载)使用deployment。非生产环境中的部署是真实的。它们甚至可以经常发生,例如在连续交付期间作为各种测试阶段的一部分来完成。但这并没有进行这样的部署。连续部署专门指生产环境中的部署。

评论


好的,这一切都有帮助,但是也许您可以用描述交付和部署的方式来扩展答案?

– Pierre.Vriens♦
17年3月12日在7:03

#4 楼

基本上,持续发布是持续交付和持续部署的一部分,只是发布会自动发生。您也可以将持续交付视为持续集成的逻辑下一步,它适用于所有环境。
持续集成还有助于工件验证,因此可以更快地进行部署。尽管没有持续集成就不可能进行连续部署,并且通过持续集成来捕获错误要容易得多。
所有这些“连续的事物”最终都与消除开发工作流中不必要的动作有关。最重要的是,CI / CD从技术和业务角度来看都很重要。未能采用这些DevOps原则的公司可能会冒险走上恐龙的道路。在当今快速发展的IT环境中,它要么是DevOps,要么就是死亡。