天天看点

如何理解持续集成、持续交付和持续部署?

先放一张整体关联干货图,再来逐个解析这三个概念:

如何理解持续集成、持续交付和持续部署?

持续集成、部署和交付的关系

一、 持续集成Continuous Integration

集成是将更新的代码合并或者提交到主干源码仓库中。在这个合并或者提交的过程中,都伴随着执行一系列的质量保证活动如代码规范检查、单元测试、安全扫描等来确保代码的质量。

持续集成是在版本控制的基础上,通过频繁的代码提交、自动化构建和单元测试加快集成周期和问题反馈速度,从而及时验证系统可用性。为了保证后续的系统质量,在持续集成过程中,还会加入代码规范扫描、安全漏洞扫描、集成测试等活动,用来保证代码形成过程符合质量要求。持续集成的频率达到每天多次、频繁的集成,可以提前发现问题尽早解决冲突,使后续的持续集成更顺畅。

如何理解持续集成、持续交付和持续部署?

二、持续部署Continuous Deployment

部署是将制品安装到不同的运行环境的技术操作,如测试环境、准生产环境、生产环境等都需要部署操作。

持续部署则是通过自动化的手段将部署的操作过程进行简化,降低部署的复杂度,使得部署是一个随时可进行的快速活动。所以持续部署并不特指通过质量验证的制品自动部署到生产环境的特定环节。在持续集成过程中不断生成可执行的制品,需要尽快验证是否存在功能性能等方面的问题,或者尽可能快速的让最终用户可以使用这些功能。通过持续部署到测试环境、准生成环境中,可以使测试团队尽快开始测试,开发团队获得快速的反馈并响应。使研发和测试的协同加快了进程。通过持续部署到生产环境,让最终用户可见,则可以快速获得最终用户的使用反馈,体现需求的市场价值。

三、持续交付Continuous Delivery

从在不同角色的角度对交付进行解读会有不同含义。

对于产品研发团队来说,产品的版本更新迭代和交付,版本通过各阶段测试达到可提供给客户使用的状态即为可交付。

对于项目实施团队来说,持续交付是要将客户要求实现的功能部署到客户的生产环境,通过验收即为交付。

对于最终用户来说,持续交付是最终用户可以使用相关的功能即为交付。

持续交付是指持续的将各类变更(包括新功能、缺陷修复、配置变化、实验等)安全、快速、高质量地落实到生产环境或用户手中的能力。持续交付的能力通过自动化流水线的方式实现,减少研发过程中不必要的浪费,近而缩短整个研发过程中所有需求的交付周期。持续交付是一个整体过程,从一个业务端的想法到系统功能可以面对客户的全流程。

如何理解持续集成、持续交付和持续部署?

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

继续阅读