CN115328490A - Devops平台流水线异步带参反馈方法及控制*** - Google Patents

Devops平台流水线异步带参反馈方法及控制*** Download PDF

Info

Publication number
CN115328490A
CN115328490A CN202210961873.3A CN202210961873A CN115328490A CN 115328490 A CN115328490 A CN 115328490A CN 202210961873 A CN202210961873 A CN 202210961873A CN 115328490 A CN115328490 A CN 115328490A
Authority
CN
China
Prior art keywords
platform
parameter
buildtype
parameters
jenkins server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210961873.3A
Other languages
English (en)
Inventor
杨荣华
晏东
张含伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Ghostcloud Technology Co ltd
Original Assignee
Chengdu Ghostcloud Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Ghostcloud Technology Co ltd filed Critical Chengdu Ghostcloud Technology Co ltd
Priority to CN202210961873.3A priority Critical patent/CN115328490A/zh
Publication of CN115328490A publication Critical patent/CN115328490A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • G06F8/4451Avoiding pipeline stalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种Devops平台流水线异步带参反馈方法及控制***。在Devops平台上,利用交互文件指定需返回的环境参数,将指定了环境参数的交互文件发送至Jenkins服务器,选择用于控制流水线构建的触发方式,设置所述触发方式对应的buildType参数,将buildType参数发送至所述Jenkins服务器;在Jenkins服务器中,根据触发方式执行流水线构建任务,并将执行结果、buildType参数和Jenkins服务器自带的参数作为环境参数写入交互文件,并将记录有环境参数的交互文件返回至所述Devops平台。本申请可实现当Devops平台接受到Jenkins服务器反馈的参数时即可获取Jenkins服务器已执行完任务并获得执行结果。

Description

Devops平台流水线异步带参反馈方法及控制***
技术领域
本发明涉及软件开发技术领域,具体而言,涉及一种Devops平台流水线异步带参反馈方法、控制***。
背景技术
Devops=Development+Operation是一种软件开发过程中开发、运维和质量控制相结合的思想。它将开发需求、开发、静态代码检查、自动化测试、自动化运维等过程集成于一体,有利地促进了整个软件开发过程的有序进行和不同部门之间的高效协作。随着Devops理念的兴起,国内外大小型公司也纷纷建立自己的Devops平台,但是由于Devops平台建立的规范参差不齐、所用技术也各不相同。如下问题存在于基于Jenkins的Devops平台中:
第一,基于Jenkins的Devops平台通过调用Jenkins的Api接口来请求Jenkins服务器执行相关的任务,但是Jenkins不会返回执行结果。这就造成了Devops平台不知道Jenkins服务器相关任务的执行是否完成以及任务的执行结果。我们只能通过频繁的去调用Api去查询执行结果。这样大量的频繁请求会导致我们浪费大量的网络资源和服务器资源,造成网络阻塞、服务器性能下降甚至导致整个***的崩溃。
第二,Jenkins所有的信息都是以文件的形式存放在Jenkins服务器中的。当Jenkins服务器上的项目和流水线越来越多时会导致Jenkins服务器上面所存放文件越来越大。Jenkins会按照一定的策略去清理这些文件,但是清理文件会造成我们历史信息的丢失。
第三,Jenkins所有信息都是按照一定策略存放在Jenkins服务器的文件中,Devops平台调用Jenkins的Api发送请求查询数据时需要频繁的读取文件,频繁的大文件I/O操作导致性能低下。
第四,Jenkins提供的Api接口未提供分页查询,调用Jenkins的Api查询信息时Jenkins将所有的信息返回给客户端,如果需要分页我们只能在从Jenkins获取到所有数据后在内存中进行分页处理,性能低下。
有鉴于此,特提出本申请。
发明内容
本申请的目的在于提供一种Devops平台流水线异步带参反馈方法及控制***,采用异步带参反馈的方法,解决由于Jenkins服务器在执行任务时不返回执行结果,导致Devops平台无法判断Jenkins服务器的任务是否执行完成以及无法获取执行结果,进而导致花费大量网络资源和服务资源用于查询执行结果,造成网络阻塞和服务器性能下降的问题;通过该方法实现Devops平台与Jenkins服务器数据的解耦,当Devops平台接受到Jenkins服务器反馈的参数时即可获取Jenkins服务器已执行完任务并获得执行结果。
本发明通过下述技术方案实现:
一方面,
本申请提供一种Devops平台流水线异步带参反馈方法,包括以下步骤:
在Devops平台上,利用交互文件指定需返回的环境参数,将指定了环境参数的交互文件发送至Jenkins服务器,选择用于控制流水线构建的触发方式,设置所述触发方式对应的buildType参数,将所述buildType参数发送至所述Jenkins服务器;
在所述Jenkins服务器中,根据所述触发方式执行流水线构建任务,并将执行结果、所述buildType参数和所述Jenkins服务器自带的参数作为环境参数写入所述交互文件,并将记录有环境参数的交互文件返回至所述Devops平台,完成Devops平台流水线异步带参反馈。
进一步的,
所述将记录有环境参数的交互文件返回至所述Devops平台之后,包括以下步骤:在Devops平台上,根据交互文件中的buildType参数将所述Jenkins服务器的执行结果存入数据库中。
进一步的,
所述Devops平台流水线异步带参反馈方法,还包括以下步骤:通过Devops平台的调用接口从所述数据库中查询所需信息,将查询结果发送给显示终端。
进一步的,
所述交互文件包括:xml文件,所述需反馈的参数包括:buildType参数、Jenkins服务器自带的变量和Jenkins服务器的执行结果。
进一步的,
不同的触发方式对应不同的buildType参数。
进一步的,
所述触发方式对应的buildType参数的设置方法为:
若当前流水线构建的触发方式为用户通过手动方式触发,则将触发方式对应的buildType参数设置为“buildType=手动触发(用户姓名)”;
若当前流水线构建的触发方式为用户通过定时任务触发,则将触发方式对应的buildType参数设置为“buildType=定时任务触发(用户姓名)”;
若当前流水线构建的触发方式为用户通过Git事件触发,则将触发方式对应的buildType参数设置为“buildType=Git事件触发(用户姓名)”。
进一步的,
所述将记录有环境参数的交互文件返回至所述Devops平台的方法为:通过异步反馈接口将记录有环境参数的交互文件返回至所述Devops平台。
另一方面,
本申请提供一种Devops平台流水线异步带参反馈的控制***,包括:
Devops平台控制模块,用于控制Devops平台执行以下操作:利用交互文件指定需返回的环境参数,将指定了环境参数的交互文件发送至Jenkins服务器,选择用于控制流水线构建的触发方式,设置所述触发方式对应的buildType参数,将所述buildType参数发送至所述Jenkins服务器;
Jenkins服务器控制模块,用于控制Jenkins服务器执行以下操作:根据所述触发方式执行流水线构建任务,并将执行结果、所述buildType参数和所述Jenkins服务器自带的参数作为环境参数写入所述交互文件,并将记录有环境参数的交互文件返回至所述Devops平台。
进一步的,
所述Devops平台控制模块,还用于控制Devops平台根据交互文件中的buildType参数将所述Jenkins服务器的执行结果存入数据库中。
进一步的,
所述Devops平台流水线异步带参反馈的控制***,还包括输出发送模块,用于控制Devops平台的调用接口从所述数据库中查询所需信息,将查询结果发送给显示终端。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明提供的一种Devops平台流水线异步带参反馈方法及控制***,采用异步带参反馈(以交互文件的方式向Jenkins服务器发送与所选触发方式对应的buildType参数,并设置Jenkins服务器在完成流水线构建任务后,主动向Devops平台发送Post请求并携带参数信息)的方式实现Devops平台与Jenkins服务器数据的解耦,使Jenkins服务器相对于Devops平台之间进行透明的数据交互,解决由于Jenkins服务器在执行任务时不返回执行结果,导致Devops平台无法判断Jenkins服务器的任务是否执行完成以及无法获取执行结果,进而导致花费大量网络资源和服务资源用于查询执行结果,造成网络阻塞和服务器性能下降的问题,实现当Devops平台接受到Jenkins服务器反馈的参数时即可获取Jenkins服务器已执行完任务并获得执行结果;
2、本发明提供的一种Devops平台流水线异步带参反馈方法及控制***,通过异步带参的反馈方法将保存在Jenkins服务器的信息通过参数传递给Devops平台,Devops平台再将信息持久化到数据库,解决Jenkins服务器因文件清理操作造成信息丢失的问题;
3、本发明提供的一种Devops平台流水线异步带参反馈方法及控制***,由于Jenkins服务器的信息已经存储到数据库,实现仅查询数据库即可查询到Jenkins服务器相关信息,解决了从Jenkins服务器查询文件时,频繁的大文件I/O操作导致服务器性能低下的问题和无法分页查询的问题。
附图说明
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例1提供的当前的Devops平台与Jenkins服务器的交互流程图;
图2为本发明实施例1提供的一种Devops平台流水线异步带参反馈方法流程图;
图3为本发明实施例1提供的改进的Devops平台与Jenkins服务器的交互流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
如图1所示,基于Jenkins服务器的Devops平台通过调用Jenkins服务器的Api接口来请求Jenkins服务器执行相关的任务。但是Jenkins服务器在任务执行完成后不会返回执行结果,这就造成了Devops平台不知道Jenkins服务器相关任务的执行是否完成以及任务的执行结果,而只能通过频繁地调用Api接口的方式来查询执行结果。这样大量的频繁请求会浪费大量的网络资源和服务器资源,造成网络阻塞、服务器性能下降甚至导致整个***的崩溃。
针对上述问题,本实施例提供一种如图2所示的Devops平台流水线异步带参反馈方法,采用异步带参的反馈方式,解决由于Jenkins服务器在执行任务时不返回执行结果,导致Devops平台无法判断Jenkins服务器的任务是否执行完成以及无法获取执行结果,进而导致花费大量网络资源和服务资源用于查询执行结果,造成网络阻塞和服务器性能下降的问题。
通过以下步骤实现:
在Devops平台上执行步骤A1-A4:
A1:利用交互文件指定需返回的环境参数。具体的,在通过Devops平台调用Jenkins服务器的Api接口创建流水线时,在xml文件中设置需要返回Devops平台的参数,将该参数作为环境变量。
A2:将指定了环境参数的xml文件发送至Jenkins服务器。
A3:选择用于控制流水线构建的触发方式,设置所述触发方式对应的buildType参数。具体的,Devops平台通过手动触发、定时任务触发和Git事件触发这三种触发方式控制流水线的构建,此三种触发方式均由Devops平台进行管理;选择不同的触发方式触发流水线构建时,需要建立所选触发方式对应的buildType参数,即不同的触发方式对应不同的buildType参数。例如:若当前流水线构建的触发方式为用户通过手动方式触发,则将触发方式对应的buildType参数设置为“buildType=手动触发(用户姓名)”;若当前流水线构建的触发方式为用户通过定时任务触发,则将触发方式对应的buildType参数设置为“buildType=定时任务触发(用户姓名)”;若当前流水线构建的触发方式为用户通过Git事件触发,则将触发方式对应的buildType参数设置为“buildType=Git事件触发(用户姓名)”。
A4:将设置好的buildType参数发送至所述Jenkins服务器。
在Jenkins服务器中执行步骤B1-B2:
B1:根据所选触发方式执行流水线构建任务,并将执行结果、buildType参数和所述Jenkins服务器自带的参数作为环境参数写入xml文件。
B2:将记录有执行结果、buildType参数和Jenkins服务器自带的参数的xml文件返回至所述Devops平台,即完成Devops平台流水线异步带参反馈。
根据上述Devops平台流水线异步带参反馈方法,改进后的Devops平台与Jenkins服务器的交互过程如图3所示。通过该方法可实现Devops平台与Jenkins服务器数据的解耦,当Devops平台接受到Jenkins服务器反馈的参数时即可获取Jenkins服务器已执行完任务并获得执行结果。
实施例2
本实施例提供的一种Devops平台流水线异步带参反馈方法,通过以下步骤及对应的计算机语言实现:
步骤1:在通过Devops平台调用Jenkins服务器的Api接口创建流水线时,在xml文件中设置需要返回Devops平台的参数以如下代码形式设置到xml文件中;然后调用Jenkins服务器的Api接口将xml文件作为参数传递给Jenkins服务器,创建一个流水线(如下配置会在流水线中生成一个buildType的环境变量,默认值为“自动构建”)。
对用的计算机代码如下:
Figure BDA0003793625210000061
步骤2:在选择触发方式触发流水线进行构建时,将触发方式(手动触发、定时任务触发、Git事件触发)作为参数传到Jenkins服务器(如:buildeType=“手动触发(张三)”),Jenkins构建完成后需要将该参数利用异步带参反馈接口返回。
步骤3:Jenkins服务器执行完成构建任务后,根据流水线的配置(流水线相关带参数的反馈方法如下),执行异步带参反馈,将所需信息返回(%{address}为反馈回调地址%)至Devops平台。
对应的计算机代码如下:
Figure BDA0003793625210000062
实施例3
本实施例提供的一种Devops平台流水线异步带参反馈方法,与实施例1和实施例2的区别在于,增加了以下步骤:
(1)将记录有环境参数的交互文件返回至所述Devops平台之后,在Devops平台上,根据交互文件中的buildType参数将所述Jenkins服务器的执行结果存入数据库中。
由于Jenkins所有的信息都是以文件的形式存放在Jenkins服务器中,当Jenkins服务器上的项目和流水线越来越多时会导致Jenkins服务器上面所存放文件越来越大,此时Jenkins服务器会按照一定的策略去清理这些文件,造成历史信息的丢失。本实施例通过异步带参的反馈方法保存了在Jenkins服务器的信息通过参数传递给Devops平台,Devops平台再将信息存储到数据库,从而解决了Jenkins信息丢失的问题。
另外,由于Jenkins服务器的信息被存储到数据库中,当需要查询Jenkins相关信息时便可以从数据库进行查询,从而解决了从Jenkins服务器查询文件时,频繁的大文件I/O操作导致服务器性能低下的问题和无法分页查询的问题。
(2)通过Devops平台的调用接口从所述数据库中查询所需信息,将查询结果发送给显示终端。从而方便用户及时了解到Jenkins服务器以执行完成任务,并获取到任务结果。
实施例4
与实施例1对应的,本实施例提供一种Devops平台流水线异步带参反馈的控制***,用于控制Devops平台及Jenkins服务器执行异步带参反馈流程,包括:
Devops平台控制模块,用于控制Devops平台执行以下操作:利用交互文件指定需返回的环境参数,将指定了环境参数的交互文件发送至Jenkins服务器,选择用于控制流水线构建的触发方式,设置所述触发方式对应的buildType参数,将所述buildType参数发送至所述Jenkins服务器;
Jenkins服务器控制模块,用于控制Jenkins服务器执行以下操作:根据所述触发方式执行流水线构建任务,并将执行结果、所述buildType参数和所述Jenkins服务器自带的参数作为环境参数写入所述交互文件,并将记录有环境参数的交互文件返回至所述Devops平台。
所述Devops平台控制模块,还用于控制Devops平台根据交互文件中的buildType参数将所述Jenkins服务器的执行结果存入数据库中。
所述Devops平台流水线异步带参反馈的控制***,还包括输出发送模块,用于控制Devops平台的调用接口从所述数据库中查询所需信息,将查询结果发送给显示终端。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种Devops平台流水线异步带参反馈方法,其特征在于,包括以下步骤:
在Devops平台上,利用交互文件指定需返回的环境参数,将指定了环境参数的交互文件发送至Jenkins服务器,选择用于控制流水线构建的触发方式,设置所述触发方式对应的buildType参数,将所述buildType参数发送至所述Jenkins服务器;
在所述Jenkins服务器中,根据所述触发方式执行流水线构建任务,并将执行结果、所述buildType参数和所述Jenkins服务器自带的参数作为环境参数写入所述交互文件,并将记录有环境参数的交互文件返回至所述Devops平台,完成Devops平台流水线异步带参反馈。
2.根据权利要求1所述的一种Devops平台流水线异步带参反馈方法,其特征在于,所述将记录有环境参数的交互文件返回至所述Devops平台之后,包括以下步骤:在Devops平台上,根据交互文件中的buildType参数将所述Jenkins服务器的执行结果存入数据库中。
3.根据权利要求2所述的一种Devops平台流水线异步带参反馈方法,其特征在于,还包括以下步骤:通过Devops平台的调用接口从所述数据库中查询所需信息,将查询结果发送给显示终端。
4.根据权利要求1所述的一种Devops平台流水线异步带参反馈方法,其特征在于,所述交互文件包括:xml文件,所述需反馈的参数包括:buildType参数、Jenkins服务器自带的变量和Jenkins服务器的执行结果。
5.根据权利要求1所述的一种Devops平台流水线异步带参反馈方法,其特征在于,不同的触发方式对应不同的buildType参数。
6.根据权利要求1或5所述的一种Devops平台流水线异步带参反馈方法,其特征在于,所述触发方式对应的buildType参数的设置方法为:
若当前流水线构建的触发方式为用户通过手动方式触发,则将触发方式对应的buildType参数设置为“buildType=手动触发(用户姓名)”;
若当前流水线构建的触发方式为用户通过定时任务触发,则将触发方式对应的buildType参数设置为“buildType=定时任务触发(用户姓名)”;
若当前流水线构建的触发方式为用户通过Git事件触发,则将触发方式对应的buildType参数设置为“buildType=Git事件触发(用户姓名)”。
7.根据权利要求1所述的一种Devops平台流水线异步带参反馈方法,其特征在于,所述将记录有环境参数的交互文件返回至所述Devops平台的方法为:通过异步反馈接口将记录有环境参数的交互文件返回至所述Devops平台。
8.一种Devops平台流水线异步带参反馈的控制***,其特征在于,包括:
Devops平台控制模块,用于控制Devops平台执行以下操作:利用交互文件指定需返回的环境参数,将指定了环境参数的交互文件发送至Jenkins服务器,选择用于控制流水线构建的触发方式,设置所述触发方式对应的buildType参数,将所述buildType参数发送至所述Jenkins服务器;
Jenkins服务器控制模块,用于控制Jenkins服务器执行以下操作:根据所述触发方式执行流水线构建任务,并将执行结果、所述buildType参数和所述Jenkins服务器自带的参数作为环境参数写入所述交互文件,并将记录有环境参数的交互文件返回至所述Devops平台。
9.根据权利要求8所述的一种Devops平台流水线异步带参反馈的控制***,其特征在于,所述Devops平台控制模块,用于控制Devops平台根据交互文件中的buildType参数将所述Jenkins服务器的执行结果存入数据库中。
10.根据权利要求8所述的一种Devops平台流水线异步带参反馈的控制***,其特征在于,包括输出发送模块,用于控制Devops平台的调用接口从所述数据库中查询所需信息,将查询结果发送给显示终端。
CN202210961873.3A 2022-08-11 2022-08-11 Devops平台流水线异步带参反馈方法及控制*** Pending CN115328490A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210961873.3A CN115328490A (zh) 2022-08-11 2022-08-11 Devops平台流水线异步带参反馈方法及控制***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210961873.3A CN115328490A (zh) 2022-08-11 2022-08-11 Devops平台流水线异步带参反馈方法及控制***

Publications (1)

Publication Number Publication Date
CN115328490A true CN115328490A (zh) 2022-11-11

Family

ID=83922063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210961873.3A Pending CN115328490A (zh) 2022-08-11 2022-08-11 Devops平台流水线异步带参反馈方法及控制***

Country Status (1)

Country Link
CN (1) CN115328490A (zh)

Similar Documents

Publication Publication Date Title
CN109271417B (zh) 一种基于数据库的轻量级消息队列实现方法及存储设备
US8195746B2 (en) Automatic off-line availability for document content linked in electronic mail messages
CN100487689C (zh) 用于环球网服务结构中的包容器选择器及其选择方法
CN111258565B (zh) 小程序的生成方法、***、服务器及存储介质
US5995972A (en) System and method for retrieving data
CN103248684A (zh) 一种互联网中资源获取方法和装置
CN110740184B (zh) 基于微服务架构的交易策略测试***
CN107026879B (zh) 一种数据缓存方法及后台应用***
CN107026871A (zh) 一种基于云计算的Web漏洞扫描方法
CN105447092A (zh) 一种缓存方法及装置
CN108900627B (zh) 一种网络请求方法、终端装置及存储介质
CN111104387A (zh) 在服务器上获取数据集的方法和装置
CN111414261B (zh) 一种分布式***的跨网络调用方法、装置及相关组件
CN105718307A (zh) 进程管理方法及进程管理装置
CN117389843B (zh) 一种智能运维***、方法、电子设备及存储介质
US8510426B2 (en) Communication and coordination between web services in a cloud-based computing environment
US10152490B2 (en) Sequential replication with limited number of objects
CN115328490A (zh) Devops平台流水线异步带参反馈方法及控制***
CN110955460A (zh) 一种服务进程启动方法、装置、电子设备和存储介质
US20190109886A1 (en) Selected data exchange
CN112685613B (zh) 一种资源包查询的方法、装置及信息处理***
US9659041B2 (en) Model for capturing audit trail data with reduced probability of loss of critical data
KR101888131B1 (ko) Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법
CN111694671B (zh) 大数据组件管理方法、装置、服务器、电子设备及***
CN110647330B (zh) 针对Web的即时编译方法及工具

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination