最近看了一篇文章 The Product Managers' Guide to Continuous Delivery and DevOps 文中对「持续集成(Continuous Integration)」、「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」这三个概念有很详细的解释。这里借用文中的插图,说一下我对这三个概念的理解。
持续集成
<img src="https://s2.51cto.com/images/blog/202207/25102451_62ddfef314bb939135.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=" data-rawwidth="1000" data-rawheight="440" width="1000" data-original="https://pic2.zhimg.com/c5c8e6f40c7c133e22402c00bb7e1a25_r.jpg?source=1940ef5c">
持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
持续交付
<img src="https://s2.51cto.com/images/blog/202207/25102451_62ddfef3718274366.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=" data-rawwidth="1000" data-rawheight="740" width="1000" data-original="https://pic2.zhimg.com/db7198e3c39e4656e18efcb4bd1b20b1_r.jpg?source=1940ef5c">
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。
持续部署
<img src="https://s2.51cto.com/images/blog/202207/25102451_62ddfef3cd0844790.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=" data-rawwidth="1000" data-rawheight="740" width="1000" data-original="https://pic4.zhimg.com/f96f19e4d567aad5006d841963a86e41_r.jpg?source=1940ef5c">
持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。
作者:yumminhuang