CN112559022A - Jenkins高可用的系统及方法 - Google Patents
Jenkins高可用的系统及方法 Download PDFInfo
- Publication number
- CN112559022A CN112559022A CN202011486383.XA CN202011486383A CN112559022A CN 112559022 A CN112559022 A CN 112559022A CN 202011486383 A CN202011486383 A CN 202011486383A CN 112559022 A CN112559022 A CN 112559022A
- Authority
- CN
- China
- Prior art keywords
- jenkins
- task
- node
- main node
- high availability
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000002159 abnormal effect Effects 0.000 claims abstract description 25
- 230000002085 persistent effect Effects 0.000 claims abstract description 11
- 230000008602 contraction Effects 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004140 cleaning Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 abstract description 30
- 238000013500 data storage Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本申请公开了一种Jenkins高可用的系统及方法,系统包括任务管理模块,用于接收用户创建的任务数据,将所述任务数据持久化到本地数据库中;任务调度模块,用于调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;将任务结果数据写入所述本地数据库中;jenkins管理模块,用于对jenkins主节点进行异常检查;当检查到异常的jenkins主节点后,检查异常jenkins主节点中正在执行的jenkins任务。本申请提高现有的Jenkins的高可用方案的可用性、稳定性。
Description
技术领域
本申请涉及软件开发技术领域,具体而言,涉及一种Jenkins高可用的系统及方法。
背景技术
随着互联网技术的发展,DevOps(Development和Operations的组合词,是一组过程、方法与系统的统称)的普及,越来越多的公司将CI/CD(软件的持续集成、持续交付和持续部署)引入公司的研发流程,而Jenkins(一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作)也成为了众多公司的首选,Jenkins的稳定性直接影响了CI/CD平台的构建交付效率。
Jenkins的存储模型是使用本地文件系统作为存储的,所有的任务数据配置都存储在JENKINS_HOME对应的文件目录下,即Jenkins master是有状态的,它依赖于本地文件。因此,目前Jenkins的高可用方案是基于Kubernetes(一个自动化部署,缩放,以及容器化管理应用程序的开源系统)和nfs(网络文件系统)的。具体为,在Kubernetes上部署一套Jenkins系统,并将nfs服务挂为JENKINS_HOME目录,以此来达到在Jenkins进行漂移时,数据文件不丢失,Jenkins高可用的目的。
本发明人在使用上述Jenkins的高可用方案时发现存在以下缺陷:
1)作为文件存储,nfs本身又是单点的,存在着nfs单点故障/数据丢失后,Jenkins完全不可用的问题;
2)由于使用nfs即网络文件系统作为文件存储,而在Jenkins任务执行过程中又存在着相当多的文件IO操作(拉取代码等),因此增加了网络IO的开销,任务的执行效率也依赖于网络状况;
3)现有的部署架构依然为单master结构,master无法动态扩容也无法集群化,当任务数和请求量增多时,Jenkins master将成为性能的瓶颈。
发明内容
本申请的主要目的在于提供一种Jenkins高可用的系统及方法,以提高现有的Jenkins的高可用方案的可用性、稳定性。
为了实现上述目的,根据本申请的第一方面,提供了一种Jenkins高可用的系统。
根据本申请的Jenkins高可用的系统包括:
任务管理模块,用于接收用户创建的任务数据,将所述任务数据持久化到本地数据库中;
任务调度模块,用于调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;将任务结果数据写入所述本地数据库中;
jenkins管理模块,用于对jenkins主节点进行异常检查;当检查到异常的jenkins主节点后,检查异常jenkins主节点中正在执行的jenkins任务。
进一步的,所述jenkins管理模块还包括:
发送单元,用于发送异常通知给所述任务调度模块;
所述任务调度模块还包括:
接收单元,用于接收jenkins管理模块发送的异常通知;
分配单元,用于为异常jenkins主节点中正在执行的jenkins任务进行可用jenkins主节点的重新分配。
进一步的,所述jenkins管理模块还包括:
计算单元,用于根据所述任务管理模块中的任务数据,计算每个jenkins主节点的任务负载;
扩缩容单元,用于根据任务负载的计算结果,通过Kubernetes的接口对jenkins集群进行动态扩缩容,动态扩缩容包括主从节点的扩缩,其中,jenkins集群中的主从节点都容器化部署在Kubernetes上。
进一步的,所述任务管理模块还包括:
删除单元,用于对所述任务数据进行删除;
查看单元,用于查看执行中的任务数据及执行完成的任务结果。
进一步的,所述任务调度模块还包括:
任务清理单元,用于对执行完成的jenkins任务的清理。
为了实现上述目的,根据本申请的第二方面,还提供了一种Jenkins高可用的方法。
所述方法包括:
接收到用户创建的任务数据后,将其持久化到本地数据库;并调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;
对jenkins主节点进行异常检查,并将异常的jenkins主节点上正在执行的jenkins任务重新创建到可用jenkins主节点;
在jenkins任务完成后将执行的结果存储到所述本地数据库。
进一步的,所述方法还包括:
根据用户创建的任务计算每个jenkins主节点的任务负载;
根据任务负载的计算结果,通过Kubernetes的接口对jenkins集群进行动态扩缩容,动态扩缩容包括主从节点的扩缩,其中,jenkins集群中的主从节点都容器化部署在Kubernetes上。
进一步的,所述在jenkins任务完成后将执行的结果存储到所述本地数据库包括:
jenkins任务完成后,接收到jenkins发送的任务完成通知;
根据任务完成通知,从jenkins主节点获取执行的结果存储到所述本地数据库。
进一步的,所述方法还包括:
接收查看请求,所述查看请求包括任务标识;
根据所述任务标识返回正在执行中的任务数据和/或执行完成的任务结果。
为了实现上述目的,根据本申请的第三方面,提供了一种Jenkins高可用的系统,包括安装上述第一方面中任一项所述系统的第一计算机,安装Jenkins的第二计算机:
所述第一计算机,用于执行上述第二方面中任一项所述的Jenkins高可用的方法;
所述第二计算机,用于接收所述第一计算机创建的jenkins任务,独立执行任务或者分配给jenkins从节点执行任务;任务执行完成后生成任务结果,并通知所述第一计算机。
为了实现上述目的,根据本申请的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行上述第二方面中任意一项所述的Jenkins高可用的方法。
在本申请实施例中,Jenkins高可用的系统及方法中,接收到用户创建的任务数据后,将其持久化到本地数据库;并调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;对jenkins主节点进行异常检查,并将异常的jenkins主节点上正在执行的jenkins任务重新创建到可用jenkins主节点;在jenkins任务完成后将执行的结果存储到所述本地数据库。其中,通过Kubernetes的接口可以增加jenkins主节点,jenkins主节点容器化部署在Kubernetes中。可以看出,本申请中通过将任务数据持久化到本地数据库中,相比于现有的基于Kubernetes和nfs的方案,将jenkins简化成一个无状态的应用,在jenkins主节点有异常时可以将其上正在执行的jenkins任务重新创建到正常的jenkins主节点上,从而达成jenkins任务数据不丢失,提高了jenkins的可用性稳定性,并使得CI/CD环节是稳定且高效。另外,利用kubernetes对jenkins节点进行容器化部署,实现了jenkins集群化部署高可用的目的,可以通过kubernetes增加jenkins主节点,有效避免了现有方案中单master结构影响性能的问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的一种Jenkins高可用的系统结构图;
图2是根据本申请实施例提供的另一种Jenkins高可用的系统结构图;
图3是根据本申请实施例提供的一种Jenkins高可用的方法流程图;
图4是根据本申请实施例提供的一种Jenkins高可用的系统的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
根据本申请实施例,提供了一种Jenkins高可用的系统,该系统安装在与Jenkins不同的计算机中,具体的如图1所示,该系统包括:
首先需要说明的是,该系统相当于在Jenkins上包了一层的设计,通常与Jenkins位于不同的计算机中。
任务管理模块11,用于接收用户创建的任务数据,将所述任务数据持久化到本地数据库中;
其中,本地数据库为系统所在的计算机本地的数据库。数据库可以为MySQL,也可以为其他类型的数据库。由于本系统主要是针对Jenkins的高可用系统,因此任务数据是用于代码持续集成相关的任务对应的数据。
将任务数据持久化到本地数据库中可以解决现有的jenkins中文件存储模型带来的nfs本身又是单点的,存在着nfs单点故障/数据丢失后,Jenkins完全不可用等种种问题以及jenkins主节点有状态的问题,将jenkins简化成一个无状态的应用。
任务调度模块12,用于调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;将任务结果数据写入所述本地数据库中;
任务管理模块11在完成任务数据入库的同时,会将任务数据作为任务调度模块12的输入,使任务调度模块12调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上。具体的在将创建jenkins任务到可用的Jenkins主节点上时,若可用的Jenkins主节点为多个,会根据Jenkins主节点的负载,优先选择低负载的可用Jenkins主节点。
之后,Jenkins主节点为根据自身的任务执行机制,选择独立执行任务或者将任务中的部分分配给对应的Jenkins从节点进行执行,执行完成后,得到任务结果。对于在Jenkins从节点上执行的任务,可以将对应的任务结果返回给Jenkins主节点。在jenkins任务完成之后,Jenkins主节点会向系统发送完成的通知,使任务调度模块12到Jenkins主节点上获取任务结果,并将任务结果存储到本地数据库中,以供后续的查看。
jenkins管理模块13,用于对jenkins主节点进行异常检查;当检查到异常的jenkins主节点后,检查异常jenkins主节点中正在执行的jenkins任务。
从以上的描述中,可以看出,本申请实施例的Jenkins高可用的系统中,任务管理模块接收到用户创建的任务数据后,将其持久化到本地数据库;相比于现有的基于Kubernetes和nfs的方案,将jenkins简化成一个无状态的应用。通过任务调度模块调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;并在jenkins任务完成后将执行的结果存储到所述本地数据库。通过jenkins管理模块,对jenkins主节点进行异常检查;当检查到异常的jenkins主节点后,检查异常jenkins主节点中正在执行的jenkins任务,可以实现对节点的健康检查。
进一步的,作为上述实施例的进一步的补充和细化,如图2所示,jenkins管理模块13还包括:
发送单元131,用于当检查到异常的jenkins主节点后,发送异常通知给任务调度模块12,其中异常通知中包括异常的主节点的标识以及其上正在执行的jenkins任务的标识,发送异常通知给任务调度模块12,使任务调度模块12根据异常通知实现异常主节点上正在执行任务的重新执行。具体的,可以通过hook功能发送异常通知。
如图2所示,任务调度模块12还包括:
接收单元121,用于接收jenkins管理模块发送的异常通知;
分配单元122,用于为异常jenkins主节点中正在执行的jenkins任务进行可用jenkins主节点的重新分配。
接收单元121和分配单元122是为了将重新在目前正常的jenkins主节点中创建在异常jenkins主节点中正在执行的jenkins任务,以重新执行。具体的,创建过程可以为,根据本地数据库中任务数据在正常的jenkins主节点上重新创建对应的jenkins任务。上述方式可以有效的避免主节点异常后,在其上正在执行的任务的无法执行。另外,对于执行超时的jenkins任务,任务管理模块11也会进行重新的执行。
从上述描述,可以看出,本申请实施例可以在jenkins主节点有异常时可以将其上正在执行的jenkins任务重新创建到正常的jenkins主节点上,从而达成jenkins任务数据不丢失,提高了jenkins的可用性稳定性,并使得CI/CD环节是稳定且高效。
进一步的,如图2所示,jenkins管理模块13还包括:
计算单元132,用于根据所述任务管理模块11中的任务数据,计算每个jenkins主节点的任务负载;
扩缩容单元133,用于根据任务负载的计算结果,通过Kubernetes的接口对jenkins集群进行动态扩缩容,动态扩缩容包括主从节点的扩缩,其中,jenkins集群中的主从节点都容器化部署在Kubernetes上。
具体的,根据任务管理模块11中产生的任务数据jenkins管理模块13可以计算出每个jenkins主节点的任务负载。然后根据任务负载的计算结果,通过Kubernetes的接口对jenkins集群进行动态扩缩容。具体的可以预先设置扩缩容的条件,比如当所有的主节点的负载都超过预设百分比时,则扩容;当所有的主节点的负载都低于预设百分比时,则缩容。在实际应用中,扩缩容的条件可以根据实际需求自适应的调整。本申请中不作限制。
jenkins集群中的主从节点都容器化部署在Kubernetes上,对jenkins的主从节点进行容器化部署,以此来保证jenkins的所有节点都是可以系统自愈的。扩缩容可以减少任务执行的排队时间。
另外,需要说明的是,jenkins管理模块13可以通过Kubernetes的接口加jenkins主节点,jenkins主节点以及从节点都容器化部署在Kubernetes中。本系统只关心jenkins主节点的增加,从节点可以由jenkins主节点根据自身应用的机制增加从节点。
从上述的描述可以看出,本申请实施例中利用kubernetes对jenkins节点进行容器化部署,实现了jenkins集群化部署高可用的目的,可以通过kubernetes增加jenkins主节点,有效避免了现有方案中单master结构影响性能的问题。
进一步的,如图2所示,所述任务管理模块11还包括:
删除单元111,用于对所述任务数据进行删除;
查看单元112,用于查看执行中的任务数据及执行完成的任务结果。
当任务完成后,任务管理模块11还负责任务数据的删除。在任务执行的过程中,任务管理模块11可以提供任务过程中数据的查看。在任务完成后还可以提供任务结果的查看功能。
进一步的,所述任务调度模块12还包括:
任务清理单元123,用于对执行完成的jenkins任务的清理。
jenkins任务完成时删除则可以减少磁盘空间的使用。
进一步的,jenkins管理模块13还可以负责对异常jenkins主节点的剔除。
根据本申请实施例,提供了一种Jenkins高可用的方法,如图3所示,该方法包括如下的步骤:
S201.接收到用户创建的任务数据后,将其持久化到本地数据库;并调用Jenkins的接口将任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上。
本步骤的实现方式可以参见图1中任务管理模块11和任务调度模块12中相关的描述,此处不再赘述。
S202.对jenkins主节点进行异常检查,并将异常的jenkins主节点上正在执行的jenkins任务重新创建到可用jenkins主节点。
本步骤的实现方式可以参见图1-2中任务调度模块12和jenkins管理模块13中相关的描述,此处不再赘述。
S203.在jenkins任务完成后将执行的结果存储到本地数据库。
本步骤的实现方式可以参见图1中任务调度模块12中相关的描述,此处不再赘述。
进一步的,所述方法还包括:
根据用户创建的任务计算每个jenkins主节点的任务负载;
根据任务负载的计算结果,通过Kubernetes的接口对jenkins集群进行动态扩缩容,动态扩缩容包括主从节点的扩缩,其中,jenkins集群中的主从节点都容器化部署在Kubernetes上。
进一步的,在jenkins任务完成后将执行的结果存储到所述本地数据库还包括:
jenkins任务完成后,接收到jenkins发送的任务完成通知;
根据任务完成通知,从jenkins主节点获取执行的结果存储到所述本地数据库。
进一步的,所述方法还包括:
接收查看请求,所述查看请求包括任务标识;
根据所述任务标识返回正在执行中的任务数据和/或执行完成的任务结果。
从以上的描述中,可以看出,本申请实施例的Jenkins高可用的方法中,接收到用户创建的任务数据后,将其持久化到本地数据库;并调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;对jenkins主节点进行异常检查,并将异常的jenkins主节点上正在执行的jenkins任务重新创建到可用jenkins主节点;在jenkins任务完成后将执行的结果存储到所述本地数据库。其中,通过Kubernetes的接口可以增加jenkins主节点,jenkins主节点容器化部署在Kubernetes中。可以看出,本申请中通过将任务数据持久化到本地数据库中,相比于现有的基于Kubernetes和nfs的方案,将jenkins简化成一个无状态的应用,在jenkins主节点有异常时可以将其上正在执行的jenkins任务重新创建到正常的jenkins主节点上,从而达成jenkins任务数据不丢失,提高了jenkins的可用性稳定性,并使得CI/CD环节是稳定且高效。另外,利用kubernetes对jenkins节点进行容器化部署,实现了jenkins集群化部署高可用的目的,可以通过kubernetes增加jenkins主节点,有效避免了现有方案中单master结构影响性能的问题。
最后,对本申请中的Jenkins高可用方案的有益效果进行总结如下:
通过对任务数据的Mysql持久化存储并利用kubernetes对jenkins主从节点进行容器化部署,并且引入负载均衡动态扩缩容等功能,将jenkins简化成一个无状态的应用,从而达成jenkins任务数据不丢失,集群化部署高可用的目的并使得CI/CD环节是稳定且高效的。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。另外,本申请各实施例中的相关的描述都可以互相参考。
根据本申请实施例,还提供了一种Jenkins高可用的系统,如图4所示,该所述系统包括:安装图1实施例中系统的第一计算机31,安装Jenkins的第二计算机32:
所述第一计算机31,用于执行上述图3中任一项所述的Jenkins高可用的方法;第一计算机31中包括上述图1-2中所述的Jenkins高可用的系统中的所有的模块单元以及本地数据库。
所述第二计算机32,用于接收所述第一计算机创建的jenkins任务,独立执行任务或者分配给jenkins从节点执行任务;任务执行完成后生成任务结果,并通知所述第一计算机。
本系统中,第一计算机31以及第二计算机32功能的实现,可以参见前述实施例中的相关说明。
另外,还需要说明的是,在实际应用中,Jenkins高可用的系统和Jenkins也可以位于同一计算机中。
从以上的描述中,可以看出,本申请实施例的Jenkins高可用的系统中,通过将任务数据持久化到本地数据库中,相比于现有的基于Kubernetes和nfs的方案,将jenkins简化成一个无状态的应用,在jenkins主节点有异常时可以将其上正在执行的jenkins任务重新创建到正常的jenkins主节点上,从而达成jenkins任务数据不丢失,提高了jenkins的可用性稳定性,并使得CI/CD环节是稳定且高效。另外,利用kubernetes对jenkins节点进行容器化部署,实现了jenkins集群化部署高可用的目的,可以通过kubernetes增加jenkins主节点,有效避免了现有方案中单master结构影响性能的问题。
根据本申请实施例,还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行上述方法实施例中的Jenkins高可用的方法。
根据本申请实施例,还提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行上述方法实施例中的Jenkins高可用的方法。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种Jenkins高可用的系统,其特征在于,所述系统包括:
任务管理模块,用于接收用户创建的任务数据,将所述任务数据持久化到本地数据库中;
任务调度模块,用于调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;将任务结果数据写入所述本地数据库中;
jenkins管理模块,用于对jenkins主节点进行异常检查;当检查到异常的jenkins主节点后,检查异常jenkins主节点中正在执行的jenkins任务。
2.根据权利要求1所述的Jenkins高可用的系统,其特征在于,所述jenkins管理模块还包括:
发送单元,用于发送异常通知给所述任务调度模块;
所述任务调度模块还包括:
接收单元,用于接收jenkins管理模块发送的异常通知;
分配单元,用于为异常jenkins主节点中正在执行的jenkins任务进行可用jenkins主节点的重新分配。
3.根据权利要求1所述的Jenkins高可用的系统,其特征在于,所述jenkins管理模块还包括:
计算单元,用于根据所述任务管理模块中的任务数据,计算每个jenkins主节点的任务负载;
扩缩容单元,用于根据任务负载的计算结果,通过Kubernetes的接口对jenkins集群进行动态扩缩容,动态扩缩容包括主从节点的扩缩,其中,jenkins集群中的主从节点都容器化部署在Kubernetes上。
4.根据权利要求1所述的Jenkins高可用的系统,其特征在于,所述任务管理模块还包括:
删除单元,用于对所述任务数据进行删除;
查看单元,用于查看执行中的任务数据及执行完成的任务结果。
5.根据权利要求1所述的Jenkins高可用的系统,其特征在于,所述任务调度模块还包括:
任务清理单元,用于对执行完成的jenkins任务的清理。
6.一种Jenkins高可用的方法,其特征在于,所述方法包括:
接收到用户创建的任务数据后,将其持久化到本地数据库;并调用Jenkins的接口将所述任务数据作为输入同步创建jenkins任务到可用的Jenkins主节点上;
对jenkins主节点进行异常检查,并将异常的jenkins主节点上正在执行的jenkins任务重新创建到可用jenkins主节点;
在jenkins任务完成后将执行的结果存储到所述本地数据库。
7.根据权利要求6所述的Jenkins高可用的方法,其特征在于,所述方法还包括:
根据用户创建的任务计算每个jenkins主节点的任务负载;
根据任务负载的计算结果,通过Kubernetes的接口对jenkins集群进行动态扩缩容,动态扩缩容包括主从节点的扩缩,其中,jenkins集群中的主从节点都容器化部署在Kubernetes上。
8.根据权利要求6所述的Jenkins高可用的方法,其特征在于,所述在jenkins任务完成后将执行的结果存储到所述本地数据库包括:
jenkins任务完成后,接收到jenkins发送的任务完成通知;
根据任务完成通知,从jenkins主节点获取执行的结果存储到所述本地数据库。
9.一种Jenkins高可用的系统,其特征在于,所述系统包括安装权利要求1至5中任一项所述系统的第一计算机,安装Jenkins的第二计算机:
所述第一计算机,用于执行权利要求6至8中任一项所述的Jenkins高可用的方法;
所述第二计算机,用于接收所述第一计算机创建的jenkins任务,独立执行任务或者分配给jenkins从节点执行任务;任务执行完成后生成任务结果,并通知所述第一计算机。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,其特征在于,所述计算机指令用于使所述计算机执行上述权利要求6至8中任意一项所述的Jenkins高可用的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011486383.XA CN112559022A (zh) | 2020-12-16 | 2020-12-16 | Jenkins高可用的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011486383.XA CN112559022A (zh) | 2020-12-16 | 2020-12-16 | Jenkins高可用的系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559022A true CN112559022A (zh) | 2021-03-26 |
Family
ID=75064122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011486383.XA Pending CN112559022A (zh) | 2020-12-16 | 2020-12-16 | Jenkins高可用的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559022A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236949A (zh) * | 2013-04-27 | 2013-08-07 | 北京搜狐新媒体信息技术有限公司 | 一种服务器集群的监控方法、装置与系统 |
CN104378239A (zh) * | 2014-11-26 | 2015-02-25 | 国家电网公司 | 基于集群框架的快速可靠性指标统计系统及方法 |
CN107807815A (zh) * | 2017-10-19 | 2018-03-16 | 北京京东尚科信息技术有限公司 | 分布式处理任务的方法和装置 |
CN108616398A (zh) * | 2018-05-08 | 2018-10-02 | 深圳大学 | 一种基于dns负载均衡技术的容器动态缩容方法 |
CN111209083A (zh) * | 2020-01-08 | 2020-05-29 | 中国联合网络通信集团有限公司 | 一种容器调度的方法、设备及存储介质 |
CN111262908A (zh) * | 2020-01-09 | 2020-06-09 | 中国工商银行股份有限公司 | 基于jenkins的任务构建方法及系统 |
CN111651275A (zh) * | 2020-06-04 | 2020-09-11 | 山东汇贸电子口岸有限公司 | 一种MySQL集群自动化部署系统及方法 |
CN111857861A (zh) * | 2020-01-19 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种jenkins任务管理方法、系统、终端及存储介质 |
-
2020
- 2020-12-16 CN CN202011486383.XA patent/CN112559022A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236949A (zh) * | 2013-04-27 | 2013-08-07 | 北京搜狐新媒体信息技术有限公司 | 一种服务器集群的监控方法、装置与系统 |
CN104378239A (zh) * | 2014-11-26 | 2015-02-25 | 国家电网公司 | 基于集群框架的快速可靠性指标统计系统及方法 |
CN107807815A (zh) * | 2017-10-19 | 2018-03-16 | 北京京东尚科信息技术有限公司 | 分布式处理任务的方法和装置 |
CN108616398A (zh) * | 2018-05-08 | 2018-10-02 | 深圳大学 | 一种基于dns负载均衡技术的容器动态缩容方法 |
CN111209083A (zh) * | 2020-01-08 | 2020-05-29 | 中国联合网络通信集团有限公司 | 一种容器调度的方法、设备及存储介质 |
CN111262908A (zh) * | 2020-01-09 | 2020-06-09 | 中国工商银行股份有限公司 | 基于jenkins的任务构建方法及系统 |
CN111857861A (zh) * | 2020-01-19 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种jenkins任务管理方法、系统、终端及存储介质 |
CN111651275A (zh) * | 2020-06-04 | 2020-09-11 | 山东汇贸电子口岸有限公司 | 一种MySQL集群自动化部署系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102013005B1 (ko) | 확장 가능한 환경에서의 파티션 관리 기법 | |
CN110784350B (zh) | 一种实时高可用集群管理系统的设计方法 | |
JP6185486B2 (ja) | 分散型計算環境において負荷均衡化を実行する方法 | |
CN110308983B (zh) | 资源负载均衡方法及系统、服务节点和客户端 | |
CN103414712B (zh) | 一种分布式虚拟桌面管理系统和方法 | |
CN103227838B (zh) | 一种多重负载均衡处理装置与方法 | |
CN108881512B (zh) | Ctdb的虚拟ip均衡分配方法、装置、设备及介质 | |
CN106371889B (zh) | 一种调度镜像的高性能集群系统实现方法及装置 | |
CN111124475B (zh) | 存储管理的方法、电子设备和计算机可读存储介质 | |
CN106790092B (zh) | 远程过程调用服务端控制系统及方法 | |
CN105677462A (zh) | 基于物联网的分布式任务系统及业务处理方法 | |
CN105939389A (zh) | 负载均衡方法及装置 | |
CN112231108A (zh) | 任务处理方法、装置、计算机可读存储介质及服务器 | |
CN110958311A (zh) | 一种基于yarn的共享集群弹性伸缩系统及方法 | |
CN112732491B (zh) | 数据处理系统、基于数据处理系统的业务数据处理方法 | |
CN113382077B (zh) | 微服务调度方法、装置、计算机设备和存储介质 | |
US11301299B2 (en) | Data based scheduling for horizontally scalable clusters | |
CN111045811A (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
CN112463395A (zh) | 一种资源分配方法、装置、设备及可读存储介质 | |
CN114064199A (zh) | 一种集群容量管理方法及系统 | |
CN115951983A (zh) | 任务调度方法、装置、系统和电子设备 | |
CN111352726B (zh) | 一种基于容器化微服务的流数据处理方法及装置 | |
CN112559022A (zh) | Jenkins高可用的系统及方法 | |
CN111158956A (zh) | 一种集群系统的数据备份方法及相关装置 | |
WO2019016584A1 (en) | TRIGGER CORRELATION FOR DYNAMIC SYSTEM RECONFIGURATION |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210326 |