DevOps 与 CICD 详解

DevOps 与 CICD 详解DevOpsDevOps是Development(开发)和Operations(运维)的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合,以期打破传统开发和运营之间的壁垒和鸿沟;DevOps是一种重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例,通过自动化软件交付和架构变更的流程…

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

DevOps

DevOps 是 Development(开发)和 Operations(运维)的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合,以期打破传统开发和运营之间的壁垒和鸿沟;

DevOps 是一种重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例,通过自动化软件交付和架构变更的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠;具体来说,就是在软件交付和部署过程中提高沟通与协作的效率,旨在更快、更可靠的的发布更高质量的产品;

也就是说 DevOps 是一组过程和方法的统称,并不指代某一特定的软件工具或软件工具组合;各种工具软件或软件组合可以实现 DevOps 的概念方法,其本质是一整套的方法论,而不是指某种或某些工具集合,与软件开发中设计到的 OOP、AOP、IOC(或DI)等类似,是一种理论或过程或方法的抽象或代称。
DevOps

CI

CI 的英文名称是 Continuous Integration,中文翻译为持续集成;CI 中,开发人员将会频繁地向主干提交代码,这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证;

持续集成 CI 是在源代码变更后自动检测、拉取、构建和进行单元测试的过程,持续集成的目标是快速确保开发人员新提交的变更是好的,并且适合在代码库中进一步使用;CI 的流程执行和理论实践让我们可以确定新代码和原有代码能否正确地集成在一起。
CI

CD

CD 对应多个英文名称,持续交付 Continuous Delivery 和持续部署 Continuous Deployment,以下分别介绍。

持续交付(Continuous Delivery)

完成 CI 中构建及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库;为了实现高效的持续交付流程,务必要确保 CI 已内置于开发管道,持续交付的目标是拥有一个可随时部署到生产环境的代码库。

在持续交付中,每个阶段(从代码更改的合并,到生产就绪型构建版本的交付)都涉及测试自动化和代码发布自动化;在流程结束时,运维团队可以快速、轻松地将应用部署到生产环境中或发布给最终使用的用户。

CD1

持续部署(Continuous Deployment)

对于一个成熟的 CI/CD 管道来说,最后的阶段是持续部署;作为持续交付(自动将生产就绪型构建版本发布到代码存储库)的延伸,持续部署可以自动将应用发布到生产环境;

持续交付意味着所有的变更都可以被部署到生产环境中,持续部署意味着所有的变更都会被自动部署到生产环境中,但是出于业务考虑可以选择不部署;如果要实施持续部署,必须先实施持续交付;

持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署;持续交付表示的是一种能力,而持续部署表示的则一种方式。持续部署是持续交付的最高阶段

CD2

CI、CD、DevOps 关系

DevOps 是 CI、CD 思想的延伸,CI、CD 是 DevOps 的基础核心,如果没有 CI、CD 自动化的工具和流程,我们谈 DevOps 是没有意义的;概念性的内容,每个人的理解都有所不同,都没有问题,咬文嚼字过犹不及,留下一图:

Rel

作者 Github : tojohnonly , 博客 : EnskDeCode

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

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

(0)
上一篇 2022年6月6日 下午8:46
下一篇 2022年6月6日 下午8:46


相关推荐

  • 取两个列表的交集_js两个数组取差集

    取两个列表的交集_js两个数组取差集js没有直接的方式来获取两个列表的交集,需要自己写一个函数,如下:functionjiaoji(arr_1,arr_2){//先对arr_1进行一次深拷贝,防止对原两个列表造成影响 lettemp_list=$.extend([],arr_1) arr_1.forEach(function(value){//如果arr_1的元素不在arr_2中,那么去…

    2026年4月16日
    5
  • pycharm创建python虚拟环境_pycharm 虚拟环境

    pycharm创建python虚拟环境_pycharm 虚拟环境点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤身体是革命的本钱,身体健康最重要!/1前言/  上次小编给大家介绍了P…

    2022年8月26日
    7
  • 2025最新指南:Cursor如何一键分析整个项目代码库

    2025最新指南:Cursor如何一键分析整个项目代码库

    2026年3月16日
    2
  • pycharm输入不了中文_pycharm连接服务器ssh

    pycharm输入不了中文_pycharm连接服务器ssh一、点击【File】—【Setting】—【Editor】—【FileEncoding】页面,设置global和projectencoding为UTF-8,然后点击Apply。二、点击【File】—【Setting】—【Editor】—【FileandCodeTemplates】,点击右边的【pythonscript】,在编辑框中输入:#-*-coding:utf-8-*-,保存设置之后,关闭pycharm.三、下载最新的搜狗输入法安装即可,再打开p

    2022年8月25日
    11
  • 汇编语言中AX寄存器(aoc32gx)

    目录1.上节回顾2.H2CSGDMA寄存器组2.1H2CSGDMA标识寄存器2.2H2CSGDMA描述符基地址寄存器2.3H2CSGDMA邻接描述符数量寄存器2.4H2CSGDMA描述符信用寄存器3.C2HSGDMA寄存器组4.下节内容1.上节回顾上节我们讲述了ConfigBlock寄存器组,我们今天来看H2CSGDMA/C2HSGDMA寄存器组,如下。H2CSGDMA/C2HSGDMA寄存器组主要是用来描述每个通道DMA描述符相关的一些

    2022年4月18日
    49
  • Struts2 入门学习总结一

    Struts2 入门学习总结一一、Struts2简介Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,这个框架充分发挥了Struts1和WebWork这两种技术的优势,抛弃原来Struts1的缺点,使得Web开发更加容易。struts2还有以下…

    2025年6月25日
    3

发表回复

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

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