如何理解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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android studio输出文字_androiditem长按删除

    android studio输出文字_androiditem长按删除用EditText实现textView长按复制效果,edittexttextview首先EditText是集成TextView的我们直接将?EditText设置为不可编辑来实现其中重点为:android:background=”@null”//背景设为null,去掉editText下划线android:textCursorDrawable=”@null”//游标设为null,去掉游…

    2022年9月29日
    3
  • 时序数据库Machbase「建议收藏」

    时序数据库Machbase「建议收藏」Background最近偶然接触到Machbase,发现相关信息很少,于是自己做了一些简单的了解,这里记录下,方便有兴趣的童靴参考哈。1、官方介绍Machbase是韩国的一家公司开发的一款类似InfluxDB、DolphinDB、TDengine等时序数据库产品,不开源,不过单机fog版可以免费试用,具体可以参考官方网站:https://www.machbase.com/product/edge;但是国外的网站访问不便,这里给个下载的链接,想试用的可以下载:下载链接:https://pan.

    2022年10月4日
    4
  • 织梦自定义表单 在线报名 在线预约听语音

    织梦自定义表单 在线报名 在线预约听语音

    2021年9月25日
    53
  • mybatis获取map的key_mybatis怎么处理结果集

    mybatis获取map的key_mybatis怎么处理结果集实体类:数据库:CREATETABLE`job_title_info`(`_jobtitleid`varchar(255)DEFAULTNULL,`_shortname`varchar(255)DEFAULTNULL,`_fullname`varchar(255)DEFAULTNULL,`_departmentid`varchar…

    2022年9月27日
    3
  • 简单介绍一下spring bean的生命周期_spring的生命周期简单回答

    简单介绍一下spring bean的生命周期_spring的生命周期简单回答Spring原来是一个社会,Bean就是身不由己的“社会人”……

    2026年1月27日
    3
  • 如何成为大数据架构师_业务架构师和数据架构师

    如何成为大数据架构师_业务架构师和数据架构师要想成为架构师这几点你必须关注!架构不是一个职业而是一种能力,每一种架构师只不过是在不同的领域里面使用不同的技术,没有什么可对比,就好比如你问一个篮球明星和一个足球明星有什么区别一样!01架构师需要考虑四个问题1.确定系统干什么不干什么,也就是说系统的边界在哪里?2.确定架构内部的模块与模块之间的关系,以及模块与外部之间的关系是什么?3.架构确定以后,有能力去指导…

    2025年5月28日
    8

发表回复

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

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