【转载】三张图告诉你什么是持续集成、持续交付和持续部署!

原文地址:https://www.seoxiehui.cn/article-68607-1.html
点击查看原文


如果对DevOps有一定了解的朋友,一定会经常听到这几个关键词:持续集成、持续交付和持续部署,那么这几个词之间有什么关联、区别呢,下面内容教大家怎么区分~

1.持续集成

持续集成
持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

2.持续交付

持续交付
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行的环境(类生产环境,production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

3.持续部署

持续部署
持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。


举个栗子:

你开了一家公司,雇了很多码农在一起写代码。

你说,要用 Gitlab 做代码管理。当一个码农在自己的开发机上写好代码之后,要合并到主分支里,他首先要发起一个 Merge Request(MR),这会在一个特定服务器上触发一次对他提交的代码的检查,包括代码格式检查、依赖关系检查以及单元测试等一系列检查,等通过了全部检查,他就可以将代码合并到主分支,否则他需要按照错误提示进行修改,然后发起新一轮的检查。然后呢,每天晚上 10 点会有一个定时任务从主分支上拿最新的代码,进行编译打包,最后将打包好的程序推送到一个服务器上保存,这个服务器叫做 Artifact Repository。

你又说,要每天将当天打包好的程序部署到测试环境上。也就是说,一个码农晚上 10 点之前提交了代码,那他第二天就可以在测试环境上看到自己新提交的代码的效果了。

你还说,每一个月要在生产环境上部署一个稳定的发布版本。

以上三段内容是一个软件从开发到部署的流程的简单描述,也分别对应持续集成、持续交付以及持续部署。


总结:集成、交付和部署是软件开发到发布流程中的不同阶段。那所谓的持续是相对于过去的流程提出的。过去的流程是所有人写好代码之后再进行合并,然后再进行测试,最后再发布。这种流程会把风险堆到软件发布前的最后阶段。那持续的概念就是,做一点就马上递交给下一个流程,这样能够尽早地发现并解决问题。

猜你喜欢

转载自blog.csdn.net/michael_f2008/article/details/87911906