CI/CD流水线的资源调度方法、装置及设备制造方法及图纸

技术编号:39314750 阅读:8 留言:0更新日期:2023-11-12 15:58
本说明书涉及资源调度技术领域,提供了一种CI/CD流水线的资源调度方法、装置及设备,该方法包括:提供资源分配方式集合;资源分配方式集合包含多个资源分配方式子集,每个资源分配方式子集对应一个源代码类别;解析目标CI/CD流水线待执行的目标源代码,以获得目标源代码的指定属性信息;从资源分配方式集合中,根据指定属性信息匹配目标资源分配方式子集;获取容器资源当前的使用状态以及目标CI/CD流水线所处的工作方式;从目标资源分配方式子集中,根据使用状态和工作方式确定目标CI/CD流水线的资源分配方式。本说明书实施例可以提高CI/CD流水线的任务执行成功率和容器资源的利用率。用率。用率。

【技术实现步骤摘要】
CI/CD流水线的资源调度方法、装置及设备


[0001]本说明书涉及资源调度
,尤其是涉及一种CI/CD流水线的资源调度方法、装置及设备。

技术介绍

[0002]CI/CD是一种用于持续集成(Continuous Integration,CI)、持续交付(Continuous Delivery,CD)和/或持续部署(Continuous Deployment,CD)的组件;其可以将传统开发过程中的代码构建、测试、部署以及基础设施配置等一系列流程的人工干预转变为自动化处理。CI/CD流水线是指:将从开发直至部署的整体生态链的每一个步骤都串联起来并代码化,使得开发流程能够通过自动化流水线的形式,变得更为高效、快速。换而言之,CI/CD流水线可以将开发人员提供的源代码进行自动化测试并完成交付和部署。
[0003]执行CI/CD流水线时需要使用容器资源(例如CPU、内存等)。例如,以代码构建任务为例,CI/CD流水线执行构建任务时由于构建自身技术特点,所需容器资源往往是瞬时升高;容器资源分配过少容易导致构建任务失败,而容器资源分配过多又会影响资源利用率。因此,如何为CI/CD流水线合理分配容器资源,以提高CI/CD流水线的任务执行成功率和容器资源的利用率,已成为目前亟待解决的技术问题。

技术实现思路

[0004]本说明书实施例的目的在于提供一种CI/CD流水线的资源调度方法、装置及设备,以提高CI/CD流水线的任务执行成功率和容器资源的利用率。
[0005]为达到上述目的,一方面,本说明书实施例提供了一种CI/CD流水线的资源调度方法,包括:
[0006]提供资源分配方式集合;所述资源分配方式集合包含多个资源分配方式子集,每个所述资源分配方式子集对应一个源代码类别;
[0007]解析目标CI/CD流水线待执行的目标源代码,以获得所述目标源代码的指定属性信息;
[0008]从所述资源分配方式集合中,根据所述指定属性信息匹配目标资源分配方式子集;
[0009]获取容器资源当前的使用状态以及所述目标CI/CD流水线所处的工作方式;
[0010]从所述目标资源分配方式子集中,根据所述使用状态和所述工作方式确定所述目标CI/CD流水线的资源分配方式。
[0011]本说明书实施例的CI/CD流水线的资源调度方法中,所述指定属性信息包括技术栈、技术栈版本及代码量。
[0012]本说明书实施例的CI/CD流水线的资源调度方法中,根据所述指定属性信息匹配目标资源分配方式子集,包括:
[0013]根据所述指定属性信息确定所述目标源代码所归属的源代码类别;
[0014]从所述资源分配方式集合中,匹配所述目标源代码所归属的源代码类别对应的资源分配方式子集,并将其作为目标资源分配方式子集。
[0015]本说明书实施例的CI/CD流水线的资源调度方法中,每个所述资源分配方式子集中包括:最小所需资源量、最快执行所需资源量和效率最高所需资源量;
[0016]所述最小所需资源量表征:CI/CD流水线成功执行本源代码类别下的源代码所需的最小资源量;
[0017]所述最快执行所需资源量表征:当分配给CI/CD流水线的资源逐渐增加至使其执行速度的变化率低于变化率阈值时的资源分配量,所述执行速度为CI/CD流水线执行本源代码类别下的源代码的执行速度;
[0018]所述效率最高所需资源量表征:CI/CD流水线执行本源代码类别下的源代码时,使CI/CD流水线的执行时长与资源分配量的乘积为最小时对应的资源分配量。
[0019]本说明书实施例的CI/CD流水线的资源调度方法中,根据所述使用状态和所述工作方式确定所述目标CI/CD流水线的资源分配方式,包括:
[0020]当所述目标CI/CD流水线处于手动运行模式,且所述容器资源的使用率低于使用率阈值时,将所述目标资源分配方式子集中的最快执行所需资源量,作为所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式;
[0021]根据公式r=(y
i
/y
i
‑1)/(x
i
/x
i
‑1)计算所述目标CI/CD流水线本次执行所述目标源代码,相对于所述目标CI/CD流水线上一次执行所述目标源代码的执行时间减小幅度;
[0022]如果所述执行时间减小幅度达到第一阈值,则将所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式调整为:x
i+1
=x
i
+Δ;
[0023]如果所述执行时间减小幅度未达到第一阈值,则将所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式,作为所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式;
[0024]其中,r为执行时间减小幅度,y
i
为所述目标CI/CD流水线本次执行所述目标源代码的执行时间,y
i
‑1为所述目标CI/CD流水线上一次执行所述目标源代码的执行时间,x
i
为所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式,x
i
‑1为所述目标CI/CD流水线上一次执行所述目标源代码的资源分配方式,x
i+1
为所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式,Δ为资源增量步长。
[0025]本说明书实施例的CI/CD流水线的资源调度方法中,根据所述使用状态和所述工作方式确定所述目标CI/CD流水线的资源分配方式,还包括:
[0026]当所述目标CI/CD流水线处于手动运行模式,且所述容器资源的使用率不低于使用率阈值时,将所述目标资源分配方式子集中的效率最高所需资源量,作为所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式;
[0027]根据公式计算所述目标CI/CD流水线本次执行所述目标源代码,相对于所述目标CI/CD流水线上一次执行所述目标源代码的执行效率增大幅度;
[0028]如果所述执行效率增大幅度未达到第二阈值,则将所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式,作为所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式;
[0029]如果所述执行效率增大幅度达到第二阈值,则比较x
i
和x
i
‑1的大小;
[0030]如果x
i
≥x
i
‑1,则将所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式调整为:x
i+1
=x
i
+Δ;
[0031]如果x
i
<x
i
‑1,则将所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式调整为:x
i+1
=x
i

Δ;
[0032]其中,为执行效率增大幅度,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CI/CD流水线的资源调度方法,其特征在于,包括:提供资源分配方式集合;所述资源分配方式集合包含多个资源分配方式子集,每个所述资源分配方式子集对应一个源代码类别;解析目标CI/CD流水线待执行的目标源代码,以获得所述目标源代码的指定属性信息;从所述资源分配方式集合中,根据所述指定属性信息匹配目标资源分配方式子集;获取容器资源当前的使用状态以及所述目标CI/CD流水线所处的工作方式;从所述目标资源分配方式子集中,根据所述使用状态和所述工作方式确定所述目标CI/CD流水线的资源分配方式。2.如权利要求1所述的CI/CD流水线的资源调度方法,其特征在于,所述指定属性信息包括技术栈、技术栈版本及代码量。3.如权利要求1所述的CI/CD流水线的资源调度方法,其特征在于,根据所述指定属性信息匹配目标资源分配方式子集,包括:根据所述指定属性信息确定所述目标源代码所归属的源代码类别;从所述资源分配方式集合中,匹配所述目标源代码所归属的源代码类别对应的资源分配方式子集,并将其作为目标资源分配方式子集。4.如权利要求2所述的CI/CD流水线的资源调度方法,其特征在于,每个所述资源分配方式子集中包括:最小所需资源量、最快执行所需资源量和效率最高所需资源量;所述最小所需资源量表征:CI/CD流水线成功执行本源代码类别下的源代码所需的最小资源量;所述最快执行所需资源量表征:当分配给CI/CD流水线的资源逐渐增加至使其执行速度的变化率低于变化率阈值时的资源分配量,所述执行速度为CI/CD流水线执行本源代码类别下的源代码的执行速度;所述效率最高所需资源量表征:CI/CD流水线执行本源代码类别下的源代码时,使CI/CD流水线的执行时长与资源分配量的乘积为最小时对应的资源分配量。5.如权利要求4所述的CI/CD流水线的资源调度方法,其特征在于,根据所述使用状态和所述工作方式确定所述目标CI/CD流水线的资源分配方式,包括:当所述目标CI/CD流水线处于手动运行模式,且所述容器资源的使用率低于使用率阈值时,将所述目标资源分配方式子集中的最快执行所需资源量,作为所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式;根据公式r=(y
i
/y
i
‑1)/(x
i
/x
i
‑1)计算所述目标CI/CD流水线本次执行所述目标源代码,相对于所述目标CI/CD流水线上一次执行所述目标源代码的执行时间减小幅度;如果所述执行时间减小幅度达到第一阈值,则将所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式调整为:x
i+1
=x
i
+Δ;如果所述执行时间减小幅度未达到第一阈值,则将所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式,作为所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式;其中,r为执行时间减小幅度,y
i
为所述目标CI/CD流水线本次执行所述目标源代码的执行时间,y
i
‑1为所述目标CI/CD流水线上一次执行所述目标源代码的执行时间,x
i
为所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式,x
i
‑1为所述目标CI/CD流水线上
一次执行所述目标源代码的资源分配方式,x
i+1
为所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式,Δ为资源增量步长。6.如权利要求4所述的CI/CD流水线的资源调度方法,其特征在于,根据所述使用状态和所述工作方式确定所述目标CI/CD流水线的资源分配方式,还包括:当所述目标CI/CD流水线处于手动运行模式,且所述容器资源的使用率不低于使用率阈值时,将所述目标资源分配方式子集中的效率最高所需资源量,作为所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式;根据公式计算所述目标CI/CD流水线本次执行所述目标源代码,相对于所述目标CI/CD流水线上一次执行所述目标源代码的执行效率增大幅度;如果所述执行效率增大幅度未达到第二阈值,则将所述目标CI/CD流水线本次执行所述目标源代码的资源分配方式,作为所述目标CI/CD流水线下一次执行所述目标源代码的资源分配方式;如果所述执行效率增大幅度...

【专利技术属性】
技术研发人员:沈阳李卓
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1