CN112202858B - 基于celery分布式调度框架的jenkins集群管理方法和系统 - Google Patents

基于celery分布式调度框架的jenkins集群管理方法和系统 Download PDF

Info

Publication number
CN112202858B
CN112202858B CN202010999992.9A CN202010999992A CN112202858B CN 112202858 B CN112202858 B CN 112202858B CN 202010999992 A CN202010999992 A CN 202010999992A CN 112202858 B CN112202858 B CN 112202858B
Authority
CN
China
Prior art keywords
jenkins
cluster
decision
requests
nodes
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.)
Active
Application number
CN202010999992.9A
Other languages
English (en)
Other versions
CN112202858A (zh
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.)
Nanyin Faba Consumer Finance Co.,Ltd.
Original Assignee
Suning Consumer Finance 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 Suning Consumer Finance Co ltd filed Critical Suning Consumer Finance Co ltd
Priority to CN202010999992.9A priority Critical patent/CN112202858B/zh
Publication of CN112202858A publication Critical patent/CN112202858A/zh
Application granted granted Critical
Publication of CN112202858B publication Critical patent/CN112202858B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System (AREA)

Abstract

本发明公开了一种基于celery分布式调度框架的jenkins集群管理方法,包括:接收若干个执行jenkins的请求并且进行解析,如果解析通过,将请求导入celery分布式调度框架,调取jenkins集群相关运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,根据决策结果对jenkins集群进行修复处理后,将若干个执行jenkins的请求分发到相应的jenkins集群来执行。本发明能够将请求分发和集群管理剥离出来,将工具的使用范围框定在无状态的情况,使其更适宜集成于DevOps流水线中。

Description

基于celery分布式调度框架的jenkins集群管理方法和系统
技术领域
本发明涉及jenkins集群管理技术领域,具体而言涉及一种基于celery分布式调度框架的jenkins集群管理方法和系统。
背景技术
现有jenkins具备原生的master-slave集群,由于学习成本的因素,当请求过大或原生集群发生故障时,持续服务能力会受到影响,且jenkins版本更新迭代较快,针对现有版本jenkins的二次开发成本颇高。因此亟需一种方法,可以将请求分发和集群管理剥离出来,使其更适宜集成于DevOps流水线中。
发明内容
本发明针对现有技术中的不足,提供一种基于celery分布式调度框架的jenkins集群管理方法和系统,能够将请求分发和集群管理剥离出来,将工具的使用范围框定在无状态的情况,使其更适宜集成于DevOps流水线中。
为实现上述目的,本发明采用以下技术方案:
一种基于celery分布式调度框架的jenkins集群管理方法,所述管理方法包括:
接收若干个执行jenkins的请求并且进行解析,如果解析通过,将请求导入celery分布式调度框架,调取jenkins集群相关运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,根据决策结果对jenkins集群进行修复处理后,将若干个执行jenkins的请求分发到相应的jenkins集群来执行;
其中,在运行态数据的决策过程中,1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功;
所述判断规则包括:1)判断jenkins集群所有节点是否均健康;2)判断任务处理的job数量和build数量是否和jenkins集群节点的数量的比例是否在允许比例区间之内。
为优化上述技术方案,采取的具体措施还包括:
进一步地,所述管理方法包括以下步骤:
S1:接收若干个执行jenkins的请求,对其执行解析,如果解析通过,进入S2,否则,抛出异常;
S2:将解析通过的请求导入celery分布式调度框架,使请求通过任务生产者进入任务队列,采用任务调度器读取配置文件内容,周期性地将请求发送至任务队列,由任务代理接收任务处理信息对请求进行调度,将请求分发给消费者,消费者负责接收任务处理请求完成处理并反馈结果;
S3,经过调度,将经过解析的请求分发至jenkins集群,如果调度成功,进入S4,如果调度失败,则抛出异常;
S4:接收jenkins集群返回的运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,如决策成功,则进入S5,如决策失败则进入S6;
所述预设的决策策略包括:1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功。
S5:由云管平台对jenkins集群进行包括故障节点回收和新增节点在内的相关处理,如处理成功则转入步骤S6,如果失败抛出异常;
S6:jenkins集群受理若干个执行jenkins的请求后,返回结果,如果执行成功,进入S7,如执行失败,抛出异常;
S8:结束流程。
进一步地,所述接收若干个执行jenkins的请求并且进行解析的过程包括以下步骤:
接收若干个执行jenkins的请求,对其执行解析,根据解析结果,判断该笔请求属于范围;所述范围包括四种:请求类型、jenkins的站点api、jenkins的job-api和jenkins的build-api。
进一步地,所述jenkins的api分为以下几种;
站点api输出以下数据:jenkins_url、创建job、复制job、build队列、负载统计、重启jenkins、view_url;
Job api输出以下数据:启动job、剔除job、获取build信息、执行build、禁用job、启用job;
build job输出以下数据:根据build number获取build信息、根据buildtimestamp获取build信息、获得build控制台输出日志。
进一步地,所述运行态数据包括当前集群类型、集群内节点数量、节点的状态信息、节点的负载信息、节点的在执行job数量、节点的在执行build数量。
进一步地,所述预设的决策策略是指:
1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功。
进一步地,所述执行jenkins的请求的格式包括xml、json并支持jsonp跨域访问。
进一步地,所述根据决策结果对jenkins集群进行修复处理的过程包括以下步骤:
根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,其中,通过对jenkins现有集群返回的job队列、build队列进行负载数据统计以对jenkins集群进行过载判断,通过对jenkins节点的端口、心跳、api返回信息进行嗅探以对jenkins集群进行不可达判断;
根据判断结果通过celery分布式调度框架通知上游云管平台对jenkins集群进行包括资源回收、扩容在内的调整操作,以增大jenkins集群的持续服务能力:
针对job队列、build队列进行负载数据统计,如果负载过大,执行jenkins集群的扩容,根据部署jenkins的方式不同,如果采取vmware虚拟机部署,通过云管平台调用vmware api的方式来复制jenkins系统镜像并启动完成扩容,如果采取docker容器部署,通过云管平台调取docker api来复制jenkins容器镜像并启动完成扩容,一直到负载恢复到正常水平;
针对job队列、build队列进行数据统计,如果job数量和build数量连续3次多于jenkins集群节点的数量,执行jenkins集群的缩容,缩容至jenkins集群初始节点数量;根据部署jenkins的方式不同,如果采取vmware虚拟机部署,再没有请求的情况下,通过云管平台调用vmware api的方式来删除jenkins节点完成缩容,如果采取docker容器部署,通过云管平台调取docker api来删除jenkins容器完成缩容。
基于前述方法,本发明提及了一种基于celery分布式调度框架的jenkins集群管理系统,所述系统包括celery分布式调度框架、jenkins集群和策略配置模块;
所述策略配置模块用于配置请求下发策略、决策策略和jenkins集群修复策略;
所述celery分布式调度框架用于接收解析通过的若干个执行jenkins的请求,调取jenkins集群相关运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,根据决策结果对jenkins集群进行修复处理后,将若干个执行jenkins的请求分发到相应的jenkins集群来执行
其中,在运行态数据的决策过程中,1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功。
进一步地,所述系统还包括人工复核模块;
所述人工复核模块用于对不能按时传递或异常抛出的数据进行人工复核和处理。
本发明的有益效果是:本发明能够将请求分发和集群管理剥离出来,将工具的使用范围框定在无状态的情况,使其更适宜集成于DevOps流水线中。
附图说明
图1是本发明的基于celery分布式调度框架的jenkins集群管理方法流程图。
图2是本发明的其中一种例子的流程图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
结合图1,本发明提及一种基于celery分布式调度框架的jenkins集群管理方法,所述管理方法包括:
接收若干个执行jenkins的请求并且进行解析,如果解析通过,将请求导入celery分布式调度框架,调取jenkins集群相关运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,根据决策结果对jenkins集群进行修复处理后,将若干个执行jenkins的请求分发到相应的jenkins集群来执行。
其中,在运行态数据的决策过程中,1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功。
所述判断规则包括:1)判断jenkins集群所有节点是否均健康;2)判断任务处理的job数量和build数量是否和jenkins集群节点的数量的比例是否在允许比例区间之内。假设允许比例区间被定义成1-5,当判断得到jenkins集群节点存在健康问题,则启动自动修复操作;如上述比例低于1,则启动缩容操作;如上述比例高于5,则启动扩容操作。
自动修复jenkins集群根据部署jenkins的方式来决定,如果采取vmware虚拟机部署,通过云管平台调用vmware api的方式来复制jenkins系统镜像,如果采取docker容器部署,通过云管平台调取docker api来复制jenkins容器镜像
下面结合图2,通过一个具体例子对本发明所提及的jenkins集群管理方法的原理进行详细说明。
由图2可知,所述管理方法包括以下步骤:
S1:接收若干个执行jenkins的请求,对其执行解析,根据解析结果,判断该笔请求属于范围,判断范围为四种,请求类型、jenkins的站点api、jenkins的job-api和jenkins的build-api,如果解析通过,进入S2,否则,抛出异常。所述执行jenkins的请求的格式包括xml、json并支持jsonp跨域访问。
进一步地,所述jenkins的api分为以下几种:
(1)站点api输出以下数据:jenkins_url、创建job、复制job、build队列、负载统计、重启jenkins、view_url。(2)Job api输出以下数据:启动job、剔除job、获取build信息、执行build、禁用job、启用job。(3)build job输出以下数据:根据build number获取build信息、根据build timestamp获取build信息、获得build控制台输出日志。
S2:请求经过正常解析后进入celery分布式调度框架,通过task producer(任务生产者)进入任务队列,celery beat(任务调度器)会读取配置文件内容,周期性的将请求发送至任务队列,broker(任务代理)负责接收任务处理信息进行调度,分发给celeryworker(消费者),celery worker(消费者)负责接收任务处理请求完成处理并反馈结果。
S3,步骤S1的请求经过解析后,经过调度后分发至jenkins集群,如果调度成功,进入S4,如不成功抛出异常。
S4:接收jenkins集群返回的运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,如决策成功,则进入S5,如决策失败则进入S6。所述运行态数据包括当前集群类型、集群内节点数量、节点的状态信息、节点的负载信息、节点的在执行job数量、节点的在执行build数量。
下面是其中一种jenkins公共api的获取方式,组成包括:
(1)站点api获取方式
#JENKINS_URL/api/
http://192.168.100.100:8080/api/
(2)job api获取方式
#JENKINS_URL/job/JOB_NAME/api/
http://192.168.100.100:8080/job/email-test/api/。
(3)build api获取方式
#JENKINS_URL/job/JOB_NAME/lastSucessfulBuild/api/
http://192.168.100.100:8080/job/email-test/lastSuccessfulBuild/api/
(4)获取Jenkins生成的crumb值
打开http://192.168.37.100:8080/crumbIssuer/api/xml,返回结果如下:
<defaultCrumbIssuer_class="hudson.security.csrf.DefaultCrumbIssuer">
<crumb>068ab0b4e0622b374d8822b22cee8b18</crumb>
<crumbRequestField>Jenkins-Crumb</crumbRequestField>
</defaultCrumbIssuer>。
在此基础上,所述预设的决策策略是指:
1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功。
S5:由云管平台对jenkins集群进行包括故障节点回收和新增节点在内的相关处理,如处理成功则转入步骤S6,如果失败抛出异常。
S6:jenkins集群受理若干个执行jenkins的请求后,返回结果,如果执行成功,进入S7,如执行失败,抛出异常。
S7:结束流程。
进一步地,所述根据决策结果对jenkins集群进行修复处理的过程包括以下步骤:
根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,其中,通过对jenkins现有集群返回的job队列、build队列进行负载数据统计以对jenkins集群进行过载判断,通过对jenkins节点的端口、心跳、api返回信息进行嗅探以对jenkins集群进行不可达判断。根据判断结果通过celery分布式调度框架通知上游云管平台对jenkins集群进行包括资源回收、扩容在内的调整操作,以增大jenkins集群的持续服务能力。
根据判断结果通过celery分布式调度框架通知上游云管平台对jenkins集群进行包括资源回收、扩容在内的调整操作,以增大jenkins集群的持续服务能力:
针对job队列、build队列进行负载数据统计,如果负载过大,执行jenkins集群的扩容,根据部署jenkins的方式不同,如果采取vmware虚拟机部署,通过云管平台调用vmware api的方式来复制jenkins系统镜像并启动完成扩容,如果采取docker容器部署,通过云管平台调取docker api来复制jenkins容器镜像并启动完成扩容,一直到负载恢复到正常水平;
针对job队列、build队列进行数据统计,如果job数量和build数量连续3次多于jenkins集群节点的数量,执行jenkins集群的缩容,缩容至jenkins集群初始节点数量;根据部署jenkins的方式不同,如果采取vmware虚拟机部署,再没有请求的情况下,通过云管平台调用vmware api的方式来删除jenkins节点完成缩容,如果采取docker容器部署,通过云管平台调取docker api来删除jenkins容器完成缩容。
判断规则有如下,1)判断jenkins集群所有节点是否均健康;2)判断任务处理的job数量和build数量是否和jenkins集群节点的数量的比例,正常比例区间为1比1-5之间。
jenkins集群节点存在健康问题,则启动自动修复操作;如上述比例低于1,则启动缩容操作;如上述比例高于5,则启动扩容操作。自动修复jenkins集群根据部署jenkins的方式来决定,如果采取vmware虚拟机部署,通过云管平台调用vmware api的方式来复制jenkins系统镜像,如果采取docker容器部署,通过云管平台调取docker api来复制jenkins容器镜像。
基于前述方法,本发明提及了一种基于celery分布式调度框架的jenkins集群管理系统,所述系统包括celery分布式调度框架、jenkins集群和策略配置模块。
所述策略配置模块用于配置请求下发策略、决策策略和jenkins集群修复策略。
所述celery分布式调度框架用于接收解析通过的若干个执行jenkins的请求,调取jenkins集群相关运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,根据决策结果对jenkins集群进行修复处理后,将若干个执行jenkins的请求分发到相应的jenkins集群来执行。
其中,在运行态数据的决策过程中,1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功。
进一步地,所述系统还包括人工复核模块。所述人工复核模块用于对不能按时传递或异常抛出的数据进行人工复核和处理。通过增加人工介入功能,当数据不能及时传递或异常,经过人工复核后可以继续处理,直至处理结束,提高数据处理成功率。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (9)

1.一种基于celery分布式调度框架的jenkins集群管理方法,其特征在于,所述管理方法包括:
S1:接收若干个执行jenkins的请求,对其执行解析,如果解析通过,进入S2,否则,抛出异常;
S2:将解析通过的请求导入celery分布式调度框架,使请求通过任务生产者进入任务队列,采用任务调度器读取配置文件内容,周期性地将请求发送至任务队列,由任务代理接收任务处理信息对请求进行调度,将请求分发给消费者,消费者负责接收任务处理请求完成处理并反馈结果;
S3,经过调度,将经过解析的请求分发至jenkins集群,如果调度成功,进入S4,如果调度失败,则抛出异常;
S4:接收jenkins集群返回的运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,如决策成功,则进入S5,如决策失败则进入S6;
所述预设的决策策略包括:1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功;所述判断规则包括:1)判断jenkins集群所有节点是否均健康;2)判断任务处理的job数量和build数量是否和jenkins集群节点的数量的比例是否在允许比例区间之内;
S5:由云管平台对jenkins集群进行包括故障节点回收和新增节点在内的相关处理,如处理成功则转入步骤S6,如果失败抛出异常;
S6:jenkins集群受理若干个执行jenkins的请求后,返回结果,如果执行成功,进入S7,如执行失败,抛出异常;
S8:结束流程。
2.根据权利要求1所述的基于celery分布式调度框架的jenkins集群管理方法,其特征在于,所述接收若干个执行jenkins的请求并且进行解析的过程包括以下步骤:
接收若干个执行jenkins的请求,对其执行解析,根据解析结果,判断该请求属于范围;所述范围包括四种:请求类型、jenkins的站点api、jenkins的job-api和jenkins的build-api。
3.根据权利要求2所述的基于celery分布式调度框架的jenkins集群管理方法,其特征在于,所述jenkins的api分为以下几种;
站点api输出以下数据:jenkins_url、创建job、复制job、build队列、负载统计、重启jenkins、view_url;
Job api输出以下数据:启动job、剔除job、获取build信息、执行build、禁用job、启用job;
buildjob输出以下数据:根据buildnumber获取build信息、根据build timestamp获取build信息、获得build控制台输出日志。
4.根据权利要求3所述的基于celery分布式调度框架的jenkins集群管理方法,其特征在于,所述运行态数据包括当前集群类型、集群内节点数量、节点的状态信息、节点的负载信息、节点的在执行job数量、节点的在执行build数量。
5.根据权利要求4所述的基于celery分布式调度框架的jenkins集群管理方法,其特征在于,所述预设的决策策略是指:
1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功。
6.根据权利要求1所述的基于celery分布式调度框架的jenkins集群管理方法,其特征在于,所述执行jenkins的请求的格式包括xml、json并支持jsonp跨域访问。
7.根据权利要求1所述的基于celery分布式调度框架的jenkins集群管理方法,其特征在于,所述根据决策结果对jenkins集群进行修复处理的过程包括以下步骤:
根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,其中,通过对jenkins现有集群返回的job队列、build队列进行负载数据统计以对jenkins集群进行过载判断,通过对jenkins节点的端口、心跳、api返回信息进行嗅探以对jenkins集群进行不可达判断;
根据判断结果通过celery分布式调度框架通知上游云管平台对jenkins集群进行包括资源回收、扩容在内的调整操作,以增大jenkins集群的持续服务能力:
针对job队列、build队列进行负载数据统计,如果负载过大,执行jenkins集群的扩容,根据部署jenkins的方式不同,如果采取vmware虚拟机部署,通过云管平台调用vmware api的方式来复制jenkins系统镜像并启动完成扩容,如果采取docker容器部署,通过云管平台调取docker api来复制jenkins容器镜像并启动完成扩容,一直到负载恢复到正常水平;
针对job队列、build队列进行数据统计,如果job数量和build数量连续3次多于jenkins集群节点的数量,执行jenkins集群的缩容,缩容至jenkins集群初始节点数量;根据部署jenkins的方式不同,如果采取vmware虚拟机部署,再没有请求的情况下,通过云管平台调用vmware api的方式来删除jenkins节点完成缩容,如果采取docker容器部署,通过云管平台调取docker api来删除jenkins容器完成缩容。
8.一种基于权利要求1所述方法的基于celery分布式调度框架的jenkins集群管理系统,其特征在于,所述系统包括celery分布式调度框架、jenkins集群和策略配置模块;
所述策略配置模块用于配置请求下发策略、决策策略和jenkins集群修复策略;
所述celery分布式调度框架用于接收解析通过的若干个执行jenkins的请求,调取jenkins集群相关运行态数据,根据预设的决策策略对运行态数据经过至少一个判断规则进行决策,根据决策结果对jenkins集群进行修复处理后,将若干个执行jenkins的请求分发到相应的jenkins集群来执行;
其中,在运行态数据的决策过程中,1)如果所有判断规则全部通过,则将执行jenkins的请求采用常规下发策略进行下发,直至返回执行结果;2)如果任意一个判断规则不通过,则根据jenkins集群运行态数据的决策指令来判断jenkins集群是否过载或不可达,并根据判断结果自动修复jenkins集群,待jenkins集群修复成功后重新进行运行态数据决策,直至决策成功;
判断规则有如下,1)判断jenkins集群所有节点是否均健康;2)判断任务处理的job数量和build数量是否和jenkins集群节点的数量的比例在允许比例区间范围内。
9.根据权利要求8所述的基于celery分布式调度框架的jenkins集群管理系统,其特征在于,所述系统还包括人工复核模块;
所述人工复核模块用于对不能按时传递或异常抛出的数据进行人工复核和处理。
CN202010999992.9A 2020-09-22 2020-09-22 基于celery分布式调度框架的jenkins集群管理方法和系统 Active CN112202858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010999992.9A CN112202858B (zh) 2020-09-22 2020-09-22 基于celery分布式调度框架的jenkins集群管理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010999992.9A CN112202858B (zh) 2020-09-22 2020-09-22 基于celery分布式调度框架的jenkins集群管理方法和系统

Publications (2)

Publication Number Publication Date
CN112202858A CN112202858A (zh) 2021-01-08
CN112202858B true CN112202858B (zh) 2022-06-17

Family

ID=74015871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010999992.9A Active CN112202858B (zh) 2020-09-22 2020-09-22 基于celery分布式调度框架的jenkins集群管理方法和系统

Country Status (1)

Country Link
CN (1) CN112202858B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110046041A (zh) * 2019-04-15 2019-07-23 北京中安智达科技有限公司 一种基于celery调度框架的数据采集方法
CN110110863A (zh) * 2019-05-15 2019-08-09 成都理工大学 一种基于celery的分布式机器学习调参系统
CN111182061A (zh) * 2019-12-30 2020-05-19 苏宁云计算有限公司 任务分发处理方法、系统、计算机设备和存储介质
CN111538525A (zh) * 2020-03-20 2020-08-14 成都药王科技股份有限公司 一种用于程序发布的快速迭代与回滚方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110046041A (zh) * 2019-04-15 2019-07-23 北京中安智达科技有限公司 一种基于celery调度框架的数据采集方法
CN110110863A (zh) * 2019-05-15 2019-08-09 成都理工大学 一种基于celery的分布式机器学习调参系统
CN111182061A (zh) * 2019-12-30 2020-05-19 苏宁云计算有限公司 任务分发处理方法、系统、计算机设备和存储介质
CN111538525A (zh) * 2020-03-20 2020-08-14 成都药王科技股份有限公司 一种用于程序发布的快速迭代与回滚方法

Also Published As

Publication number Publication date
CN112202858A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
CN108768877B (zh) 一种突发流量的分配方法、装置及代理服务器
CN109586952B (zh) 服务器扩容方法、装置
CN107403225B (zh) 一种共享设备故障报修方法及装置
US20080270212A1 (en) Method, apparatus or software for managing a data processing process
CN113051019A (zh) 流程任务执行管控方法、装置以及设备
EP1550036A2 (en) Method of solving a split-brain condition
CN107368324A (zh) 一种组件升级方法、装置和系统
CN111737045A (zh) 一种实现Insight管理平台故障自恢复的方法及装置
CN112492016A (zh) 一种跨进程可扩展的共识方法及系统
CN111262783B (zh) 一种动态路由的方法及装置
CN112202858B (zh) 基于celery分布式调度框架的jenkins集群管理方法和系统
CN109995554A (zh) 多级数据中心主备切换的控制方法及云调度指挥器
CN112511312A (zh) 一种可组装的共识方法及系统
CN106776911A (zh) WAT机台报警引起的lot异常处理优化方法及系统
CN114826908B (zh) kubernetes集群服务保障方法、组件、系统
CN116260707A (zh) 基于共识的区块链节点灾备方法、装置、设备及存储介质
CN109547870B (zh) 光缆割接任务的调度方法及系统
CN113703964A (zh) 内存管理方法及装置
TWI733261B (zh) 配置雲服務的方法及系統
CN109101260B (zh) 一种节点软件的升级方法、装置和计算机可读存储介质
CN110086660B (zh) 一种数据处理方法及装置
CN110795291A (zh) 一种数据库处理方法及装置
CN114220383A (zh) 任务处理方法、装置和控制设备以及led显示系统
CN110807683B (zh) 基于消息的房源融合方法
JP2003228497A (ja) 障害通知システムおよび障害通知プログラム

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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: No.88, Huaihai Road, Qinhuai District, Nanjing, Jiangsu 210001

Patentee after: Nanyin Faba Consumer Finance Co.,Ltd.

Address before: No.88, Huaihai Road, Qinhuai District, Nanjing, Jiangsu 210001

Patentee before: SUNING CONSUMER FINANCE Co.,Ltd.