首页 > 其他分享 >1.1 DevOps、CI、CD都是什么?

1.1 DevOps、CI、CD都是什么?

时间:2024-07-09 13:08:31浏览次数:21  
标签:CI 1.1 部署 代码 持续 DevOps CD 交付

 

DevOps

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

开发和运营之间的壁垒和鸿沟

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

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

CI

CI的英文名称是Continuous Integration,中文翻译为:持续集成。

Continuous Integration

CI中,开发人员将会频繁地向主干提交代码,这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证。

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

CD

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

查了一些资料,关于持续交互和持续部署的概念比较混乱,以下的概念总结按大部分的资料总结而来。

# 持续交付

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

持续交付

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

持续部署

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

持续部署

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

持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。

持续交付表示的是一种能力,而持续部署表示的则一种方式。持续部署是持续交付的最高阶段

Agile Development

另外一个概念,也就是所谓的敏捷开发,似乎还没有所谓的简称,而且这个称呼似乎在国内被滥用了。敏捷开发着重于一种开发的思路,拥抱变化和快速迭代。如何实现敏捷开发,目前似乎尚没有完善的工具链,更多的是一种概念性,调侃的说法“既想马尔跑得快,又想马儿不吃草”的另外一种说法。

Agile Development

上图揭示了敏捷开发的一些内涵和目标,似乎有点儿一本真经的胡说八道的意思。

CI、CD、DevOps关系

概念性的内容,每个人的理解都有所不同。就好比CGI 这个词,即可以理解成CGI这种协议,也可以理解成实现了CGI协议的软件工具,都没有问题,咬文嚼字过犹不及。留下一图:

DevOps、CI、CD的区别

 

标签:CI,1.1,部署,代码,持续,DevOps,CD,交付
From: https://www.cnblogs.com/david-cloud/p/18291583

相关文章

  • (八)ADO.NET用窗体应用程序写增删查改——改(1.1升级版)
    在1.0版本中,紧接前面两节“增”、“删”、“查”代码,这里新增“改”功能一、首先编辑好要修改的控件和相关属性,这里“编号”默认只读属性(ReadOnly)二、其次,修改下窗体显示的代码,让数据直接显示出来,这里我们用一个方法封装好,直接在窗体加载事件(Load)中调用即可。privatevoidFo......
  • 运营商如何与第三方服务商合作,共同建设PCDN网络?
    运营商与第三方服务商合作,共同建设PCDN(P2PCDN)网络,是一个涉及技术、资源、运营等多方面的复杂过程。以下是一些建议的操作步骤:一.明确合作目标与业务模式:1.运营商与第三方服务商首先需要明确合作的目标,例如提升网络覆盖、降低运营成本、提高内容分发效率等。2.根据目标确定合......
  • CSCI-GA.2250-001 Scheduler
    ProgrammingAssignment#2(Lab2):Scheduler/DispatcherClassCSCI-GA.2250-001Summ2024In  this  lab  we  explore  the  implementation  and  effects  of different  scheduling policies  discussed  in  class  on  a  set......
  • 题解:洛谷 P1890 gcd区间
    题解:洛谷P1890gcd区间标签:线段树,st表,分块,dp题意给定数列\(a\),有\(m\)次询问求区间\([l,r]\)的最大公约数。思路这道题有多种写法,如标签所示。线段树线段树可以维护具有结合性的操作,很明显\(\gcd\)满足。这道题线段树跑的慢是因为无修改操作,自然没有其他\(O(1)......
  • P7382 [COCI2018-2019#6] Simfonija (中位数)
    P7382[COCI2018-2019#6]Simfonija中位数不妨设\(C_i=A_i-B_i\),那么操作后的代数式可以写成:\[\sum\limits_{i=1}^n|C_i+x|\]如果\(k=0\),那么\(x\)的取值就是一个经典问题了,即\(C\)序列的中位数(偶数取中间任意)。如果\(k\ne0\),要使答案最小,就是将\(k\)个数的代价变......
  • SciTech-POLIR-Statistics-重要的统计数据来源 与 数据建模
    重要数据来源:官员与人口分布建模:9000万“党员”方可称为“人民”,因为党员才有“参政议政”资格;其他13亿多“群众”大多数是“经营、生产与劳动”,无法(或只有极少数)“参政议政”被“代表”.对于“政事”,只在“人民”(党员)的组织内决策、分级授权与分发及公布?因为全......
  • Overview and Stream Cipher
    CryptographyCourseNotesCourseOverviewThegoalofthiscourseistoteachyouhowcryptoprimitivesworkhowtousethemcorrectlyandreasonaboutthesecurityofyourconstructions.Inthiscourse,youwilllearnsomeabstractsofsomecryptography......
  • node.js 写一个静态目录做cdn
    /**@Author:HuangBingQuan<[email protected]>*@Date:2024-07-0721:16:08*@LastEditTime:2024-07-0812:56:45*@FilePath:/myCdn/index.js*/consthttp=require('http');constfs=require('fs');constURL=require(......
  • 基于Go 1.19的站点模板爬虫
    创建一个基于Go1.19的站点模板爬虫涉及到几个关键步骤:初始化项目,安装必要的包,编写爬虫逻辑,以及处理和存储抓取的数据。下面是一个简单的示例,使用goquery库来解析HTML,并使用net/http来发起HTTP请求。请注意,实际部署爬虫时,需要遵守目标网站的robots.txt规则和版权政策。首先......
  • Franka libfranka与FCI的关系
    libfranka确实是直接与FrankaEmika机器人进行交互的,那为什么使用FCI指挥时还需要连接到车间网络而不是机器人网络呢?这主要是因为FCI(FrankaControlInterface)和libfranka有着不同的功能和使用场景:libfranka:libfranka是一个C++库,提供了直接访问FrankaEmika机器人硬......