异构集群混合调度与容灾的任务执行方法、装置、设备及存储介质与流程

摘要: 本技术涉及持续集成,尤其涉及异构集群混合调度与容灾的任务执行方法、装置、设备及存储介质。背景技术:1、持续集成要求开发人员频繁地将代码变更合并至主干分支,并通过...
异构集群混合调度与容灾的任务执行方法、装置、设备及存储介质与流程

本技术涉及持续集成,尤其涉及异构集群混合调度与容灾的任务执行方法、装置、设备及存储介质。

背景技术:

1、持续集成要求开发人员频繁地将代码变更合并至主干分支,并通过自动化构建和测试对代码变更进行验证,以尽早发现集成错误。随着企业软件开发规模的扩大,持续集成任务的数量和复杂度持续上升,对持续集成系统的执行能力和稳定性提出了更高的要求。

2、持续集成任务的执行需要依赖构建集群提供的计算资源和执行环境。不同架构的处理器在指令集、执行效率和生态支持方面存在本质差异,单一架构的构建集群无法满足全部架构类型的持续集成任务执行需求。因此,在实际应用中,企业通常部署多种架构类型的构建集群,例如同时部署基于x86架构的构建集群和基于arm(advanced risc machine,进阶精简指令集机器)架构的构建集群,不同架构的构建集群分别承载对应架构类型的持续集成任务。

3、在异构集群环境下,多个架构的构建集群同时运行,共同承担持续集成任务的执行工作。然而,现有技术在向构建集群分配持续集成任务时,调度器仅依据预设的静态规则(例如轮询或固定权重)选择目标集群,缺乏对构建集群当前运行状态的实时感知能力。当某一构建集群因故障或负载过高而实际已无法正常执行任务时,调度器无法感知该异常状态,仍然会持续向该故障集群分配新的持续集成任务,导致这些新分配的任务因集群不可用而无法执行,造成任务中断。

4、因此,目前方案在异构集群环境中执行持续集成任务时,任务在运行过程中容易因异常情况而中断的技术问题。

技术实现思路

1、本技术的主要目的在于提供一种异构集群混合调度与容灾的任务执行方法、装置、设备及存储介质,旨在解决在异构集群环境中执行持续集成任务时,任务在运行过程中容易因异常情况而中断的技术问题。

2、为实现上述目的,本技术提出一种异构集群混合调度与容灾的任务执行方法,所述异构集群混合调度与容灾的任务执行方法包括:

3、获取持续集成任务、所述持续集成任务对应的架构类型标签,已部署的多个可用构建集群以及调度链路的运行状态;

4、根据所述架构类型标签,将所述持续集成任务分配至对应的逻辑任务队列,得到隔离任务;

5、根据所述隔离任务的所述架构类型标签,从所述可用构建集群中确定目标构建集群;

6、将所述隔离任务分配至所述目标构建集群,得到已分配任务;

7、根据所述运行状态,对所述已分配任务进行容灾配置,得到容灾配置结果,以根据所述容灾配置结果,执行所述已分配任务。

8、在一实施例中,所述根据所述运行状态,对所述已分配任务进行容灾配置,得到容灾配置结果,以根据所述容灾配置结果,执行所述已分配任务,包括:

9、获取独立消息队列、独立线程池、所述运行状态中的集群运行状态、中间件运行状态以及状态机运行状态;

10、在所述集群运行状态为异常时,根据所述可用构建集群迁移所述已分配任务,得到第一配置结果;

11、在所述中间件运行状态为失效时,根据所述可用构建集群接管所述已分配任务,得到第二配置结果;

12、根据所述状态机运行状态,通过所述独立消息队列和所述独立线程池处理所述已分配任务,得到第三配置结果;

13、根据所述第一配置结果、所述第二配置结果和所述第三配置结果中的至少一项,确定容灾配置结果,以根据所述容灾配置结果,执行所述已分配任务。

14、在一实施例中,所述在所述中间件运行状态为失效时,根据所述可用构建集群接管所述已分配任务,得到第二配置结果,包括:

15、在所述中间件运行状态为失效时,获取各所述可用构建集群的权重配置;

16、根据所述权重配置确定备用调度策略,并根据所述备用调度策略,从所述可用构建集群中确定候选构建集群;

17、将所述已分配任务分配至所述候选构建集群,得到第二配置结果。

18、在一实施例中,所述根据所述状态机运行状态,通过所述独立消息队列和所述独立线程池处理所述已分配任务,得到第三配置结果,包括:

19、根据所述状态机运行状态,获取各所述可用构建集群的状态机事件;

20、将所述状态机事件分别分配至对应的所述独立消息队列中,得到独立状态机事件;

21、通过所述独立线程池,处理所述独立状态机事件,得到第三配置结果。

22、在一实施例中,所述根据所述架构类型标签,将所述持续集成任务分配至对应的逻辑任务队列,得到隔离任务,包括:

23、根据所述架构类型标签,确定对应的逻辑任务队列;

24、获取所述逻辑任务队列对应的触发开关和限流阈值;

25、在所述触发开关为开启状态时,根据所述限流阈值,将所述持续集成任务分配至所述逻辑任务队列,得到隔离任务。

26、在一实施例中,所述根据所述隔离任务的所述架构类型标签,从所述可用构建集群中确定目标构建集群,包括:

27、根据所述隔离任务的所述架构类型标签,从所述可用构建集群中确定与所述架构类型标签匹配的候选构建集群;

28、获取各所述候选构建集群的权重因子;

29、从各所述候选构建集群中选择所述权重因子最大的候选构建集群作为目标构建集群。

30、在一实施例中,所述获取持续集成任务、所述持续集成任务对应的架构类型标签,已部署的多个可用构建集群以及调度链路的运行状态,包括:

31、获取持续集成请求,从所述持续集成请求中解析得到持续集成任务和所述持续集成任务对应的架构类型标签;

32、获取已部署的多个可用构建集群,并持续获取各所述可用构建集群的心跳信息,其中,所述心跳信息包含负载状态、健康状态以及可用区标识;

33、在所述健康状态为正常时,将对应的可用构建集群的集群运行状态标记为正常;

34、在所述健康状态为异常或在预设时间未获取到所述心跳信息时,将对应的可用构建集群的集群运行状态标记为异常;

35、获取中间件运行状态和状态机运行状态,并将所述集群运行状态、所述中间件运行状态以及所述状态机运行状态作为调度链路的运行状态。

36、此外,为实现上述目的,本技术还提出一种异构集群混合调度与容灾的任务执行装置,所述异构集群混合调度与容灾的任务执行装置包括:

37、数据获取模块,用于获取持续集成任务、所述持续集成任务对应的架构类型标签,已部署的多个可用构建集群以及调度链路的运行状态;

38、任务隔离模块,用于根据所述架构类型标签,将所述持续集成任务分配至对应的逻辑任务队列,得到隔离任务;

39、集群确定模块,用于根据所述隔离任务的所述架构类型标签,从所述可用构建集群中确定目标构建集群;

40、任务分配模块,用于将所述隔离任务分配至所述目标构建集群,得到已分配任务;

41、容灾配置模块,用于根据所述运行状态,对所述已分配任务进行容灾配置,得到容灾配置结果,以根据所述容灾配置结果,执行所述已分配任务。

42、此外,为实现上述目的,本技术还提出一种异构集群混合调度与容灾的任务执行设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的异构集群混合调度与容灾的任务执行方法的步骤。

43、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的异构集群混合调度与容灾的任务执行方法的步骤。

44、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的异构集群混合调度与容灾的任务执行方法的步骤。

45、本技术提出的一个或多个技术方案,至少具有以下技术效果:

46、本技术在将任务分配至目标构建集群之后,并非直接等待任务执行完成,而是进一步获取构建集群、中间件及状态机等多环节的运行状态,并根据所获取的运行状态对已分配任务进行容灾配置。通过该容灾配置,使得任务在分配至构建集群后仍具备应对执行过程中各类异常情况的能力,避免因执行环境异常而导致任务中断。因此,任务在分配至构建集群后能够持续执行直至完成,解决了现有技术中任务在多集群环境下容易中断的技术问题。