首页 > 其他分享 >2.CICD概述

2.CICD概述

时间:2022-10-27 15:45:34浏览次数:53  
标签:集成 CI 开发人员 部署 CICD 代码 概述 测试

什么是CI(Continuous integration持续集成)

在传统的软件开发中,集成过程通常在每个人完成工作后的项目结束时进行。整合通常需要数周或数月的时间,可能会非常痛苦。持续集成是一种将集成阶段置于开发周期中较早的做法,因此,构建,测试和集成代码的时间安排更为规则。

开发人员通常使用称为CI Server的工具来进行构建和集成。CI要求自检代码。这是用于自我测试以确保其按预期工作的代码,这些测试通常称为单元测试。集成代码后,当所有单元测试通过时,将得一个最新的的代码版本。这表明他们已经验证了自己的更改已成功集成到一起,并且代码按测试期望的那样工作。

什么是CD(Continuous delivery持续交付)

持续交付意味着每次更改代码,集成并构建代码时,他们还将在与生产非常相似的环境中自动测试该代码。我们将此部署到不同环境并在不同环境上进行测试的过程称为部署管道。部署管道通常具有开发环境,测试环境和过渡环境,但是这些阶段因团队,产品和组织而异。

在每个不同的环境中,开发人员编写的代码都经过不同的测试。当代码在生产环境中部署时,它们将在生产环境中工作。至关重要的是,代码只提升到(上测试)在部署管道的下一个环境,如果出现故障,整个团队可以更轻松地了解问题可能出在哪里,并在代码进入生产环境之前予以解决。这个过程对我们这个行业的人来说非常强大。这意味着,如果代码的测试在所有环境中都通过了,团队负责人就会知道开发人员的代码在投入生产时可能会按预期工作。一旦测试在所有环境中通过,团队负责人就可以立即决定最终用户是否通过测试。我们现在要在生产中使用这种绿色产品吗?是! 因此,一旦开发人员完成构建,便可以立即为客户提供经过全面测试的全新工作软件。

什么是CD(Continuous deployment持续部署)

在这种实践中,团队负责人所做的每一项更改都通过了所有测试阶段,并自动投入生产。要实现连续部署,团队负责人首先需要进行连续交付,因此在开始练习连续部署之前,先决定哪个对您更合适,持续交付都是为了增强整个业务的能力,因此至少您应该参与确定是否应该使用持续部署。

持续集成,持续部署和持续交付之间有什么区别?

1)持续集成(Continuous integration)

这种做法是将团队中不同开发人员的变更尽早集成到主线中,最好每天进行几次。这样可以确保各个开发人员处理的代码不会转移太多。当您将流程与自动化测试结合在一起时,持续集成可以使您的代码变得可靠。

2)持续交付(Continuous delivery)

保持代码库随时可部署的做法。除了确保您的应用程序通过自动化测试外,它还必须具有将其投入生产所需的所有配置。然后,许多团队会进行推送更改,以立即将自动化测试传递到测试或生产环境中,以确保快速的开发周期。

3)持续部署(continuous deployment)

与持续集成密切相关,是指保持您的应用程序可随时部署,甚至在最新版本通过所有自动化测试的情况下,甚至自动发布到测试或生产环境。

CI/CD应用场景

1)开发人员将本地代码上传gitlab版本服务器
2)jenkins通过webhook插件自动到gitlab服务器拉取最新代码
3)通过docker-maven-plugin插件自动编译代码
4)将自定义镜像上传docker私服仓库
5)k8s集群自动拉取最新版本镜像
6)自动化部署整个项目
7)用户通过nginx负载均衡访问整个项目

为什么需要CI/CD

持续集成(CI)是一种开发实践,其中开发人员经常(最好每天几次)将代码集成到共享存储库中。然后可以通过自动构建和自动测试来验证每个集成。尽管自动化测试不是严格意义上的CI的一部分,但通常隐含了它。
定期集成的主要好处之一是,您可以快速检测到错误并更轻松地定位它们。由于引入的每个更改通常很小,因此可以快速查明引入缺陷的特定更改。
近年来,CI已成为软件开发的最佳实践,并遵循一系列关键原则。其中包括版本控制,构建自动化和自动化测试。
此外,持续部署和持续交付已成为最佳实践,可让您随时随地部署应用程序,甚至在每次引入新更改时甚至将主代码库自动推入生产环境。这使您的团队可以快速行动,同时保持可以自动检查的高质量标准。

标签:集成,CI,开发人员,部署,CICD,代码,概述,测试
From: https://www.cnblogs.com/yangtao416/p/16832483.html

相关文章

  • hadoop入门-概述
     第1章Hadoop概述1.1Hadoop是什么1.2Hadoop发展历史(了解) 1.3Hadoop三大发行版本(了解)Hadoop三大发行版本:Apache、Cloudera、Hortonworks。Apache版本最原始......
  • XSD 指示器概述
    通过指示器,我们可以控制在文档中使用元素的方式。指示器有七种指示器:Order指示器:AllChoiceSequenceOccurrence指示器:maxOccursminOccursGroup指示器:GroupnameattributeG......
  • 1、Java程序概述
    1、什么是Java?Java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码,以及一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。2、Ja......
  • BOM概述和BOM的Window弹出方法
    BOM概述BOM:1.概念:BrowserObjectModel浏览器对象模型将浏览器的各个组成部分封装成对象。2.组成:Window:窗口对象Navigator:浏览......
  • 软件测试基本概述
    软件质量概述1)软件质量:软件产品基本满足需求及隐式需求的程度。2)软件产品满足基本需求指其能满足软件开发时所规定需求的特性,其次是软件产品满足隐式需求的程度。3)......
  • 15. Spring概述
    一、为什么要使用Spring1.1、OCP开闭原则  OCP是软件七大开发原则当中最基本的一个原则:开闭原则,即对扩展开放、对修改关闭;OCP原则是最核心的,最基本的,其它六个原则都......
  • HTML表格标签2和HTML表单标签概述
    HTML表格标签2:HTML表格标签有:colspan的意思是:合并列rowspan:合并行<caption>:表格标题<thead>:表示表格的头部分<tbody>:表示表格的体部分<tfoot>:表示表格的脚部分......
  • RabbitMQ的安装和简单概述
    一、安装RabbitMQ1、概述:RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,一般地,需要先安装部署Erlang环境再安装RabbitMQ环境。但在docker中,Erlang环境已经......
  • DOM-概述、DOM_Document对象_创建DOM对象、DOM_Node对象
    DOM-概述概念:DocumentObjectModel文档对象模型将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作W3CDOM标准被分......
  • 628案例演示开关灯 629 BOM概述
    开关灯案例演示也可以说成是图片之间的切换<body><!--指定图片路径和id名称--><imgsrc="img/off.gif"id="deng"><script>/*......