Jenkins-持续集成、交付、构建、部署、测试

news2025/3/2 3:42:14

Jenkins-持续集成、交付、构建、部署、测试

  • 一: Jenkins 介绍
    • 1> Jenkins 概念
    • 2> Jenkins 目的
    • 3> Jenkins 特性
    • 4> Jenkins 作用
  • 二:Jenkins 版本
  • 三:DevOps流程简述
    • 1> 持续集成(Continuous Integration,CI)
      • 1. 含义
      • 2. 步骤
      • 3. 优势
    • 2> 持续交付(Continuous Delivery,CD)
      • 1. 含义
      • 2. 新增功能
    • 3> 持续构建(Continuous Build,CB)
      • 1. 含义
      • 2. 核心优势
    • 4> 持续测试(Continuous Testing,CT)
      • 1. 含义
      • 2. 维度
    • 5> 持续部署(Continuous Deployment,CD)
      • 1. 含义
      • 2. 特点
    • 6> CI&CD 区别
  • 四:Jenkins 作用
  • 五:Jenkins 原理
    • 1> 安装 Jenkins
    • 2> 配置 Jenkins
    • 3> 创建作业(Job)
    • 4> 构建触发器
    • 5> 执行构建
    • 6> 构建结果
  • 六:Jenkins-部署
    • 1> Jenkins-部署-windows

一: Jenkins 介绍

1> Jenkins 概念

Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成;

2> Jenkins 目的

  1. 持续、自动地构建/测试软件项目。
  2. 监控软件开放流程,快速问题定位及处理,提示开放效率

3> Jenkins 特性

序列特点
1开源的java语言开发持续集成工具,支持CI,CD
2易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理
3消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
4分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
5文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
6丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等

4> Jenkins 作用

开发:编写代码并进行源码管理,编写打包提供给测试人员
测试:部署测试环境进行功能测试,持续继承自动化测试;
运维:部署线上环境

二:Jenkins 版本

低版本:https://get.jenkins.io/war-stable/

三:DevOps流程简述

产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线 -> 持续集成 -> 持续交付 -> 持续部署;

DevOps:
是一种软件开发和运维的文化和方法论,其基本思想是通过促进开发团队和运维团队之间的协作和沟通,实现软件开发、测试、部署和运维的自动化和持续化。它强调了团队之间的合作和文化变革,以及使用工具和技术来实现持续交付和持续集成

DevOps优点:
促进团队合作和自动化流程,加速了软件交付速度,提高了软件质量和稳定性,并降低了软件发布的风险。同时,它还增强了团队之间的协作和凝聚力,有助于提高团队的工作效率和生产力
DevOps:
(Development 开发& Operations 运维)

1> 持续集成(Continuous Integration,CI)

核心目标: 确保新增的代码能够与原有代码正确地集成
持续集成是一种软件开发实践,通过频繁地将代码集成到共享存储库中,并自动进行构建和测试,以确保团队能够快速发现和解决集成问题。

1. 含义

持续集成意味着将开发人员的代码更频繁地集成到共享代码仓库中,以确保团队的代码始终处于一个可集成的状态,进而促进更快速地软件交付和更高质量的软件产品

2. 步骤

序列步骤
1开发人员提交代码到源代码仓库(Source Repository)。
2CI服务器(持续集成服务器)通过触发机制(如git hook)执行编译、测试以及输出结果等相关功能。
3CI服务器向开发人员反馈执行结果的报告。

3. 优势

序列特点
1易于定位错误:频繁的代码集成将复杂的代码逻辑切割成小块,有助于更容易地定位和解决问题。
2易于控制开发流程:细致的工作提交使得工作进度更容易判断,有助于管理者规划开发流程。
3易于CodeReview:代码切分为小块有助于进行代码审查。
4易于减少不必要的工作:自动化的构建和测试过程可以节约大量时间,使开发人员能够将更多时间投入到有价值的工作中

2> 持续交付(Continuous Delivery,CD)

持续交付是一种软件交付实践,通过自动化和持续的流程,使团队能够随时交付高质量的软件到生产环境,但仍需要人工审查和确认。

1. 含义

持续交付是在持续集成的基础上进行了扩展,主要是在持续集成环节完成了软件构建和测试工作后,形成了新的版本,接下来将进行交付。与持续集成不同的是,持续交付的交付对象不是代码,而是可交付的产物,通常是部署到类生产环境(如灰度环境或预发环境)进行测试
简述:含义是通过一种能够使得软件在较短的循环中可靠地发布的软件工程方法。与持续集成相比,持续交付的侧重点在于实现软件的可交付性,而不仅仅是代码的集成和测试。持续交付通常涉及一些额外的流程,例如部署到类生产环境进行测试、进行灰度测试等,以确保软件能够可靠地发布到生产环境中

2. 新增功能

相比持续集成添加了Test -> Staging -> Production的流程,以确保新增的代码在生产环境中是可用的;

流程步骤
1Test环节不仅包含基本的单元测试,还需要进行更为复杂的功能测试和集成测试等,以确保代码的功能和集成性能。
2Staging阶段指的是类生产环境,模拟真实的网络拓扑、数据库数据和硬件设备等资源,测试代码在生产环境中的表现。
3每个阶段的执行结果都会向开发人员提供反馈,每个错误都可能导致版本的回滚。一旦测试完成并确认无误,相关人员将手动将其部署到生产环境中;

通过这样的流程,可以确保新增的代码在经过全面的测试和验证后才会部署到生产环境中,从而降低了潜在的生产环境风险,提高了软件的稳定性和可靠性

3> 持续构建(Continuous Build,CB)

1. 含义

持续构建是持续集成的一部分,指的是持续地自动构建软件,并生成可执行的程序或部署包,以便进行进一步的测试和部署。
主要目的:是自动化地构建软件项目,并生成可执行的软件包或部署文件
基本思想:将代码提交到源代码仓库后,立即触发构建过程。这包括编译源代码、执行单元测试、生成部署文件等。持续构建的频繁执行有助于尽早地发现代码中的错误和问题,并及时反馈给开发团队

2. 核心优势

优势含义
自动化持续构建过程完全自动化,无需人工干预,提高了构建的效率和可靠性。
及时反馈持续构建能够在代码提交后立即触发,及时反馈构建结果和错误信息,有助于开发人员及时修复问题。
提高软件质量通过频繁地构建和测试,持续构建有助于提高软件的质量和稳定性,减少潜在的问题和缺陷。
加快交付速度持续构建能够快速生成可部署的软件包或部署文件,加快了软件交付的速度,有利于快速响应用户需求

通过自动化地构建和测试软件,有助于提高软件开发的效率、质量和交付速度

4> 持续测试(Continuous Testing,CT)

持续测试是一种软件测试实践,通过自动化测试和持续集成的方式,持续地对软件进行测试,以确保软件质量和稳定性。

1. 含义

持续测试(Continuous Testing,CT)是DevOps流程中的一个关键环节,它旨在通过持续地进行自动化测试来确保软件质量和稳定性。

持续测试与传统的软件测试方式不同,它不仅限于在开发完成后执行一次测试,而是在整个软件开发周期中持续进行测试

2. 维度

优势含义
自动化测试持续测试依赖于自动化测试工具和脚本,通过编写自动化测试用例和脚本来模拟用户操作、执行功能和性能测试等,以确保软件的功能和性能符合预期。
并行测试持续测试需要在短时间内完成大量测试,因此通常会采用并行测试的方式,同时运行多个测试用例,提高测试效率。
持续反馈持续测试会及时将测试结果反馈给开发团队,包括测试通过的用例、失败的用例以及错误信息等,以便开发人员及时修复问题。
自动化部署测试环境持续测试还可以借助自动化部署工具,在需要时自动部署测试环境,并在其中执行测试,从而确保测试环境的一致性和可重复性。

5> 持续部署(Continuous Deployment,CD)

持续部署是一种软件部署实践,通过自动化流程将经过测试的软件自动部署到生产环境,以实现快速且可靠的软件发布

1. 含义

持续部署(Continuous Deployment,CD)是DevOps流程中的一环,它建立在持续交付的基础之上,旨在将软件的部署过程自动化,以便将新的软件功能频繁地交付到生产环境中

2. 特点

优势含义
自动化部署持续部署通过自动化工具和流程,将新的软件功能自动部署到生产环境中,消除了手动部署过程中的人为错误和延迟。
频繁交付持续部署强调频繁地交付新的软件功能到生产环境中,从而加速了软件开发和交付的速度,提高了团队的反应能力和灵活性。
实时监控持续部署过程中通常会包括实时监控和反馈机制,以确保部署的软件功能在生产环境中稳定运行,及时发现并解决潜在的问题。
版本控制持续部署依赖于版本控制系统和自动化工具,确保部署的软件版本与代码仓库中的代码保持一致,减少了版本管理和部署的复杂性。

6> CI&CD 区别

区别1CICD
1指开发人员将代码提交到代码仓库后,自动触发构建、测试等过程,但并不自动将代码部署到生产环境更进一步,除了包含持续集成的流程外,还将代码自动部署到类生产环境(例如预发布环境或灰度环境)进一步的测试和验证
2主要目的是确保团队成员的代码能够及时集成,并通过自动化的测试流程进行验证,从而尽早地发现和解决潜在的集成问题目标是确保团队能够随时准备好将代码部署到生产环境,但仍然需要人工的干预来决定何时进行实际的生产部署。
3更加强调自动化部署和测试的全流程,以确保新的功能能够及时交付到类生产环境,但仍然保留了人工决策的环节,以便进行最终的生产部署

四:Jenkins 作用

持续集成(CI)目前已成为许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程;
团队一般如下挑战,部署一个CI系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。

优势含义-
1软件构建自动化配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。
2建可持续的自动化检查CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力。
3构建可持续的自动化测试构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。
4生成后后续过程的自动化当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。

五:Jenkins 原理

Jenkins 是一个开源的持续集成工具,用于监控持续重复的工作,如软件开发的持续集成和持续部署过程。以下是 Jenkins 的基本运行原理:

1> 安装 Jenkins

在服务器上安装 Jenkins。你可以通过多种方式安装,例如,通过下载 war 文件并运行它,或者使用包管理器(如 apt-get 或 yum)安装。

2> 配置 Jenkins

安装完成后,你需要进行基本配置,例如,配置 Jenkins 的工作区、插件安装、用户权限等。

3> 创建作业(Job)

在 Jenkins 中,作业被称为 “项目” 或 “Job”。你可以创建一个新的作业,指定源代码仓库(如 Git、SVN)、构建触发器和构建环境。

4> 构建触发器

可以设置各种触发器来启动构建,例如定时(如每天定时)、来自于代码仓库的 hook、手动启动等。

5> 执行构建

当触发构建触发器时,Jenkins 将会从源代码仓库中获取最新的代码,然后根据配置执行构建过程,这通常包括编译、测试、打包等步骤。

6> 构建结果

构建完成后,Jenkins 会根据结果生成报告,并可以触发进一步的动作,如部署到测试环境或生产环境。

在这里插入图片描述

六:Jenkins-部署

1> Jenkins-部署-windows

https://blog.csdn.net/weixin_42914706/article/details/145018771

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

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

相关文章

Golang笔记:使用net包进行TCP监听回环测试

文章目录 前言TCP监听回环代码演示 附:UDP监听回环 前言 TCP是比较基础常用的网络通讯方式,这篇文章将使用Go语言实现TCP监听回环测试。 本文中使用 Packet Sender 工具进行测试,其官网地址如下: https://packetsender.com/ TC…

SSL 证书格式和证书文件扩展名:完整指南

SSL 证书是什么以及它如何工作相当容易理解。但当涉及到在服务器上安装它时,有时,你可能觉得这是在处理火箭科学。 由于有如此多的SSL 证书格式与特定服务器要求相关,您更有可能感到困惑和沮丧,而不是从一开始就正确配置证书。但…

【源码+文档+调试讲解】项目申报小程序

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代…

echarts横向柱状图胶囊

echarts配置项 tooltip: {trigger: axis, // 触发tooltip提示类型 axis:坐标轴触发axisPointer: {type: cross, // 指示器类型 cross: 十字准星指示器crossStyle: {color: #999 // 线颜色}} }, grid: { left: 0%, //离容器左侧的距离top:5%,bottom: 3%,containLabel: true…

人工智能的发展领域之GPU加速计算的应用概述、架构介绍与教学过程

文章目录 一、架构介绍GPU算力平台概述优势与特点 二、注册与登录账号注册流程GPU服务器类型配置选择指南内存和存储容量网络带宽CPU配置 三、创建实例实例创建步骤镜像选择与设置 四、连接实例SSH连接方法远程桌面配置 一、架构介绍 GPU算力平台概述 一个专注于GPU加速计算的…

Redis Exporter 安装与配置指南(v1.67.0)

🚀 1. 下载 Redis Exporter 首先,登录到目标服务器,下载 Redis Exporter v1.67.0 安装包。 wget https://github.com/oliver006/redis_exporter/releases/download/v1.67.0/redis_exporter-v1.67.0.linux-amd64.tar.gz📦 2. 解压…

WD5105同步降压转换器:9.2V-95V宽电压输入,4.5A大电流输出,95%高效率,多重保护功能

概述 • WD5105同步降压转换器 • 封装形式:QFN-20封装 • 应用场景:适用于车载充电器、电动车仪表、电信基站电源、电源适配器等 性能特点 • 输入电压范围:9.2V至95V • 输出电流:可提供4.5A连续负载电流 • 效率:高…

Laravel 新 WebSocket 服务 Reverb 使用指南

旧篇 > Laravel/Lumen 中使用 Echo Socket.IO-Client 实现网页即时通讯广播 https://blog.csdn.net/maxsky/article/details/130394420 已过时 与时俱进,Laravel 官方在 2024 年 7 月发布了 laravel/reverb 包的正式版,因为之前使用的 laravel-echo-…

什么是Kafka?有什么主要用途?

大家好,我是锋哥。今天分享关于【什么是Kafka?有什么主要用途?】面试题。希望对大家有帮助; 什么是Kafka?有什么主要用途? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka 是一个分布式流…

Python爬虫基础——认识网页结构(各种标签的使用)

1、添加<div>标签的代码定义了两个区块的宽度和高度均为100px&#xff0c;边框的格式也相同&#xff0c;只是区块中显示的内容不同&#xff1b; 2、添加<ul>和<ol>标签分别用于定义无序列表和有序列表。<il>标签位于<ul>标签或<ol>标签之…

数据结构:LinkedList与链表—面试题(三)

目录 1、移除链表元素 2、反转链表 3、链表的中间结点 4、返回倒数第k个结点 5、合并两个有序链表 1、移除链表元素 习题链接https://leetcode.cn/problems/remove-linked-list-elements/description/ 描述&#xff1a;给你一个链表的头节点 head 和一个整数 val &#xff…

QT实现 端口扫描暂停和继续功能 3

上篇QT给端口扫描工程增加线程2-CSDN博客 为按钮pushButton_Stop添加clicked事件&#xff0c;功能为暂停扫描&#xff0c;并在暂停后显示继续按钮&#xff0c;点击继续按钮之后继续扫描 1.更新UI 添加继续按钮 点击转到槽则会自动声明 2. 更新 MainWindow.h 需要新增的部分…

LabVIEW瞬变电磁接收系统

利用LabVIEW软件与USB4432采集卡开发瞬变电磁接收系统。系统通过改进硬件配置与软件编程&#xff0c;解决了传统仪器在信噪比低和抗干扰能力差的问题&#xff0c;实现了高精度的数据采集和处理&#xff0c;特别适用于地质勘探等领域。 ​ 项目背景&#xff1a; 瞬变电磁法是探…

左神算法基础巩固--3

文章目录 二叉树二叉树的遍历先序遍历中序遍历后序遍历 解答二叉树的宽度优先遍历 在这里插入图片描述 一颗完全二叉树具有以下特征&#xff1a;1.不存在任何一个节点具有右子树但不存在左子树.2.不存在任何一个节点在满足1的情况下左右子树不全且其后续节点不为叶子节点 根据以…

高山旅游景区有效降低成本,无人机山下到山上物资吊运技术详解

在高山旅游景区&#xff0c;传统的物资运输方式往往面临人力成本高昂、效率低下等问题&#xff0c;而无人机技术的引入为这一难题提供了新的解决方案。以下是对无人机从山下到山上进行物资吊运技术的详细解析&#xff1a; 一、无人机物资吊运技术的优势 1. 降低人力成本&#…

APP上架之Android 证书 MD5 指纹

Android 证书 MD5 指纹 1. 什么是 Android 证书 MD5 指纹&#xff1f; Android 证书 MD5 指纹是对证书数据进行 MD5 哈希运算后得到的 128 位字符串。在 Android 开发中&#xff0c;每个证书在理论上都有一个唯一的 MD5 指纹&#xff0c;用于识别和验证证书的有效性。证书指纹…

用户界面的UML建模11

然而&#xff0c;在用户界面方面&#xff0c;重要的是要了解《boundary》类是如何与这个异常分层结构进行关联的。 《exception》类的对象可以作为《control》类的对象。因此&#xff0c;《exception》类能够聚合《boundary》类。 参见图12&#xff0c;《exception》Database…

网络安全-XSS跨站脚本攻击(基础篇)

漏洞扫描的原理 1.跨站脚本攻击介绍 xss跨站脚本攻击&#xff1a; xSS 全称&#xff08;Cross site Scripting &#xff09;跨站脚本攻击&#xff0c;是最常见的Web应用程序安全漏洞之一&#xff0c;位于OWASP top 10 2013/2017年度分别为第三名和第七名&#xff0c;XSS是指攻…

CODESYS MODBUS TCP通信(禾川Q1 PLC作为MODBUS TCP从站)

禾川Q1 PLC MODBUS TCP 通信(PLC作为MODBUS TCP通信主站) 禾川Q1 PLC MODBUS TCP通信(CODESYS平台完整配置+代码)-CSDN博客文章浏览阅读28次。MATLAB和S7-1200PLC水箱液位高度PID控制联合仿真(MODBUSTCP通信)_将matlab仿真导入plc-CSDN博客文章浏览阅读722次。本文详细介绍了如…

golang OpcUaClient

实现功能 package mainimport ("fmt""log""opcuaclient/util/plugin/client/opcclient""os""os/signal""syscall" )func main() {OPCUATest()// 监听操作系统信号&#xff0c;阻塞直到接收到信号quit : make(chan…