CICD简介[通俗易懂]

CICD简介[通俗易懂]CI/CD​CI/CD的出现改变了开发和测试人员发布软件的方式。​传统的软件开发和交付方式在迅速变得过时。过去的敏捷时代里,大多数公司的软件发布周期是每月、每季度甚至每年,而在现在DevOps时代,每周、每天甚至每天多次都是常态。当SaaS(软件即服务)成为业界主流后尤其如此,您可以轻松地动态更新应用程序,而无需强迫用户下载更新组件。很多时候,用户甚至都不会注意到正在发生变化。开发团队通过软件交付流水线(Pipeline)实现自动化,以缩短交付周期,大多数团队都有自动化流程

大家好,又见面了,我是你们的朋友全栈君。

CI/CD

​ CI/CD 的出现改变了开发和测试人员发布软件的方式。

​ 传统的软件开发和交付方式在迅速变得过时。过去的敏捷时代里,大多数公司的软件发布周期是每月、每季度甚至每年,而在现在 DevOps 时代,每周、每天甚至每天多次都是常态。当 SaaS(软件即服务) 成为业界主流后尤其如此,您可以轻松地动态更新应用程序,而无需强迫用户下载更新组件。很多时候,用户甚至都不会注意到正在发生变化。开发团队通过软件交付流水线(Pipeline)实现自动化,以缩短交付周期,大多数团队都有自动化流程来检查代码并部署到新环境。

CI是什么?

在这里插入图片描述

持续集成

​ 定义:频繁地(一天多次)将代码集成到主干。CI是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI 主要针对在集成新代码时所引发的问题(亦称“集成地狱”)。

​ 持续集成强调开发人员提交了新代码之后,立刻自动的进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

持续集成的目的

​ 就是让产品可以快速迭代,同时还能保持高质量**。**它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

​ 持续集成过程中很重视自动化测试验证结果,对可能出现的一些问题进行预警,以保障最终合并的代码没有问题。

持续集成的作用

  • 代码库存越是积压,就越得不到生产检验,积压越多,代码间交叉感染的概率越大,下个发布(release)的复杂度和风险越高,持续集成可以保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
  • 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;
  • 及早的发现代码中的问题,及早解决,代码越早推送(PUSH)出去,用户能越早用到,快就是商业价值;

特点

  • 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
  • 需要有专门的集成服务器来执行集成构建;
  • 需要有代码托管工具支持;

CD是什么?

​ CI/CD 中的“CD”指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。两者都事关管道后续阶段的自动化,但它们有时也会单独使用,用于说明自动化程度。

​ 持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

​ 持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。持续交付通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 GitHub或容器注册表),然后由运维团队将其部署到实时生产环境中。这旨在解决开发和运维团队之间可见性及沟通较差的问题。因此,持续交付的目的就是确保尽可能减少部署新代码时所需的工作量。

​ 持续部署(另一种“CD”)指的是自动将开发人员的更改从存储库发布到生产环境,以供客户使用。它主要为了解决因手动流程降低应用交付速度,从而使运维团队超负荷的问题。持续部署以持续交付的优势为根基,实现了管道后续阶段的自动化。

​ 归根结底,我们没必要纠结于这些语义,您只需记得 CI/CD 其实就是一个流程(通常形象地表述为管道),用于实现应用开发中的高度持续自动化和持续监控。因案例而异,该术语的具体含义取决于 CI/CD 管道的自动化程度。许多企业最开始先添加 CI,然后逐步实现交付和部署的自动化(例如作为[云原生应用]的一部分)。

CICD实现过程
工厂里的装配线以快速、自动化、可重复的方式从原材料生产出消费品。同样,软件交付管道以快速、自动化和可重复的方式从源代码生成发布版本。如何完成这项工作的总体设计称为“持续交付”(CD)。启动装配线的过程称为“持续集成”(CI)。确保质量的过程称为“持续测试”,将最终产品提供给用户的过程称为“持续部署”

实现流程

​ 1、运维管理员创建gitlab项目,创建Jenkins项目

​ 2、开发人员将code提交到对应的gitlab中(可按分支触发)

​ 3、gitlab通过webhook触发对应Jenkins项目

​ 4、进入CI环节:将code集成进标准的docker镜像中,并进行测试;

​ 集成及测试成功,则将集成后的镜像上传至仓库中;

集成或测试失败,则结束本次Jenkins,并将原因通过邮件发送给开发者与运维管理员。

​ 5、进入CD环节:

​ 通过Ansible将CI集成成功的镜像部署到已定义的所有机子中,并进行测试。

​ 如测试通过完成本次部署,如测试失败将判定该项目是否为第一次部署的;

​ 如该项目不是第一次部署的,则滚回到上一版本的容器,并将原因通过邮件发送给运维管理员。

如测试失败将判定该项目是否为第一次部署的;

​ 如该项目不是第一次部署的,则滚回到上一版本的容器,并将原因通过邮件发送给运维管理员。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132370.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gFortran的使用

    gFortran的使用Fortran编程中相关文件后缀.a静态库(archive).f,.for,.FOR.ftn*,.f90*,.f95*,.f03*Fortran源代码(不需编译预处理).F,.fpp,.FPP.FTN*,.F90*,.F95*,.F03*Fortran源代码(需要编译预处理).rFortran源代码(需要…

    2025年6月22日
    4
  • 数据库设计中的概念,逻辑,物理结构设计辨析法_什么叫做逻辑

    数据库设计中的概念,逻辑,物理结构设计辨析法_什么叫做逻辑对于初学者来说,数据库设计中的概念、逻辑、物理结构设计三者更像是孪生兄弟,分不清他们各自是谁,主要有什么作用。偶然间查阅文献,看到一篇期刊中表述比较规范,特用相对容易理解的语言辨析三者关系,并借用期刊中的规范示意图仅供学习交流(期刊出处见参考文献,如有侵权,请联系删除)。数据库设计应该是概念结构设计(E-R图),逻辑结构设计(关系模式),物理结构设计(数据表,设计字段)三者共同组成的。概念结构设计依据对于现实世界的关系的调研、了解、分析而后得到的实体对象有哪些,对象有哪些特征,它们之间的关系是1对1

    2022年8月31日
    8
  • 纯HTML CSS制作导航栏 下拉菜单

    纯HTML CSS制作导航栏 下拉菜单纯HTMLCSS制作导航栏下拉菜单

    2022年5月28日
    39
  • ibatis的动态sql

    ibatis的动态sql

    2021年9月6日
    66
  • 2021年G3锅炉水处理最新解析及G3锅炉水处理复审模拟考试「建议收藏」

    题库来源:安全生产模拟考试一点通公众号小程序安全生产模拟考试一点通:G3锅炉水处理最新解析考前必练!安全生产模拟考试一点通每个月更新G3锅炉水处理复审模拟考试题目及答案!多做几遍,其实通过G3锅炉水处理考试试题很简单。1、【多选题】玻璃器皿洗涤的标准是()。(AE)A、.均匀润湿B、.无污点C、.无油污D、.透明E、.无水珠2、【多选题】锅炉结生水垢的主要原因是()。(ABCDE)A、.溶解度降低B、.受热分解C、.相互反应D、.水的蒸发,…

    2022年4月15日
    43
  • jdk14下载与安装教程(win10)超详细

    jdk14下载与安装教程(win10)超详细一、前言现在jdk已经升级到JDK14版本了,这里也记录一下jdk14的下载及安装过程,对于刚学习java的小伙伴可以参考,熟手可忽略,呵呵~二、下载安装步骤一、首先是去jdk官网下载,官网下载还需要注册,如果大家不怕麻烦的话可以去官网下载,下载速度也是龟速,我也是花了好长时间才下载下来,大家可以点击我的网盘目录jdk目录下载,目录也有其它低版本的,如果有需要大家根据需要自行选择。…

    2022年5月26日
    191

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号