CI /CD学习

news2024/9/20 16:51:36
CI/CD概述

CI/CD 是持续集成和持续交付/部署的缩写,旨在简化并加快软件开发生命周期。

持续集成(CI)是指自动且频繁地将代码更改集成到共享源代码存储库中的做法。持续交付和/或持续部署(CD)是一个由两部分组成的过程,涉及代码更改的集成、测试和交付。持续交付不会自动部署到生产环境,持续部署则会自动将更新发布到生产环境。

CI/CD重要性

CI/CD 可帮助企业组织避免错误和代码故障,同时保持软件开发和更新周期的持续。

随着应用规模的扩大,CI/CD 的功能有助于降低复杂性、提高效率并简化工作流。

CI/CD 可自动执行以前将新代码从提交到生产所需的人工干预,因此可最大限度地减少停机时间,并加快代码的发布速度。而且,由于能够更快地将更新和更改集成到代码中,因此,可以更加频繁、高效地采纳用户的反馈意见,从而为用户带来积极的效果,客户的整体满意度也会有所提高。

什么是持续集成?


CI/CD 中的“CI”始终指持续集成,这是一种面向开发人员的自动化流程,有助于更频繁地将代码更改合并回共享分支或“主干”。进行这些更新时,会触发测试步骤的自动执行,以确保合并代码更改的可靠性。

现代应用开发的目标是让多位开发人员同时处理同一应用的不同功能。但是,如果企业组织安排在一天内将所有分支源代码合并在一起(称为“合并日”),最终可能造成工作繁琐、耗时,而且需要手动完成。

这是因为当某个开发人员单独对应用进行更改时,可能会与其他开发人员同时进行的其他更改发生冲突。如果每个开发人员都自定义自己的本地集成开发环境(IDE),而不是让团队就一个基于云的 IDE 达成一致,那么就会让问题更加雪上加霜。

CI 可被视为一种解决方案,用于解决同时开发的应用因分支过多而可能相互冲突的问题。

成功的 CI 意味着,一旦某个开发人员对应用的更改被合并,这些更改就会通过自动构建应用并运行不同级别的自动化测试(通常是单元测试和集成测试)来进行验证,以确保相应更改不会破坏应用。这意味着要测试从类和函数到构成整个应用的不同模块的所有内容。如果自动化测试发现新代码与现有代码之间存在冲突,CI 支持更轻松地快速且频繁地修复这些错误。

什么是持续交付?


持续交付是指自动执行 CI 中的构建、单元测试和集成测试后,自动将经过验证的代码发布到存储库。因此,要实现有效的持续交付流程,将 CI 内置到开发管道中显得非常重要。

在持续交付中,从合并代码更改到交付生产就绪型版本,每个阶段均涉及测试的自动化及代码发布的自动化。整个流程结束后,运维团队便可以迅速将应用部署到生产环境。

持续交付通常意味着对开发人员对应用所做的更改自动进行错误测试并将其上传到存储库(如 GitHub 或容器镜像仓库),然后由运维团队将其部署到实时的生产环境。它可以解决开发团队和业务团队之间的可见性和沟通不佳的问题。为此,持续交付的目的就是拥有一个可随时部署到生产环境的代码库,并确保以最少的工作量部署新代码。

CI/CD工具

  • Jenkins

    • Jenkins是一个开源的自动化服务器,广泛用于自动化各种任务,包括构建、测试和部署软件。它拥有大量的插件生态系统,可以扩展其功能。

    • 官方网站: Jenkins

  • GitLab CI/CD

    • GitLab CI/CD是GitLab的一部分,它提供了一个内置的工具链,用于自动化软件的构建、测试和部署。它与GitLab代码仓库紧密集成。

    • 官方网站: The most-comprehensive AI-powered DevSecOps platform | GitLab

  • GitHub Actions

    • GitHub Actions是GitHub提供的CI/CD服务,它允许开发者在代码仓库中直接定义工作流程,自动化软件的构建和部署过程。

    • 官方网站: https://github.com/features/actions

  • CircleCI

    • CircleCI是一个云托管的CI/CD平台,它支持多种语言和框架,并提供快速的构建和测试服务。

    • 官方网站: Continuous Integration and Delivery - CircleCI

  • Travis CI

    • Travis CI是一个云托管的CI服务,它支持开源项目和私有项目,可以与GitHub和Bitbucket集成。

    • 官方网站: Home – Travis-CI

  • Bamboo

    • Bamboo是Atlassian提供的一个CI/CD工具,它与Jira和Bitbucket紧密集成,适合使用Atlassian产品套件的团队。

    • 官方网站: Bamboo: Continuous Integration & Deployment | Atlassian

  • TeamCity

    • TeamCity是JetBrains提供的一个强大的CI/CD系统,它支持多种语言和工具,并提供了丰富的配置选项。

    • 官方网站: TeamCity: the Hassle-Free CI/CD Tool by JetBrains

  • Azure DevOps

    • Azure DevOps(以前称为Visual Studio Team Services)提供了一套完整的DevOps工具,包括CI/CD、代码仓库、项目管理等。

    • 官方网站: https://azure.microsoft.com/en-us/services/devops/

选择适合的CI/CD工具时,需要考虑团队的具体需求、开发和部署环境、使用的编程语言等因素。不同的工具可能在易用性、集成能力、社区支持等方面有所差异。




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1840381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

山东大学软件学院创新项目实训开发日志——收尾篇

山东大学软件学院创新项目实训开发日志——收尾篇 项目名称:ModuFusion Visionary:实现跨模态文本与视觉的相关推荐 -------项目目标: 本项目旨在开发一款跨模态交互式应用,用户可以上传图片或视频,并使用文本、点、…

flutter 打包 exe

采用官方的MSIX打包 原文链接 https://blog.csdn.net/weixin_44786530/article/details/135308360 第一步:安装依赖 在项目根目录,执行命令: flutter pub add --dev msix 等待安装完成,就好了 第二步:打包编译 当m…

嵌入式技术学习——Linux环境编程(高级编程)——shell编程

一、shell编程的基础介绍 1.为什么要进行shell编程? 在Linux系统中,虽然有各种各样的图形化接口工具,但是shell仍然是一个非常灵活的 工具。 Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。 您可以通过使用shell使大量的任务自动化…

群辉NAS与电脑间的文件自动同步

目录 一、套件简介 二、套件的安装 三、电脑端程序 (1)启用团队文件夹 (2)设置同步任务 (3)测试同步 四、手机同步 (1)安装app (2)测试 (3)同步任务 (3)其它同步任务 最早使用的网盘叫“快盘”,不知道朋友们有用过的没有。当时最常用的功能就是电脑与…

相交链表(Leetcode)

题目分析: . - 力扣(LeetCode) 相交链表:首先我想到的第一个思路是:如图可知,A和B链表存在长度差,从左边一起遍历链表不好找交点,那我们就从后面开始找,但是这是单链表&…

期望23K,go高级社招面试复盘

面经哥只做互联网社招面试经历分享,关注我,每日推送精选面经,面试前,先找面经哥 我最终还是上岸了,花了一周总结了3万字的go社招高级面试知识体系思维导图,分享出来希望能帮助有缘人吧,以下只是…

AI金融投资:批量下载巨潮资讯基金招募说明书

打开巨潮资讯的基金招募说明书页面: http://www.cninfo.com.cn/new/fulltextSearch/full?searchkey%E5%B0%81%E9%97%AD%E5%BC%8F%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E8%AF%81%E5%88%B8%E6%8A%95%E8%B5%84%E5%9F%BA%E9%87%91%E6%8B%9B%E5%8B%9F%E8%AF%B4%E6%98%…

如何配置node.js环境

文章目录 step1. 下载node.js安装包step2. 创建node_global, node_cache文件夹step3.配置node环境变量step3. cmd窗口检查安装的node和npm版本号step4. 设置缓存路径\全局安装路径\下载镜像step5. 测试配置的nodejs环境 step1. 下载node.js安装包 下载地址:node.js…

Windows下MySQL数据库定期备份SQL文件与删除历史备份文件.bat脚本

目录 一、功能需求 二、解决方案 (1)新建文件夹及批处理文件 (2)编写备份脚本 ①完整脚本 ②参数修改 (3)编写定期删除备份脚本 ①根据文件名识别日期进行删除 ② 根据文件的修改日期删除 (4)设置定时器 (5)常见报错与处理 一、功能需求 在Windows系统下…

【吊打面试官系列-Mysql面试题】SQL 语言包括哪几部分?每部分都有哪些操作关键字?

大家好,我是锋哥。今天分享关于 【SQL 语言包括哪几部分?每部分都有哪些操作关键字?】面试题,希望对大家有帮助; SQL 语言包括哪几部分?每部分都有哪些操作关键字? SQL 语言包括数据定义(DDL)、…

Linux PXE高效批量装机

部署PXE远程安装服务 在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的USB光驱、移动硬盘等安装方法显然已经难以满足需…

「Python-docx 专栏」docx设置罗马数字页码,即页码编码格式为罗马数字

本文目录 前言一、docx 设置罗马数字页码1、docx设置大写罗马数字的页码①、docx背后的xml长啥样②、<w:sectPr> 标签详解③、通过<w:sectPr> 设置大写罗马数字的页码A、完整代码B、处理效果图C、这段代码实际上的作用2、docx设置小写罗马数字的页码①、完整代码②…

ABAP-03基础数据类型

基本数据类型 数据类型默认大小&#xff08;byte&#xff09;有效大小初始值说明示例C11-65535SPACE文本字符&#xff08;串&#xff09;‘Name’N11-65535‘00…0’数字文本‘0123’T66‘000000’时间(HHMMSS)‘123010’D88‘00000000’日期(yyyymmdd)‘20090901’I4-231~232…

ELISA Flex: Monkey IFN-γ (HRP)

ELISA Flex: Monkey IFN-γ (HRP)该ELISA试剂盒能够检测溶液样本比如细胞培养上清或者血清/血浆中猴子γ干扰素&#xff08;IFN-γ&#xff09;的含量。 产品组分&#xff1a; 捕获抗体&#xff1a;克隆号MT126L&#xff08;0.5mg/ml&#xff09; 检测抗体&#xff1a;克隆号7…

mamba模型原理解读

本文主要讲解我对于2023年提出的mamba模型的理解和解读&#xff0c;mamba模型的提出为transformer模型存在的计算效率低下&#xff0c;需要大量时间运行程序提出了解决方案。提高了模型的运行效率和计算效率。我主要是根据下面这篇文章入手&#xff1a; 1.mamba模型是通过堆叠多…

数据分析必备:一步步教你如何用matplotlib做数据可视化(6)

1、Matplotlib 网格 axes对象的grid()函数将图中网格的可见性设置为on或off。还可以显示网格的主要/次要(或两者)刻度。另外&#xff0c;可以在grid()函数中设置color&#xff0c;linestyle和linewidth属性。 参考以下示例代码 import matplotlib.pyplot as plt import numpy…

网安人必备!开源网络安全工具TOP 10(附下载地址)

工欲善其事&#xff0c;必先利其器。对于广大的网络安全从业者&#xff0c;以及未来想要从事网络安全的人来说&#xff0c;选择并善用合适的网络安全工具&#xff0c;能有效提升工作效率。 开源网络安全工具之所以能够在众多安全解决方案中脱颖而出&#xff0c;不仅是因为它们…

若依RuoYi-Vue分离版—富文本Quill的图片支持伸缩大小及布局

若依RuoYi-Vue分离版—富文本Quill的图片支持伸缩大小及布局、工具栏带中文提示 1.在vue.config.js 文件中添加 一下内容2.下载安装插件3.在Editor组件中引入插件4.使用Editor组件&#xff08;特别注意要的加 v-if &#xff09;5.bug 之 imageResize的 img的style丢失1.先创建一…

minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析

minSDK和targetSDK&#xff0c;这两者相当于一个区间。你能够用到targetSDK中最新的API和最酷的新功能&#xff0c;但又需要向后(向下)兼容到minSDK&#xff0c;保证这个区间内的设备都能够正常的执行你的APP。换句话说&#xff0c;想使用Android刚刚推出的新特性&#xff0c;但…

桥梁施工监测:科技守护,让施工更稳更安全!

桥梁作为重要的交通设施&#xff0c;其安全性和稳定性不容忽视。在施工过程中&#xff0c;进行严格的监测成为确保桥梁质量的关键。本文将深入探讨桥梁施工监测的核心内容、流程以及技术优势&#xff0c;并通过实际案例展示其应用效果。 一、监测内容概览 环境因素监测&#xf…