一文带你认识 CI/CD(持续集成,持续交付,持续部署)

前言

  • 随着软件开发复杂度的不断提高,团队成员之间如何更好地协同工作以确保软件开发的质量,已经慢慢成为开发过程中不可回避的问题。自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,从而可以更早的进入测试阶段;并且能够更早的发现问题,这样解决问题的成本就会显著下降。
  • 持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也缩短了中间出现的等待时间。持续集成也意味着开发、集成、测试、部署得以持续。

CI/CD 是一种通过自动化流程提升软件开发效率与质量的实践方法,涵盖持续集成(CI)与持续交付/持续部署(CD)两个核心环节。其本质是通过频繁的代码提交、自动化测试及快速部署,减少人为错误并加速产品迭代。

一、持续集成

1.1:持续集成介绍

持续集成(Continuous integration,简称CI),指多名开发者在开发不同功能代码的过程中,可以频繁的将代码合并到一起并且相互不影响工作。
简单来说持续集成就是开发人员频繁地(一天多次)将代码集成到主干。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误。
在这里插入图片描述
持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,可以确定新代码和原有代码能否正确地集成在一起。

1.2:持续集成的好处

  1. 频繁提交代码:开发人员可以每天多次提交代码,确保代码库始终保持最新状态。
  2. 自动化构建:每次提交后,自动触发构建过程,包括编译、测试、静态分析等。
  3. 快速反馈:如果构建失败或测试不通过,能够快速地向开发人员提供反馈,以便及时修复问题。

1.3:持续集成的目的

让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
持续集成并不能消除Bug,而是让它们非常容易的发现和改正。

二、持续交付

2.1:持续交付介绍

持续交付(Continuous delivery,简称CD),指频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。与持续集成相比,持续交付添加了测试Test —> 模拟Staging —>生产Production 的流程,也就是为新增的代码添加了一个保证:确保新增的代码在生产环境中是可用的。
持续交付的侧重点在于交付,其核心对象不在于代码,而在于可交付的产物。
在这里插入图片描述

2.2:持续交付的好处

  1. 提高开发效率:减少手动操作和等待时间,加快开发周期。
  2. 尽早发现问题:通过频繁的集成和测试,问题能够在早期被发现和解决。
  3. 降低风险:减少了大规模部署时可能出现的问题,提高了软件的质量和稳定性。
  4. 增强团队协作:促进团队成员之间的沟通和协作,提高团队的整体效率。

三、持续部署

3.1:持续部署介绍

  • 持续部署(Continuous Deployment,简称CD)指基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境,以实现交付高质量的产品。
  • 与持续交付和持续集成相比,持续部署强调了通过自动部署的手段,对新的软件功能进行集成。从开发人员提交代码到编译、测试、部署的全流程不需要人工的干预,完全通过自动化的方式执行。
  • 持续交付与持续部署类似,但不一定自动部署到生产环境,而是随时可以部署。其重点在于确保软件随时处于可发布状态。
    在这里插入图片描述

3.2:持续部署的好处

  1. 自动化流程:从代码提交到生产环境的部署完全自动化,无需人工干预。
  2. 高频率部署:可以实现频繁的部署,使得新功能能够快速地提供给用户。
  3. 风险控制:需要有强大的测试和监控体系来确保部署的稳定性和可靠性。

四、CI/CD的主要流程

  1. ​代码提交与触发​:开发者提交代码至版本控制系统(如Git、GitLab),触发CI/CD流程。
  2. ​自动化构建与测试​:系统拉取最新代码,执行编译、打包及单元测试、集成测试等,若失败则通知开发者。
  3. 环境部署与验证​:通过测试的代码被部署到预发布环境,进行用户验收测试或性能测试。
  4. ​生产环境发布​:持续交付需人工确认后发布,持续部署则全自动完成,例如电商平台凌晨自动更新功能。

五、常见的CI/CD工具

常见的CI/CD工具有:Jenkins、GitLab、GitHub、ArgoCD等。

总结:整理不易,如果对你有帮助,请记得点赞,关注,收藏。更多DeveOps相关知识持续分享中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值