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

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.mzph.cn/news/892476.shtml

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

相关文章

从0到机器视觉工程师(六):配置OpenCV和Qt环境

CMake配置OpenCV CMakeLists.txt文件的编写 cmake_minimum_required(VERSION 3.20) project(test_opencv LANGUAGES CXX) #寻找Opencv库 FIND_PACKAGE(OpenCV REQUIRED) include_directories(test_opencv ${OpenCV_INCLUDE_DIRS}) add_executable(test_opencv main.cpp) TARGE…

CDA数据分析师一级经典错题知识点总结(3)

1、SEMMA 的基本思想是从样本数据开始,通过统计分析与可视化技术,发现并转换最有价值的预测变量,根据变量进行构建模型,并检验模型的可用性和准确性。【强调探索性】 2、CRISP-DM模型Cross Industry Standard Process of Data Mi…

【Uniapp-Vue3】v-for列表渲染的用法

如果我们想要重复渲染多个元素,就可以使用v-for进行渲染。 比如我们想要将元素渲染5次: 如果我们想要知道当前元素是渲染的第几个,可以在v-for的时候添加参数index,并在差值表达式中填入index: 则index会以0开始进行渲…

《新闻大厦抢先版》V0.18.105+Dlcs官方学习版

《新闻大厦抢先版》官方版https://pan.xunlei.com/s/VODaeUn3v-ZWVvvmUMfo5AqWA1?pwdnhpz# 建造并不断优化新闻大楼,保障员工权益并及时赶上周日的印刷交期! 招募并管理不同职业以登上成功的阶梯:记者、摄像师、勤杂工,除此以外…

解锁3D模型转换:STL转OBJ全攻略

一、3D模型转换的基石:STL与OBJ格式概览 在3D模型的世界里,STL和OBJ格式犹如两大基石,支撑着模型创建、编辑、转换与应用的方方面面。了解它们的特性,是深入探究3D模型转换的关键第一步。 1.1 STL格式深度剖析 STL 全称为Stereo…

RK3568 Android 13 内置搜狗输入法小计

问:为什么写? 答:网上搜出来的都试过了,不行!下面直接上代码和注意事项! 首先到这个目录(/RK3568/Rockchip_Android13_SDK_Release/device/rockchip/rk356x/tl3568_evm/preinstall&#xff09…

windows10下安装Microsoft SQL Server 2016

一、下载安装包 网站:MSDN, 我告诉你 - 做一个安静的工具站 选择需要的版本,点击详细信息,复制ed2k链接,打开eMule或迅雷,新建下载,粘贴链接,开始下载。 下载好的文件是一个.iso镜像文件。 二、…

探索图像编辑的无限可能——Adobe Photoshop全解析

文章目录 前言一、PS的历史二、PS的应用场景三、PS的功能及工具用法四、图层的概念五、调整与滤镜六、创建蒙版七、绘制形状与路径八、实战练习结语 前言 在当今数字化的世界里,视觉内容无处不在,而创建和编辑这些内容的能力已经成为许多行业的核心技能…

IDEA Maven构建时报错:无效的目标发行版17

报错分析 报错原因:Maven 构建时,Java 版本配置不匹配 我安装的JDK版本是1.8,但由于种种原因,Maven构建时指定了 Java 17 作为目标发行版,从而导致错误 解决方案 首先,java -version,查看环…

西电-神经网络基础与应用-复习笔记

此为24年秋研究生课程复习笔记 导论 神经网络的研究方法分为 连接主义,生理学派,模拟神经计算。高度的并行、分布性,很强的鲁棒和容错性。便于实现人脑的感知功能(音频图像的识别和处理)。符号主义,心理学派,基于符号…

Gitlab-Runner配置

原理 Gitlab-Runner是一个非常强大的CI/CD工具。它可以帮助我们自动化执行各种任务,如构建、测试和部署等。Gitlab-Runner和Gitlab通过API通信,接收作业并提交到执行队列,Gitlab-Runner从队列中获取作业,并允许在不同环境下进行作…

LLM 智能视频字幕助手,支持生成、断句、优化、翻译、视频合成全流程

卡卡字幕助手(VideoCaptioner)是一款功能强大的视频字幕配制软件。操作简单且无需高配置,利用大语言模型进行字幕智能断句、校正、优化、翻译,一键为视频配上效果惊艳的字幕。 🎯 可使用强大的语音识别引擎&#xff0c…

GitLab本地服务器配置ssh和克隆项目

1. 本地安装好git git链接:https://git-scm.com/downloads/win 无脑点击下一步安装即可,打开Git Bash命令终端如下: 2. 配置本地用户名和邮箱 git config --global user.name "你的名字" git config --global user.email "你的邮箱&quo…

Unity热更新 之 Addressables(2) 本地/远端打包 流程测试

基础篇:Unity热更新 之 Addressables(1) 资源基础加载-CSDN博客 基础方法来源于唐老狮,我也是初学热更这一块,所有不保证步骤完全正确,如有不足还请斧正 目录 0.前提 1.本地打包 1.1.资源放入包 1.2.简化路径名称给出标签(如有需要的话) …

HDFS架构原理

一、HDFS架构整体概述 HDFS是Hadoop Distribute File System 的简称,意为:Hadoop分布式文件系统。HDFS是Hadoop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在。HDFS解决的问题就是大数据如何存储,它是横跨在多台计算机上的文件…

Qiskit快速编程探索(进阶篇)

五、量子电路模拟:探索量子世界的虚拟实验室 5.1 Aer模拟器:强大的模拟引擎 在量子计算的探索旅程中,Aer模拟器作为Qiskit的核心组件之一,宛如一座功能强大的虚拟实验室,为开发者提供了在经典计算机上模拟量子电路运行的卓越能力。它打破了硬件条件的限制,使得研究者无…

rust学习——环境搭建

rust安装:https://kaisery.github.io/trpl-zh-cn/ch01-01-installation.html 1、vscode装插件: toml语法支持 依赖管理 rust语法支持 2、创建demo 3、查看目录 4、执行文件的几种方式: rust安装:https://www.rust-lang.org/z…

继承(7)

大家好,今天我们继续来学习一下继承的知识,这方面需要大家勤动脑才能理解,那么我们来看。 1.9 protected关键字 在类和对象章节中,为了实现封装特性,java中引入访向限定符,主要限定:类或者类中成员能否在类外和其他包中被访问. …

玩转大语言模型——langchain调用ollama视觉多模态语言模型

系列文章目录 玩转大语言模型——ollama导入huggingface下载的模型 langchain调用ollama视觉多模态语言模型 系列文章目录前言使用Ollama下载模型查找模型下载模型 测试模型ollama测试langchain测试加载图片加载模型 模型回复 前言 视觉多模态语言模型由预训练的多模态编码器…

J-LangChain - 复杂智能链流式执行

系列文章索引 J-LangChain 入门 介绍 j-langchain是一个Java版的LangChain开发框架,具有灵活编排和流式执行能力,旨在简化和加速各类大模型应用在Java平台的落地开发。它提供了一组实用的工具和类,使得开发人员能够更轻松地构建类似于LangC…