CICD的概念
1> 持续集成Continuous Integration(CI)
2> 持续交付Continuous Delivery(CD)
在谈论软件开发时,经常会提到持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD)这几个术语。但它们真正的意思是什么呢?
·
概览:
工厂里的装配线以快速、自动化、可重复的方式从原材料生产出消费品。
同样,软件交付管道以快速、自动化和可重复的方式从源代码生成发布版本。
如何完成这项工作的总体设计称为“持续交付”(CD)。
启动装配线的过程称为“持续集成”(CI)。
确保质量的过程称为“持续测试”,
将最终产品提供给用户的过程称为“持续部署”。
一些专家让这一切简单、顺畅、高效地运行,这些人被称为运维开发DevOps践行者。
·
持续集成-CI:
持续集成指的是,频繁地(⼀天多次)将代码集成到主⼲。它的好处主要有两个:
快速发现错误。每完成⼀点更新,就集成到主⼲,可以快速发现错误,定位错误也比较容易。
防止分支⼤幅偏离主⼲。如果不是经常集成,主⼲⼜在不断更新,会导致以后集成的
难度变⼤,甚⾄难以集成。
Martin Fowler 说过, "持续集成并不能消除 Bug,⽽是让它们⾮常容易发现和改正。 "
持续集成强调开发⼈员提交了新代码之后,⽴刻进⾏构建、(单元)测试。根据测试结
果,我们可以确定新代码和原有代码能否正确地集成在⼀起。
与持续集成相关的,还有两个概念,分别是持续交付和持续部署。
·
持续交付-CD:
持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者⽤户,以供评审。如果评审通过,代码就进⼊⽣产阶段。
持续交付可以看作持续集成的下⼀步。它强调的是,不管怎么更新,软件是随时随地可以交付的。
·
持续部署:
持续部署(continuous deployment)是持续交付的下⼀步,指的是代码通过评审以后,⾃动部署到⽣产环境。
持续部署的⽬标是,代码在任何时刻都是可部署的,可以进⼊⽣产阶段。
持续部署的前提是能⾃动化完成测试、构建、部署等步骤。