搜索
您的当前位置:首页一种jenkins任务管理方法、系统、终端及存储介质[发明专利]

一种jenkins任务管理方法、系统、终端及存储介质[发明专利]

来源:智榕旅游
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 111857861 A(43)申请公布日 2020.10.30

(21)申请号 202010063197.9(22)申请日 2020.01.19

(71)申请人 苏州浪潮智能科技有限公司

地址 215100 江苏省苏州市吴中区吴中经

济开发区郭巷街道官浦路1号9幢(72)发明人 荆丽娜 

(74)专利代理机构 济南舜源专利事务所有限公

司 37205

代理人 李舜江(51)Int.Cl.

G06F 9/445(2018.01)G06F 9/48(2006.01)G06F 9/50(2006.01)G06F 8/41(2018.01)

权利要求书2页 说明书6页 附图2页

CN 111857861 A(54)发明名称

系统、终端及存一种jenkins任务管理方法、

储介质(57)摘要

本发明提供一种jenkins任务管理方法、系统、终端及存储介质,包括:设置多个运行环境并在每种运行环境下均部署多个jenkins节点,所述多个运行环境在不同端口的集群内建立通信;生成流水线任务并匹配所述流水线任务的适应运行环境;采集所述流水线任务的适应运行环境下的jenkins节点资源信息,判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点:若是,则将所述流水线任务下发至所述空闲jenkins节点;若否,则将所述流水线任务下发至其他运行环境的jenkins节点。本发明大大提高了任务执行效率,避免了出现jenkins任务分配不均的情况。

CN 111857861 A

权 利 要 求 书

1/2页

1.一种jenkins任务管理方法,其特征在于,包括:

设置多个运行环境并在每种运行环境下均部署多个jenkins节点,所述多个运行环境在不同端口的集群内建立通信;

生成流水线任务并匹配所述流水线任务的适应运行环境;

采集所述流水线任务的适应运行环境下的jenkins节点资源信息,判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点:

若是,则将所述流水线任务下发至所述空闲jenkins节点;若否,则将所述流水线任务下发至其他运行环境的jenkins节点。2.根据权利要求1所述的方法,其特征在于,所述采集流水线任务的适应运行环境下的jenkins节点资源信息判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点,包括:

采集所述适应运行环境下的jenkins节点的编译器数量;

判断所述jenkins节点的编译器数量是否达到额定编译器数量:若否,则判定所述jenkins节点为空闲节点。3.根据权利要求1所述的方法,其特征在于,所述生成流水线任务并匹配所述流水线任务的适应运行环境,包括:

设置所述流水线任务的触发时间和测试方案;

根据所述测试方案匹配所述流水线任务的可用运行环境,并从所述可用运行环境中选取资源使用率最低的运行环境作为适应运行环境;

根据所述触发时间定时将所述流水线任务下发至选定的jenkins节点。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:设置pod清理周期;

根据所述清理周期定期清理jenkins节点的pod内的缓存数据。5.一种jenkins任务管理系统,其特征在于,包括:节点部署单元,配置用于设置多个运行环境并在每种运行环境下均部署多个jenkins节点,所述多个运行环境在不同端口的集群内建立通信;

任务生成单元,配置用于生成流水线任务并匹配所述流水线任务的适应运行环境;信息采集单元,配置用于采集所述流水线任务的适应运行环境下的jenkins节点资源信息,判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点;

第一下发单元,配置用于若所述流水线任务的适应运行环境下存在空闲jenkins节点,则将所述流水线任务下发至所述空闲jenkins节点;

第二下发单元,配置用于若所述流水线任务的适应运行环境下不存在空闲jenkins节点,则将所述流水线任务下发至其他运行环境的jenkins节点。

6.根据权利要求5所述的系统,其特征在于,所述信息采集单元包括:数量采集模块,配置用于采集所述适应运行环境下的jenkins节点的编译器数量;数量比对模块,配置用于判断所述jenkins节点的编译器数量是否达到额定编译器数量;

结果判定模块,配置用于若所述jenkins节点的编译器数量未达到额定编译器数量,则判定所述jenkins节点为空闲节点。

2

CN 111857861 A

权 利 要 求 书

2/2页

7.根据权利要求5所述的系统,其特征在于,所述任务生成单元包括:任务设置模块,配置用于设置所述流水线任务的触发时间和测试方案;环境匹配模块,配置用于根据所述测试方案匹配所述流水线任务的可用运行环境,并从所述可用运行环境中选取资源使用率最低的运行环境作为适应运行环境;

任务触发模块,配置用于根据所述触发时间定时将所述流水线任务下发至选定的jenkins节点。

8.根据权利要求5所述的系统,其特征在于,所述系统还包括:周期设置单元,配置用于设置pod清理周期;数据清理单元,配置用于根据所述清理周期定期清理jenkins节点的pod内的缓存数据。

9.一种终端,其特征在于,包括:处理器;

用于存储处理器的执行指令的存储器;其中,所述处理器被配置为执行权利要求1-4任一项所述的方法。10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的方法。

3

CN 111857861 A

说 明 书

一种jenkins任务管理方法、系统、终端及存储介质

1/6页

技术领域

[0001]本发明涉及jenkins技术领域,具体涉及一种jenkins任务管理方法、系统、终端及存储介质。

背景技术

[0002]jenkins是一个广泛用于持续构建的可视化web工具业的服务交付,就是各种项目的\"自动化\"编译、打包、分发部署。自动化部署有很多优点,比如降低成本,提高生产力,高可用,更可靠,性能优化等,使用流水线任务实现这一流程在k8s服务部署得到了广泛应用。[0003]以浪潮ICKS系统中的Devops模块为例,首先绑定代码仓库信息,依赖代码源信息创建流水线任务;定义流水线任务,一个完整的流水线任务包括代码的拉取,构建和发布。Jenkins的多插件模式完美的适配了各种语言环境,包括java/go/python等开发者习惯的语言。目前ICKS的jenkins任务运行模式采用agent对应的slave节点启动任务pod,pod跟随流水线任务存在,任务结束,无论成功或者失败,都会自动销毁。目前系统中对jenkins的部署策略为一个运行环境对应一个jenkins部署,即无论系统中流水线任务定义多少,用户需要同时运行多少任务,都需要在这一个jenkins节点中运行,大规模多次的任务请求对jenkins的运行能力是一个冲击。一方面jenkins slave节点的任务承担量是有限的,一个流水线任务一次启动一个build executor,如果任务量增大,那么就会造成k8s集群中部署的jenkins负载过重,很可能会被压死;另一方面,任务的build queue堆积过多,无法按照定义测定时测量按时执行,严重影响Devops模块的工作效率;另外jenkins运行任务需要空间,包括执行记录的缓存等,很有可能在运行过程中造成内存不足导致流水线任务失败。发明内容

[0004]针对现有技术的上述不足,本发明提供一种jenkins任务管理方法、系统、终端及存储介质,以解决上述技术问题。[0005]第一方面,本发明提供一种jenkins任务管理方法,包括:

[0006]设置多个运行环境并在每种运行环境下均部署多个jenkins节点,所述多个运行环境在不同端口的集群内建立通信;

[0007]生成流水线任务并匹配所述流水线任务的适应运行环境;

[0008]采集所述流水线任务的适应运行环境下的jenkins节点资源信息,判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点:[0009]若是,则将所述流水线任务下发至所述空闲jenkins节点;[0010]若否,则将所述流水线任务下发至其他运行环境的jenkins节点。[0011]进一步的,所述采集流水线任务的适应运行环境下的jenkins节点资源信息判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点,包括:[0012]采集所述适应运行环境下的jenkins节点的编译器数量;[0013]判断所述jenkins节点的编译器数量是否达到额定编译器数量:

4

CN 111857861 A[0014]

说 明 书

2/6页

若否,则判定所述jenkins节点为空闲节点。

[0015]进一步的,所述生成流水线任务并匹配所述流水线任务的适应运行环境,包括:[0016]设置所述流水线任务的触发时间和测试方案;

[0017]根据所述测试方案匹配所述流水线任务的可用运行环境,并从所述可用运行环境中选取资源使用率最低的运行环境作为适应运行环境;

[0018]根据所述触发时间定时将所述流水线任务下发至选定的jenkins节点。[0019]进一步的,所述方法还包括:[0020]设置pod清理周期;

[0021]根据所述清理周期定期清理jenkins节点的pod内的缓存数据。[0022]第二方面,本发明提供一种jenkins任务管理系统,包括:[0023]节点部署单元,配置用于设置多个运行环境并在每种运行环境下均部署多个jenkins节点,所述多个运行环境在不同端口的集群内建立通信;[0024]任务生成单元,配置用于生成流水线任务并匹配所述流水线任务的适应运行环境;[0025]信息采集单元,配置用于采集所述流水线任务的适应运行环境下的jenkins节点资源信息,判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点;[0026]第一下发单元,配置用于若所述流水线任务的适应运行环境下存在空闲jenkins节点,则将所述流水线任务下发至所述空闲jenkins节点;[0027]第二下发单元,配置用于若所述流水线任务的适应运行环境下不存在空闲jenkins节点,则将所述流水线任务下发至其他运行环境的jenkins节点。[0028]进一步的,所述信息采集单元包括:[0029]数量采集模块,配置用于采集所述适应运行环境下的jenkins节点的编译器数量;[0030]数量比对模块,配置用于判断所述jenkins节点的编译器数量是否达到额定编译器数量;

[0031]结果判定模块,配置用于若所述jenkins节点的编译器数量未达到额定编译器数量,则判定所述jenkins节点为空闲节点。[0032]进一步的,所述任务生成单元包括:[0033]任务设置模块,配置用于设置所述流水线任务的触发时间和测试方案;[0034]环境匹配模块,配置用于根据所述测试方案匹配所述流水线任务的可用运行环境,并从所述可用运行环境中选取资源使用率最低的运行环境作为适应运行环境;[0035]任务触发模块,配置用于根据所述触发时间定时将所述流水线任务下发至选定的jenkins节点。

[0036]进一步的,所述系统还包括:[0037]周期设置单元,配置用于设置pod清理周期;[0038]数据清理单元,配置用于根据所述清理周期定期清理jenkins节点的pod内的缓存数据。[0039]第三方面,提供一种终端,包括:[0040]处理器、存储器,其中,

[0041]该存储器用于存储计算机程序,

5

CN 111857861 A[0042]

说 明 书

3/6页

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的

方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,

当其在计算机上运行时,使得计算机执行上述各方面所述的方法。[0044]本发明的有益效果在于,

[0045]本发明提供的jenkins任务管理方法、系统、终端及存储介质,将多运行环境下的jenkins实行集中管理,自动为流水线任务匹配适应运行环境,并采用一个运行环境多个jenkins部署的策略,根据jenkins使用情况合理分配任务量。本发明大大提高了任务执行效率,避免了出现jenkins任务分配不均的情况。[0046]此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。附图说明

[0047]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0048]图1是本发明一个实施例的方法的示意性流程图。[0049]图2是本发明一个实施例的方法的示意性流程图。[0050]图3是本发明一个实施例的系统的示意性框图。[0051]图4为本发明实施例提供的一种终端的结构示意图。

具体实施方式

[0052]为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

[0053]图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种jenkins任务管理系统。[0054]如图1所示,该方法100包括:[0055]步骤110,设置多个运行环境并在每种运行环境下均部署多个jenkins节点,所述多个运行环境在不同端口的集群内建立通信;[0056]步骤120,生成流水线任务并匹配所述流水线任务的适应运行环境;[0057]步骤130,采集所述流水线任务的适应运行环境下的jenkins节点资源信息,判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点:[0058]步骤140,若是,则将所述流水线任务下发至所述空闲jenkins节点;[0059]步骤150,若否,则将所述流水线任务下发至其他运行环境的jenkins节点。[0060]为了便于对本发明的理解,下面以本发明jenkins任务管理方法的原理,结合实施例中对jenkins任务进行管理的过程,对本发明提供的jenkins任务管理方法做进一步的描述。

6

[0043]

CN 111857861 A[0061]

说 明 书

4/6页

参考图2,具体的,所述jenkins任务管理方法包括:

[0062]S1、设置多个运行环境并在每种运行环境下均部署多个jenkins节点,所述多个运行环境在不同端口的集群内建立通信。

[0063]为了将多运行环境下的jenkins实行集中管理,需要各个多运行环境可以在不同端口的集群内进行通信。并且各运行环境不对外暴露其访问端口,即用户无法访问jenkins原生界面,只能通过devops模块看到流水线执行结果。Jenkins作为任务运行的一个工具,跟系统并不是一一绑定。如运行环境1下的devops模块可以调用运行环境2的jenkins来执行流水线任务。采用一个运行环境多个jenkins部署的策略,根据jenkins使用情况合理分配任务量。[0064]S2、生成流水线任务并匹配所述流水线任务的适应运行环境。[0065]设置所述流水线任务的触发时间和测试方案,根据任务的测试方案自动匹配适应运行环境,一种运行环境对应多种测试方案,保存这种运行环境与测试方案类型的映射关系,根据生成的任务的测试方案类型即可自动匹配运行环境。一个测试方案可能可以在多种运行环境上执行,此时需要对运行环境进行进一步甄选,优先选择cpu和内存使用率低的可用运行环境作为流水线任务的适应运行环境。[0066]判断是否到达流水线任务的触发时间,若到达触发时间则定时将流水线任务下发至选定的jenkins节点。[0067]S3、采集所述流水线任务的适应运行环境下的jenkins节点资源信息,判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点:若是,则将所述流水线任务下发至所述空闲jenkins节点;若否,则将所述流水线任务下发至其他运行环境的jenkins节点。[0068]适应运行环境下不同jenkins主要看这个jenkins同时在运行的流水线任务以及其本身的内存情况,基于一个流水线任务对应一个编译器,因此选取编译器数量未达到额定编译器数量的空闲jenkins节点。

[0069]若适应运行环境不存在空闲jenkins节点,则将该流水线任务分发至其他运行环境的空闲jenkins节点。

[0070]连接选定的jenkins节点,流水线任务将在上面进行运行。[0071]如果同一jenkins任务被构建多次,其执行记录会被缓存在jenkins的pod内存里面,如果内存满了,会造成任务的构建失败,因此定期甚至设置策略清理缓存成为必须。用户可以指定缓存清理策略。[0072]如图2示,该系统200包括:[0073]节点部署单元210,配置用于设置多个运行环境并在每种运行环境下均部署多个jenkins节点,所述多个运行环境在不同端口的集群内建立通信;[0074]任务生成单元220,配置用于生成流水线任务并匹配所述流水线任务的适应运行环境;[0075]信息采集单元230,配置用于采集所述流水线任务的适应运行环境下的jenkins节点资源信息,判断所述流水线任务的适应运行环境下是否存在空闲jenkins节点;[0076]第一下发单元240,配置用于若所述流水线任务的适应运行环境下存在空闲jenkins节点,则将所述流水线任务下发至所述空闲jenkins节点;[0077]第二下发单元250,配置用于若所述流水线任务的适应运行环境下不存在空闲

7

CN 111857861 A

说 明 书

5/6页

jenkins节点,则将所述流水线任务下发至其他运行环境的jenkins节点。[0078]可选地,作为本发明一个实施例,所述信息采集单元包括:[0079]数量采集模块,配置用于采集所述适应运行环境下的jenkins节点的编译器数量;[0080]数量比对模块,配置用于判断所述jenkins节点的编译器数量是否达到额定编译器数量;

[0081]结果判定模块,配置用于若所述jenkins节点的编译器数量未达到额定编译器数量,则判定所述jenkins节点为空闲节点。[0082]可选地,作为本发明一个实施例,所述任务生成单元包括:[0083]任务设置模块,配置用于设置所述流水线任务的触发时间和测试方案;[0084]环境匹配模块,配置用于根据所述测试方案匹配所述流水线任务的可用运行环境,并从所述可用运行环境中选取资源使用率最低的运行环境作为适应运行环境;[0085]任务触发模块,配置用于根据所述触发时间定时将所述流水线任务下发至选定的jenkins节点。[0086]可选地,作为本发明一个实施例,所述系统还包括:[0087]周期设置单元,配置用于设置pod清理周期;[0088]数据清理单元,配置用于根据所述清理周期定期清理jenkins节点的pod内的缓存数据。

[0089]图4为本发明实施例提供的一种终端系统400的结构示意图,该终端系统400可以用于执行本发明实施例提供的jenkins任务管理方法。[0090]其中,该终端系统400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。[0091]其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。[0092]处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器410可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。[0093]通信单元430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。[0094]本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、

8

CN 111857861 A

说 明 书

6/6页

光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。[0095]因此,本发明将多运行环境下的jenkins实行集中管理,自动为流水线任务匹配适应运行环境,并采用一个运行环境多个jenkins部署的策略,根据jenkins使用情况合理分配任务量。本发明大大提高了任务执行效率,避免了出现jenkins任务分配不均的情况,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

[0096]本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

[0097]本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

[0098]在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

[0099]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0100]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

[0101]尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

9

CN 111857861 A

说 明 书 附 图

1/2页

图1

图2

10

CN 111857861 A

说 明 书 附 图

2/2页

图3

图4

11

因篇幅问题不能全部显示,请点此查看更多更全内容

Top