参考项目

参考视频

CI 和 CD 的概念

CI很容易理解,就是持续集成。但是CD既可以指代码持续交付,也可理解为代码持续部署。CI和CD之间有很多相似的部分,但是也有很大的区别。

持续集成(CONTINUOUS INTEGRATION)

在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流进行验证。这样做是基于之前持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警。

持续交付(CONTINUOUS DELIVERY)

持续交付就是讲我们的应用发布出去的过程。这个过程可以确保我们尽可能快的实现交付。这就意味着除了自动化测试,我们还需要有自动化的发布流,以及通过一个按键就可以随时随地实现应用的部署上线。

通过持续交付,您可以决定每天,每周,每两周发布一次,这完全可以根据自己的业务进行设置。

但是,如果您真的希望体验持续交付的优势,就需要先进行小批量发布,尽快部署到生产线,以便在出现问题时方便进行故障排除。

https://5b0988e595225.cdn.sohucs.com/images/20171116/dcef78f39a8b43dbb2179af6a7cb0916.jpg

https://img-blog.csdnimg.cn/20210625180331920.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1NzEwMjYzMTI0,size_16,color_FFFFFF,t_70

https://img-blog.csdnimg.cn/20210625180940742.png

现在我们已经知道了什么是“集成”,很容易理解“持续集成”的需要之处。俗话说,“ 如果某事是痛苦的,那就多做它 ”。持续集成实质上是通过高频率的重复集成步骤减轻它的痛苦。最显而易见的方法就是在每次 feature 合并后进行集成(而不是在宣布正式 release 之前等待)

https://cdn.thenewstack.io/media/2018/08/cdc82f2b-codefresh2.png

https://cdn.thenewstack.io/media/2018/08/3219a4ee-codefresh4.png