CN116166432A - 基于Jenkins的负载均衡方法及高可用系统 - Google Patents

基于Jenkins的负载均衡方法及高可用系统 Download PDF

Info

Publication number
CN116166432A
CN116166432A CN202310098216.5A CN202310098216A CN116166432A CN 116166432 A CN116166432 A CN 116166432A CN 202310098216 A CN202310098216 A CN 202310098216A CN 116166432 A CN116166432 A CN 116166432A
Authority
CN
China
Prior art keywords
node
jenkins
target task
candidate
target
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
CN202310098216.5A
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.)
China International Financial Ltd By Share Ltd
Original Assignee
China International Financial Ltd By Share 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 China International Financial Ltd By Share Ltd filed Critical China International Financial Ltd By Share Ltd
Priority to CN202310098216.5A priority Critical patent/CN116166432A/zh
Publication of CN116166432A publication Critical patent/CN116166432A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提供了一种基于Jenkins的负载均衡方法,包括:检查Jenkins集群的健康情况,创建目标任务并将其分配至第一节点进行构建;当第一节点无法构建目标任务时,将目标任务迁移到第二节点中进行构建,其中第一节点和第二节点均为Jenkins集群中的Jenkins主节点,并且其中第一节点和第二节点由Jenkins管理员指定或者通过选举机制被选取出来以构建目标任务,该选举机制至少考虑到Jenkins集群中Jenkins主节点上的Jenkins执行机的空闲个数和内存利用率。本公开还提供了一种Jenkins高可用的方法和系统。

Description

基于Jenkins的负载均衡方法及高可用系统
技术领域
本公开涉及计算机技术的领域,具体地,涉及一种基于Jenkins的负载均衡方法和装置、计算设备、计算机可读存储介质以及计算机程序产品。另外,还涉及一种Jenkins高可用的方法和系统。
背景技术
在相关技术中:
CN112559022A中公开了利用Kubernetes对Jenkins主从节点进行容器化部署,引入负载均衡动态扩缩容等功能,但是这种负载均衡只限于对Jenkins节点的管理,是Kubernetes本身提供的能力,无法基于构建任务的视角来选举适合的Jenkins节点去创建任务,当Jenkins节点出现异常时,将构建任务重新创建不支持采用选举的Jenkins节点;
CN1 12202858A中公开了通过预设的决策策略对运行态数据经过至少一个判断规则进行决策,根据决策结果对Jenkins集群进行修复处理后,将若干个执行Jenkins的请求分发到相应的Jenkins集群来执行。通过运行态数据来进行Jenkins集群的扩缩容,主要涉及Jenkins集群的管理,而不涉及针对构建任务选举Jenkins节点进行负载均衡处理。
另外,在相关技术中采用的以下方案也存在各自的缺点:
Jenkins一主一备模式。该方案是用两个Jenkins,一个处于使用状态,另外一个待使用状态,两个Jenkins共享同一个JOB。这样可以避免两个Jenkins同时对JOB操作,避免了文件双写的问题。但是单个Jenkins管理所有的JOB会造成单个Jenkins负载压力较大,另外,一个待使用状态的Jenkins长时间未被使用,会造成一定程度上的资源浪费。例如:Cloudbees提供了一个统一接入层,用户的身份认证(oauth或者ldap)在CJOC进行处理,然后分配到不同的Jenkins Master,其Jenkins的高可用采用的是一主一备共享目录的模式,同样存在上述缺点。
Openstack的Jenkins集群方案。其也被称为伪集群,是因为此时用户不是直接使用Jenkins来实现相关的功能,而是通过自动触发Gearman的方式将定制好的持续集成任务转换为Jenkins JOB实现的。这种方式对于大多数开发者而言,搭建和改造的成本过大,而且缺乏页面的支持,对于很多业务繁多复杂的企业而言,是无法接受的;
Jenkins+Apache Mesos+Marathon的技术方案。该方案是多个Jenkins Master共享资源池,类似于将Jenkins Master安装于Kubernetes容器云平台。该方案只是当Jenkins挂掉的时候可以用同样的方式快速恢复,属于单节点自恢复,其部署架构依然为单master结构,master无法动态扩容也无法集群化。当Jenkins服务访问出问题时,该方案无法调度其他Jenkins节点,从而影响Jenkins的高可用;
改造Jenkins的文件存储方式。该方案将JENKINS_HOME所有的.xml文件数据库化,该方案虽然可以让多个Jenkins Master操作同样的数据库,但可能需要修改Jenkins的底层逻辑,改造成本过大。
发明内容
有鉴于此,本公开提供了一种基于Jenkins的负载均衡方法和装置、计算设备、计算机可读存储介质以及计算机程序产品,另外,还提供了一种Jenkins高可用的方法和系统,以缓解、减轻、甚至消除上述问题。
根据本公开的一个方面,提供了一种基于Jenkins的负载均衡方法,其特征在于,所述方法包括:检查Jenkins集群的健康情况,创建目标任务并将所述目标任务分配至第一节点进行构建;当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点。
根据本公开的一些实施例,当满足以下条件中的任一种时,所述第一节点无法构建所述目标任务:执行所述目标任务的进程不存在;和Jenkins服务不可用。
根据本公开的一些实施例,当满足以下条件时,选取所述第一节点以构建所述目标任务:产生了新的构建任务编号。
根据本公开的一些实施例,所述目标参数集合还包括:CPU利用率、JOB个数、Jenkins健康度、Jenkins总构建时长以及请求响应时间。
根据本公开的一些实施例,所述根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,包括:分别计算各个候选节点的目标参数集合中各元素的加权和作为相应候选节点的优先度,根据各个候选节点的优先度,确定各个候选节点的优先度排名。
根据本公开的一些实施例,在计算加权和时,各个候选节点的目标参数集合中各元素的权重可以是预设的或者由Jenkins管理员指定。
根据本公开的一些实施例,所述多个候选节点与所述目标任务的业务类型对应。
根据本公开的另一个方面,提供了一种Jenkins高可用的方法,其特征在于,所述方法包括:检查Jenkins集群的健康情况,创建目标任务并将所创建的目标任务分配到第一节点中进行构建,并且将所述目标任务和相应的分配结果存储到数据库中,构建完成后删除所述目标任务;当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点;以及当迁移完成后,将与所述目标任务相关的构建信息存储到所述数据库中。
根据本公开的一些实施例,所述构建信息包括所述目标任务的构建任务编号、构建地址、构建号、构建节点、构建持续时间、构建开始时间、构建结束时间、构建状态、触发类型及触发者。新的构建任务编号可以触发负载均衡机制,示例性地,构建任务编号可以指拉取代码分支生成的编号。
根据本公开的一些实施例,所述Jenkins高可用的方法还包括:当迁移完成后,在所述数据库中增加相应的构建序号作为所述目标任务的构建标识号,并且根据所述分配结果删除所述第一节点上的所述目标任务。
根据本公开的又一个方面,提供了一种基于Jenkins的负载均衡装置,其特征在于,所述装置包括:健康检查模块,其被配置为检查Jenkins集群的健康情况,创建目标任务并将所述目标任务分配至第一节点进行构建;负载均衡模块,其被配置为当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点。
根据本公开的又一个方面,提供了一种Jenkins高可用的系统,其特征在于,所述系统包括:节点管理模块,用于监控Jenkin状态并相应地调整Jenkins集群;任务处理模块,其被配置为创建目标任务并且将所创建的目标任务分配到第一节点中进行构建,并且将所述目标任务和相应的分配结果存储到数据库中,构建完成后删除所述目标任务;任务调度模块,其被配置为当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点,当迁移完成后,将与所述目标任务相关的构建信息存储到所述数据库中。
根据本公开的又一个方面,提供了一种计算设备,其特征在于,所述计算设备包括:存储器,其被配置成存储计算机可执行指令;处理器,其被配置成当所述计算机可执行指令被处理器执行时执行根据本公开的前述方面提供的任一方法。
根据本公开的又一个方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行根据本公开的前述方面提供的任一方法。
根据本公开的又一个方面,提供了一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,当所述计算机可执行指令被处理器执行时,执行根据本公开的前述方面提供的任一方法。
根据本公开提供的基于Jenkins的负载均衡方法,可以检查Jenkins集群的健康情况,创建目标任务并将其分配至第一节点进行构建,当第一节点无法构建目标任务时,可以将目标任务迁移到第二节点中进行构建,从而在第一节点无法构建目标任务时保证目标任务能够被顺利地构建,其中第一节点和第二节点均为Jenkins集群中的Jenkins主节点,并且其中第二节点由Jenkins管理员指定或者通过选举机制被选取出来以构建目标任务,该选举机制至少考虑到Jenkins集群中的多个其他Jenkins主节点上的Jenkins执行机的空闲个数和内存利用率,有助于实现Jenkins的负载均衡。
根据在下文中所描述的实施例,本公开的这些和其他方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的技术方案的更多细节、特征和优点被公开,在附图中:
图1示意性示出了根据本公开的一些实施例的一种基于Jenkins的负载均衡方法的示例原理图;
图2示意性示出了图1中的基于Jenkins的负载均衡方法所采用的一种负载均衡算法的示例原理图;
图3示意性示出了根据本公开的一些实施例的一种Jenkins高可用的方法的示例流程图;
图4示意性示出了根据本公开的一些实施例的一种执行任务迁移的方法的示例流程图;
图5示意性示出了根据本公开的一些实施例的一种基于Jenkins的负载均衡装置的示例框图;
图6示意性示出了根据本公开的一些实施例的一种Jenkins高可用的系统的示例框图;
图7图示了示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备。
具体实施方式
下面将参照附图更详细地描述本公开的若干个实施例以便使得本领域技术人员能够实现本公开的技术方案。本公开的技术方案可以体现为许多不同的形式和目的,并且不应局限于本文所阐述的实施例。提供这些实施例是为了使得本公开的技术方案清楚完整,但所描述的实施例并不限定本公开的保护范围。
除非另有定义,本文中使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员所通常理解的相同含义。将进一步理解的是,诸如那些在通常使用的字典中定义的之类的术语应当被解释为具有与其在相关领域和/或本说明书上下文中的含义相一致的含义,并且将不在理想化或过于正式的意义上进行解释,除非本文中明确地如此定义。
图1示意性示出了根据本公开的一些实施例的一种基于Jenkins的负载均衡方法(为简洁起见,下文简称为负载均衡方法100)的示例原理图。负载均衡方法100包括健康检查步骤和负载均衡步骤,具体地,在健康检查步骤中,检查Jenkins集群的健康情况,创建目标任务并将其分配至第一节点进行构建;在负载均衡步骤中,当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过选举机制被选取出来以构建所述目标任务。
示例性地,可以通过选举机制选取所述第一节点,或者由Jenkins管理员指定所述第一节点。类似地,可以通过选举机制选取所述第二节点,或者由Jenkins管理员指定所述第二节点。所述选举机制包括:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点;根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名;以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点。例如,当通过选举机制选取所述第一节点时,可以利用所述选举机制从低负载队列中选取相应的节点作为所述第一节点。当通过选举机制选取所述第二节点时,可以利用所述选举机制从低负载队列中选取相应的节点作为所述第二节点。
示例性地,如图1所示,Jenkins集群包括k个健康的Jenkins主节点:N1,N2,……,Nk。目标任务最初被分配至第一节点N1进行构建(例如,可以由Jenkins管理员指定由第一节点N1,也可以采用选举机制来选取第一节点N1),当检查到第一节点N1无法构建所述目标任务时(例如,由于第一节点N1上的执行所述目标任务的进程不存在或者Jenkins服务不可用),选取Jenkins集群中适当的其他Jenkins主节点作为所述第二节点,并且将所述目标任务迁移到所述第二节点中进行构建,所述第二节点可以由Jenkins管理员指定或者通过以下选举机制被选取出来:
将Jenkins集群中除了第一节点N1之外的多个Jenkins主节点的集合作为候选节点集合(例如,由节点N2,……,Nk等(k-1)个Jenkins主节点组成的候选节点集合),获取候选节点集合中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,例如,候选节点集合中的候选节点N2对应的目标参数集合包括候选节点N2上的Jenkins执行机的空闲个数和内存利用率,而候选节点集合中的候选节点Nk对应的目标参数集合包括候选节点Nk上的Jenkins执行机的空闲个数和内存利用率;进而根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,例如,可以将各个候选节点的目标参数集合中各元素的加权和作为相应候选节点的优先度,进而根据优先度大小确定相应候选节点的优先度排名,将排名靠前的部分节点(例如,优先度排名在前M%的节点)作为低负载队列;最后,从低负载队列中选取任意一个候选节点作为所述第二节点。需要说明的是,在一些实施例中,低负载队列中可以仅有一个候选节点,在这种情况下,可以将优先度最高的候选节点作为所述第二节点。例如,当候选节点N2上的Jenkins执行机的空闲个数大于N1时,或者执行机的空闲个数相同但是N2的内存利用率小于N1时(即候选节点N2的优先度最高时),可以将候选节点N2作为所述第二节点。
当选举得到所述第二节点之后,便可以将所述目标任务迁移到所述第二节点(例如,候选节点N2)中进行构建,从而在所述第一节点无法构建所述目标任务时保证所述目标任务能够被顺利地构建。另外,所述第二节点可以通过上述选举机制被选取出来以构建所述目标任务,由于所述选举机制至少考虑到Jenkins集群中的多个其他Jenkins主节点上的Jenkins执行机的空闲个数和内存利用率,有助于实现Jenkins的负载均衡。
需要说明的是,在一些实施例中,在利用上述候选节点集合选取所述第二节点时,上述候选节点集合的组成可以是和所述目标任务的任务类型相关的,例如,针对资产管理系统,可以从节点N2(对应于Jenkins 2)和节点N3(对应于Jenkins 3)中选取合适的节点作为所述第二节点以构建所述目标任务;针对财务系统,可以从节点N3(对应于Jenkins 3)和节点N4(对应于Jenkins 4)中选取合适的节点作为所述第二节点以构建所述目标任务,从而支持针对Jenkins集群的业务切分功能。另外,所述第二节点可以由Jenkins管理员指定,从而可以防止由于网络切换、硬件更换等问题引发的Jenkins Master服务故障(在这种情况下,可以向Jenkins管理员发消息告警,以通过人工方式指定待迁移的节点)。
在一些实施例中,所述目标参数集合还包括:CPU利用率、JOB个数、Jenkins健康度、Jenkins总构建时长以及请求响应时间,从而在负载均衡方法中考虑到Jenkins主节点的更加全面的信息,以实现更好的负载均衡效果。下面结合图2来进一步说明这种方法的原理。如图2所示,示例性地,候选节点集合由节点N2,……,Nk等(k-1)个Jenkins主节点组成,对于候选节点集合中的任意一个Jenkins主节点Ni来说,与其对应的目标参数集合包括:Jenkins主节点Ni上的Jenkins执行机的空闲个数、内存利用率、CPU利用率、JOB个数、Jenkins健康度、Jenkins总构建时长以及请求响应时间。其中,采用CPU利用率和内存利用率是为了统计当前可用的Jenkins Master的资源消耗程度、Jenkins健康度是指自身的插件安装的正确率、Jenkins执行机的空闲个数是指构建机的空余数(其直接影响繁忙的程度)。另外,由于Jenkins不宜采用过多的JOB个数,所以JOB个数也是一个衡量的因素。
示例性地,Jenkins主节点Ni的优先度Pi可以使用以下公式来计算:
Pi=R1*Executor(Ni)+R2*Response(Ni)+R3*Memory(Ni)+R4*CPU(Ni)+R5*JOB_total(Ni)+R6*Healthy(Ni)+R7*Time_total(Ni),
其中,Executor(Ni)表示Jenkins主节点Ni上的Jenkins执行机的空闲个数,Response(Ni)表示Jenkins主节点Ni的请求响应时间,Memory(Ni)表示Jenkins主节点Ni的内存利用率,CPU(Ni)表示Jenkins主节点Ni的CPU利用率,JOB_total(Ni)表示Jenkins主节点Ni上的JOB个数,Healthy(Ni)表示Jenkins健康度,Time_total(Ni)表示Jenkins主节点Ni上的Jenkins总构建时长。R1、R2、R3、R4、R5、R6以及R7分别表示Jenkins主节点Ni上的Jenkins执行机的空闲个数、请求响应时间、内存利用率、CPU利用率、JOB个数、Jenkins健康度以及Jenkins总构建时长的权重。需要说明的是,这些权重可以是预设的或者由Jenkins管理员指定(例如,经由相应的管理界面或接口),可以根据实际需要或者不同的业务类型来灵活设定这些权重值,本公开对此不作限定。需要说明的是,可以设置阈值,例如设置Jenkins健康度低于0.8的节点或者请求响应时间超过20秒的节点的权值为零,从而退出选举。除了这些参数外,根据实际需要,在计算相应节点的优先度时,还可以考虑其他参数。
本领域技术人员应理解,在使用上式计算相应节点的优先度时,根据参数取值大小,可以进行预先的归一化处理。示例性,某个Jenkins主节点上的Jenkins执行机的空闲个数可能是15,而内存利用率为50%,则在利用这两个参数计算相应节点的优先度的过程中可以对这两个参数进行归一化处理。
需要说明的是,在一些实施例中,如果存在部署在不同地区的多个Jenkins节点,则在这种情况下某个节点的请求时长可能是更加重要的参数,例如香港开发者想进行构建,请求访问一个Jenkins云平台,则请求时长短的Jenkins节点应当被优先考虑(在这种情况下,请求时长对应的权重应当更高)。
另外,需要说明的是,可以从数据库获取节点监控的上述数据(即相应Jenkins主节点上的Jenkins执行机的空闲个数、请求响应时间、内存利用率、CPU利用率、JOB个数、Jenkins健康度以及Jenkins总构建时长)。示例性地,可以采用周期性获取节点数据和MA(移动平均线)方式来更加准确地反映节点状态,从而有效地解决负载数据剧烈的抖动现象。其中,MA移动平均线的计算公式如下:
MA=(S1+S2+…+Sn)/n,
其中,n为移动的平均周期,Sn为最近第N次获取的节点负载数据,MA为当前节点的负载数据。获取节点数据的周期可以在构建任务低负载的时间周期设置更长的时间(例如周末、节假日设置10分钟一次),在构建任务高负载的情况设置较短时间(例如15秒一次)。
还需要说明的是,尽管在前述实施例中通过Jenkins执行机的空闲个数和内存利用率来计算相应节点的优先度,或者通过Jenkins执行机的空闲个数、内存利用率、CPU利用率、JOB个数、Jenkins健康度、Jenkins总构建时长以及请求响应时间来计算相应节点的优先度,但是本领域技术人员应理解,在计算相应节点的优先度时,在考虑Jenkins执行机的空闲个数和内存利用率的同时,可以从CPU利用率、JOB个数、Jenkins健康度、Jenkins总构建时长以及请求响应时间中选取任意一个或多个参数(而非如上文实施例所描述的、考虑所有这些参数),示例性地,可以通过Jenkins执行机的空闲个数、内存利用率、CPU利用率、JOB个数以及Jenkins健康度这五个参数来计算相应节点的优先度(例如,将这些参数的加权和作为相应节点的优先度)。
图3示意性示出了根据本公开的一些实施例的一种Jenkins高可用的方法(为简洁起见,下文简称为高可用方法300)的示例流程图。如图3所示,高可用方法300包括步骤310、步骤320、步骤330以及步骤340。
具体地,在步骤310,可以对Jenkins集群进行健康检查。在步骤320,可以创建目标任务并且将所创建的目标任务分配到第一节点中进行构建,并且将所述目标任务和相应的分配结果存储到数据库中,所述第一节点为Jenkins集群中的Jenkins主节点,构建完成后删除所述目标任务。在步骤330进行Jenkins Master的选举操作,示例性地,可以使用上述负载均衡方法100中的选举机制来选取得到Jenkins集群中的其他Jenkins主节点(即上述第二节点),进而在步骤340中将所述目标任务迁移到所述第二节点中进行构建,当迁移完成后,可以将与所述目标任务相关的构建信息存储到所述数据库中。
在一些实施例中,所述构建信息包括所述目标任务的构建任务编号、构建地址、构建号、构建节点、构建持续时间、构建开始时间、构建结束时间、构建状态、触发类型及触发者。
在一些实施例中,当迁移完成后,可以在所述数据库中增加相应的构建序号作为所述目标任务的构建标识号,并且根据所述分配结果删除所述第一节点上的所述目标任务。
示例性地,当迁移完成之后,可以将所述目标任务的BUILD_URL(即所述构建地址)写入所述数据库中,然后在所述数据库中的Build_Number列中自增一个值(即所述构建序号),该值就是真正的JOB的构建ID(即所述构建标识号)。然后,将异常Jenkins节点(即所述第一节点)上的该JOB内容删除,从而使得JOB与最近使用的Jenkins节点绑定到一起。虽然迁移后在Jenkins Master上看到的构建ID都是从零开始,但是所述数据库中记录的BUILD_URL有所有使用过的Jenkins以及每个Jenkins上的构建ID的值,并且记录有整体的Build_Number值,该值是构建任务的历史构建数之和,便于在WEB层进行业务展示。示例性地:JOB1在Jenkins 1上构建ID从1-20,JOB 1迁移到Jenkins 2后,Jenkins 1上的构建任务将被删除,若JOB 1在Jenkins 2上构建后生成的构建ID是从1-30,则JOB 1在WEB层进行业务展示的总构建次数是20+30=50。
图4示意性示出了根据本公开的一些实施例的一种执行任务迁移的方法(为简洁起见,下文简称为任务迁移方法400)的示例流程图。如图4所示,任务迁移方法400包括步骤410、步骤420、步骤430、步骤440。
具体地,在步骤410,获取构建任务要迁移到的Jenkins Master(由管理员指定或者通过选举机制得到),触发选举机制有两种情况:一种是当发现构建任务已绑定的第一节点不可用、一种是产生新的构建任务编号。在步骤420,调用Jenkins API创建新的JOB。在步骤430,将所述目标任务的构建信息写入数据库。示例性地,构建信息中的部分数据可以通过以下方式写入数据库:在所述数据库中的Build Number列中自增一个值(即所述构建序号),该值就是真正的JOB的构建ID(即所述构建标识号);以及在所述数据库中增加一列“触发类型”,以记录迁移的方式为人工或者选举机制(例如,可以分别将这两种方式标记为auto或者manual)。最后,在步骤440,构建完成后删除所述目标任务,以节省磁盘空间。
图5示意性示出了根据本公开的一些实施例的一种基于Jenkins的负载均衡装置(为简洁起见,下文简称为负载均衡装置500)的示例框图。如图5所示,负载均衡装置500包括健康检查模块510和负载均衡模块520。
具体地,健康检查模块510可以被配置为:检查Jenkins集群的健康情况,创建目标任务并将所述目标任务分配至第一节点进行构建;负载均衡模块520可以被配置为:当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点。
应理解,负载均衡装置500可以以软件、硬件或软硬件相结合的方式实现。负载均衡装置500中的多个不同模块均可以在同一软件或硬件结构中实现,或者一个模块可以由多个不同的软件或硬件结构实现。
此外,负载均衡装置500可以用于实施前文所描述的负载均衡方法100,其相关细节均已经在前文中详细描述,为简洁起见,在此不再重复。负载均衡装置500可以具有与关于前述负载均衡方法100描述的相同的特征和优势。
图6示意性示出了根据本公开的一些实施例的一种Jenkins高可用的系统600的示例框图。如图6所示,Jenkins高可用的系统600包括节点管理模块610、任务处理模块620以及任务调度模块630。
具体地,节点管理模块610可以用于监控Jenkin状态并相应地调整Jenkins集群。示例性地,可以将Jenkins集群的节点都容器化部署在Kubernetes上,通过Kubernetes的接口对Jenkins集群进行动态扩缩容;任务处理模块620可以被配置为:创建目标任务并且将所创建的目标任务分配到第一节点中进行构建,并且将所述目标任务和相应的分配结果存储到数据库中,构建完成后删除所述目标任务;任务调度模块630可以被配置为:当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点,当迁移完成后,将与所述目标任务相关的构建信息存储到所述数据库中。
图7图示了示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备700。计算设备700可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其他合适的计算设备或计算系统。上述负载均衡装置500以及Jenkins高可用的系统600中的任意一种或多种可以采取计算设备700的形式。替换地,负载均衡装置500以及Jenkins高可用的系统600中的任意一种或多种可以以应用716的形式被实现为计算机程序。
如图7所示的示例计算设备700包括彼此通信耦合的处理系统711、一个或多个计算机可读介质712以及一个或多个I/O接口713。尽管未示出,但是计算设备700还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
处理系统711代表使用硬件执行一个或多个操作的功能。因此,处理系统711被图示为包括可被配置为处理器、功能块等的硬件元件714。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其他逻辑器件。硬件元件714不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质712被图示为包括存储器/存储装置715。存储器/存储装置715表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置715可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置715可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质712可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O接口713代表允许用户使用各种输入设备向计算设备700输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如,显示器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备700可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备700还包括应用716。应用716可以例如是负载均衡装置500或者Jenkins高可用的系统600的软件实例,并且与计算设备700中的其他元件相组合地实现本文描述的技术。
本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、元素、组件、数据结构等。本文所使用的术语“模块”,“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备700访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备700的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其他传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其他无线介质的无线介质。
如前所述,硬件元件714和计算机可读介质712代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其他实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其他程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件714体现的一个或多个指令和/或逻辑。计算设备700可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件714,可以至少部分地以硬件来实现将模块实现为可由计算设备700作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备700和/或处理系统711)可执行/可操作以实现本文所述的技术、模块和示例。
在各种实施方式中,计算设备700可以采用各种不同的配置。例如,计算设备700可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备700还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备700还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
本文描述的技术可以由计算设备700的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台722而在“云”720上全部或部分地实现。
云720包括和/或代表用于资源724的平台722。平台722抽象云720的硬件(例如,服务器)和软件资源的底层功能。资源724可以包括在远离计算设备700的服务器上执行计算机处理时可以使用的应用和/或数据。资源724还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台722可以抽象资源和功能以将计算设备700与其他计算设备连接。平台722还可以用于抽象资源的分级以提供遇到的对于经由平台722实现的资源724的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统700内。例如,功能可以部分地在计算设备700上以及通过抽象云720的功能的平台722来实现。
应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其他功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
将理解的是,尽管第一、第二、第三等术语在本文中可以用来描述各种设备、元件、部件或部分,但是这些设备、元件、部件或部分不应当由这些术语限制。这些术语仅用来将一个设备、元件、部件或部分与另一个设备、元件、部件或部分相区分。
尽管已经结合一些实施例描述了本公开,但是其不旨在被限于在本文中所阐述的特定形式。相反,本公开的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其他元件,并且术语“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。
应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其他功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
本公开提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令在被执行时实现上述的基于Jenkins的负载均衡方法或者Jenkins高可用的方法。
本公开提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述各种可选实现方式中提供的基于Jenkins的负载均衡方法或者Jenkins高可用的方法。
通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除其他元件或步骤,并且“一”或“一个”不排除多个。在相互不同的从属权利要求中记载某些措施的纯粹事实并不指示这些措施的组合不能被有利地使用。

Claims (15)

1.一种基于Jenkins的负载均衡方法,其特征在于,所述方法包括:
检查Jenkins集群的健康情况,创建目标任务并将所述目标任务分配至第一节点进行构建;
当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:
获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,
根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及
根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点。
2.根据权利要求1所述的方法,其特征在于,当满足以下条件中的任一种时,所述第一节点无法构建所述目标任务:
执行所述目标任务的进程不存在;和
Jenkins服务不可用。
3.根据权利要求1所述的方法,其特征在于,当满足以下条件时,选取所述第一节点以构建所述目标任务:
产生了新的构建任务编号。
4.根据权利要求1所述的方法,其特征在于,所述目标参数集合还包括:CPU利用率、JOB个数、Jenkins健康度、Jenkins总构建时长以及请求响应时间。
5.根据权利要求1所述的方法,其特征在于,所述根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,包括:
分别计算各个候选节点的目标参数集合中各元素的加权和作为相应候选节点的优先度,根据各个候选节点的优先度,确定各个候选节点的优先度排名。
6.根据权利要求5所述的方法,其特征在于,在计算加权和时,各个候选节点的目标参数集合中各元素的权重可以是预设的或者由Jenkins管理员指定。
7.根据权利要求1所述的方法,其特征在于,所述多个候选节点与所述目标任务的业务类型对应。
8.一种Jenkins高可用的方法,其特征在于,所述方法包括:
检查Jenkins集群的健康情况,创建目标任务并将所创建的目标任务分配到第一节点中进行构建,将与所述目标任务相关的构建信息存储到数据库中并在构建完成后删除所述目标任务;
当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点;以及
当迁移完成后,将与所述目标任务相关的构建信息存储到所述数据库中。
9.根据权利要求8所述的方法,其特征在于,所述构建信息包括所述目标任务的构建任务编号、构建地址、构建号、构建节点、构建持续时间、构建开始时间、构建结束时间、构建状态、触发类型及触发者。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:当迁移完成后,在所述数据库中增加相应的构建序号作为所述目标任务的构建标识号,并且根据所述分配结果删除所述第一节点上的所述目标任务。
11.一种基于Jenkins的负载均衡装置,其特征在于,所述装置包括:
健康检查模块,其被配置为检查Jenkins集群的健康情况,创建目标任务并将所述目标任务分配至第一节点进行构建;
负载均衡模块,其被配置为当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点。
12.一种Jenkins高可用的系统,其特征在于,所述系统包括:
节点管理模块,用于监控Jenkin状态并相应地调整Jenkins集群;
任务处理模块,其被配置为创建目标任务并且将所创建的目标任务分配到第一节点中进行构建,并且将所述目标任务和相应的分配结果存储到数据库中,构建完成后删除所述目标任务;
任务调度模块,其被配置为当所述第一节点无法构建所述目标任务时,将所述目标任务迁移到第二节点中进行构建,其中所述第一节点和所述第二节点均为Jenkins集群中的Jenkins主节点,并且其中所述第一节点和所述第二节点由Jenkins管理员指定或者通过以下选举机制被选取出来以构建所述目标任务:获取多个候选节点中各个候选节点的目标参数集合,所述目标参数集合至少包括Jenkins执行机的空闲个数和内存利用率,所述多个候选节点是所述Jenkins集群中的健康的Jenkins主节点,根据各个候选节点的目标参数集合,确定各个候选节点的优先度排名,以及根据各个候选节点的优先度排名确定低负载队列,从低负载队列中选取相应的节点作为所述第一节点或所述第二节点,当迁移完成后,将与所述目标任务相关的构建信息存储到所述数据库中。
13.一种计算设备,其特征在于,所述计算设备包括:
存储器,其被配置成存储计算机可执行指令;
处理器,其被配置成当所述计算机可执行指令被处理器执行时执行根据权利要求1至10中的任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行根据权利要求1至10中的任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,其中所述计算机可执行指令被处理器执行时执行根据权利要求1至10中的任一项所述的方法。
CN202310098216.5A 2023-01-20 2023-01-20 基于Jenkins的负载均衡方法及高可用系统 Pending CN116166432A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310098216.5A CN116166432A (zh) 2023-01-20 2023-01-20 基于Jenkins的负载均衡方法及高可用系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310098216.5A CN116166432A (zh) 2023-01-20 2023-01-20 基于Jenkins的负载均衡方法及高可用系统

Publications (1)

Publication Number Publication Date
CN116166432A true CN116166432A (zh) 2023-05-26

Family

ID=86421495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310098216.5A Pending CN116166432A (zh) 2023-01-20 2023-01-20 基于Jenkins的负载均衡方法及高可用系统

Country Status (1)

Country Link
CN (1) CN116166432A (zh)

Similar Documents

Publication Publication Date Title
US10360199B2 (en) Partitioning and rebalancing data storage
US11614977B2 (en) Optimizing clustered applications in a clustered infrastructure
CN108369544B (zh) 计算系统中延期的服务器恢复方法和设备
US10356150B1 (en) Automated repartitioning of streaming data
US9448824B1 (en) Capacity availability aware auto scaling
CN110825704B (zh) 一种读数据方法、写数据方法及服务器
US11330078B1 (en) Method and system for managing updates of a data manager
CN110413369B (zh) 用于虚拟化环境中的备份的系统和方法
US10754368B1 (en) Method and system for load balancing backup resources
US11561777B2 (en) System and method for intelligent update flow across inter and intra update dependencies
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
CN111949442B (zh) 用于可扩展备份服务的系统和方法
US11126504B2 (en) System and method for dynamic configuration of backup agents
CN103685359B (zh) 数据处理方法及装置
CN116166432A (zh) 基于Jenkins的负载均衡方法及高可用系统
US11157322B2 (en) Hyper-converged infrastructure (HCI) ephemeral workload/data provisioning system
US10942779B1 (en) Method and system for compliance map engine
CN110022348B (zh) 用于动态备份会话的系统和方法
US11531592B1 (en) Method and system for determining favorability of upgrade window
US11599352B2 (en) Method of creating an intelligent upgrade flow for a heterogeneous data center
JP7332249B2 (ja) 移行先決定プログラム、装置、及び方法
US11922216B2 (en) Compute resources management via virtual service contexts (VSC) in compute clusters
US11768704B2 (en) Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling
US11816088B2 (en) Method and system for managing cross data source data access requests
JP2021077213A (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