如何理解cicd

如何理解cicd项目开发可以分为这几个过程编码->构建->集成->测试->交付->部署首先引用一个例子譬如说,你开了一家公司,雇了很多码农在一起写代码。你说,要用Gitlab做代码管理。当一个码农在自己的开发机上写好代码之后,要合并到主分支里,他首先要发起一个MergeRequest(MR),这会在一个特定服务器上触发一次对他提交的代码的检查,包括代码格式检查、依赖关系检查以及单元测试等一系列检查,等通过了全部检查,他就可以将代码合并到主分支,否则他需

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

说明

CICD简单理解也就是持续集成、持续交付、持续部署
在项目开发工作中,可以分为这几个阶段

编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署

其中持续集成、持续交付和持续部署有着不同的软件自动化交付周期,接下来我们通过例子来理解。

首先引用一个例子

譬如说,你开了一家公司,雇了很多码农在一起写代码。

  • 你说,要用 Gitlab 做代码管理。当一个码农在自己的开发机上写好代码之后,要合并到主分支里,他首先要发起一个 Merge Request(MR),这会在一个特定服务器上触发一次对他提交的代码的检查,包括代码格式检查、依赖关系检查以及单元测试等一系列检查,等通过了全部检查,他就可以将代码合并到主分支,否则他需要按照错误提示进行修改,然后发起新一轮的检查。然后呢,每天晚上 10 点会有一个定时任务从主分支上拿最新的代码,进行编译打包,最后将打包好的程序推送到一个服务器上保存,这个服务器叫做 Artifact Repository,也就是Jenkins。
  • 你又说,要每天将当天打包好的程序部署到测试环境上。也就是说,一个码农晚上 10 点之前提交了代码,那他第二天就可以在测试环境上看到自己新提交的代码的效果了。
  • 你 还说,每一个月要在生产环境上部署一个稳定的发布版本。

这三个事例可以分别对应持续集成、持续交付以及持续部署。

1、持续集成(Continuous Integration)

持续集成的概念是:

持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。

简单理解:
ci 持续集成服务器功能是不断地集成所有正在进行的更改并由不同的开发人员提交到存储库,并检查编译错误。它需要每天多次构建代码,最好是在每次提交之后,以便它可以检测在问题发生时是哪个提交Bug了。

2、持续交付(Continuous Delivery)

持续交付就是定时地、自动地从 Artifact Repository 将最新的程序部署到测试环境里。
在这里插入图片描述

3、持续部署(Continuous Deployment)

持续部署就是定时地、自动地将过去一个稳定的发布版本部署到生产环境里。
在这里插入图片描述
很明显,集成、交付和部署是软件开发到发布流程中的不同阶段。那所谓的持续是相对于过去的流程提出的。过去的流程是所有人写好代码之后再进行合并,然后再进行测试,最后再发布。这种流程会把风险堆到软件发布前的最后阶段。那持续的概念就是,做一点就马上递交给下一个流程,这样能够尽早地发现并解决问题。

4.补充说明

所谓的持续,就是说每完成一个完整的部分,就向下个环节交付,
发现问题可以马上调整。使得问题不会放大到其他部分和后面的环节。
随着DevOps不断受到重视,频繁部署、快速交付以及开发测试流程自动化都将成为未来软件开发的重要组成部分。

文章引用

如何理解持续集成,持续交付,持续部署

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

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

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


相关推荐

  • jQuery 3.0正式发布

    jQuery基金会刚刚发布了该JavaScript框架的3.0版本,并且首次抛弃了对老旧的IE浏览器的支持。jQuery3.0的工作始于2014年10月,其最初目标是在2.

    2021年12月26日
  • deepin uos 是否开源_deepin docker

    deepin uos 是否开源_deepin docker国产操作系统UOSDeepinLinux源码编译安装Nginx

    2022年10月5日
  • 数据结构 图的邻接表

    数据结构 图的邻接表呃,下面该写邻接表了…….邻接表的出现是因为图若是稀疏图,用邻接矩阵会造成空间的浪费,毕竟你要开辟一个一维数组和一个二维数组嘛,而且还是大开小用的那种。邻接表为了避免内存的浪费引入了链式存储,它的处理办法是:1.用一个一维数组存储顶点,当然你也可以用单链表存储,2.用单链表存储顶点的邻接点,可以将顶点改为结构体数组,结构体中存放邻接点的指针,邻接点也创建一个结构体,定义指针…

    2022年6月28日
  • c语言pdb文件,VISUAL c+中的pdb文件及其作用「建议收藏」

    c语言pdb文件,VISUAL c+中的pdb文件及其作用「建议收藏」VISUALc+中的pdb文件及其作用程序数据库(PDB)文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。当以/ZI或/Zi(用于C/C++)生成时,将创建一个PDB文件。在VisualC++中,/Fd选项用于命名由编译器创建的PDB文件。当使用向导在VisualStudio中创建项目时,/Fd选项被设置为创建一个名为projec…

    2022年6月2日
  • Python安装教程-史上最全

    Python安装教程-史上最全Python安装教程-史上最全

    2022年7月22日
  • VScode快捷键设置和代码简写

    VScode快捷键设置和代码简写1常用快捷键 单行注释 ctrl+/ 多行注释 alt+shift+a 复制上一行代码到下一行 alt+shift+↓ 移动代码到上一行或下一行 alt+↑,alt+↓ 返回到上次编辑位置 alt…

    2022年6月11日

发表回复

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

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