最近看了一篇文章 The Product Managers’ Guide to Continuous Delivery and DevOps 文中对「持续集成(Continuous Integration)」、「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」这三个概念有很详细的解释。这里借用文中的插图,说一下我对这三个概念的理解。

持续集成

<img src=”https://pic1.zhimg.com/50/c5c8e6f40c7c133e22402c00bb7e1a25_hd.jpg” data-rawwidth=”1000″ data-rawheight=”440″ class=”origin_image zh-lightbox-thumb” width=”1000″ data-original=”https://pic1.zhimg.com/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg”>持续集成,持续交付,持续部署-冯金伟博客园持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
持续交付
<img src=”https://pic1.zhimg.com/50/db7198e3c39e4656e18efcb4bd1b20b1_hd.jpg” data-rawwidth=”1000″ data-rawheight=”740″ class=”origin_image zh-lightbox-thumb” width=”1000″ data-original=”https://pic1.zhimg.com/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg”>持续集成,持续交付,持续部署-冯金伟博客园
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。
持续部署
<img src=”https://pic2.zhimg.com/50/f96f19e4d567aad5006d841963a86e41_hd.jpg” data-rawwidth=”1000″ data-rawheight=”740″ class=”origin_image zh-lightbox-thumb” width=”1000″ data-original=”https://pic2.zhimg.com/f96f19e4d567aad5006d841963a86e41_r.jpg”>持续集成,持续交付,持续部署-冯金伟博客园持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。

 


我个人觉得持续集成、持续交付、持续部署非常值得推广。开发过程中最怕集成时遇到问题导致返工,而持续集成、持续交付、持续部署恰恰可以早发现早解决,从而可以避免这个问题。

 
作者:yumminhuang
链接:https://www.zhihu.com/question/23444990/answer/89426003
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。