一种支持持续集成的软件构建流水线调度系统

摘要: 本发明属于计算机软件领域,具体涉及一种支持持续集成的软件构建流水线调度系统。背景技术:1、在现代软件工程领域,持续集成作为提升软件质量和开发效率的核心实践,已被...
一种支持持续集成的软件构建流水线调度系统

本发明属于计算机软件领域,具体涉及一种支持持续集成的软件构建流水线调度系统。

背景技术:

1、在现代软件工程领域,持续集成作为提升软件质量和开发效率的核心实践,已被广泛应用于各类软件开发项目中。持续集成通过在代码提交后自动执行构建、测试和分析等操作,实现了软件质量的快速反馈,显著缩短了从代码变更到集成验证的周期。随着敏捷开发理念的深入人心和devops实践的推广,持续集成已成为现代软件交付流水线不可或缺的关键环节。

2、软件构建流水线作为持续集成的核心载体,承担着自动化构建任务调度与执行的重要职责。构建流水线通过将代码编译、单元测试、静态分析、制品打包等环节串联成自动化流程,实现了软件开发过程的高度自动化和可追溯性。在多分支开发场景下,如何高效地调度有限的构建资源、优化任务执行顺序、平衡负载分配,成为持续集成系统面临的核心挑战。

3、传统调度算法多采用静态优先级或简单轮询策略,难以适应构建任务在数量、类型和资源需求上的动态变化,导致构建资源利用率低下且任务等待时间不稳定。其次,当多分支并行开发时,构建资源竞争激烈,现有系统缺乏智能的资源分配策略,无法根据任务紧迫程度和历史执行数据进行自适应调整。此外,构建失败后的重试机制与资源释放策略缺乏联动,容易造成资源死锁或长时间占用问题。更重要的是,现有构建流水线调度系统对多维度约束条件(如特定构建代理能力要求、任务间依赖关系、环境资源限制等)的协同处理能力不足,在复杂应用场景下难以实现全局最优的调度方案。

技术实现思路

1、本发明针对上述背景技术中所存在的技术问题,提出一种支持持续集成的软件构建流水线调度系统。以解决现有技术中存在的调度算法适应性差、资源分配智能化不足、重试机制与资源释放缺乏联动以及多约束条件协同处理能力薄弱的技术问题。

2、为了达到上述目的,本发明采用的技术方案为:包括任务队列管理模块、构建代理资源池、动态优先级评估引擎、资源感知型调度引擎、约束协同优化模块、反馈式资源管理模块和调度决策中心;

3、所述任务队列管理模块用于接收来自代码仓库的构建触发事件,并将构建任务按照预设格式进行标准化封装后存入任务等待队列;

4、所述构建代理资源池用于管理所有可用构建代理的状态信息;

5、所述动态优先级评估引擎用于对任务等待队列中的各构建任务进行多维度优先级计算;

6、所述资源感知型调度引擎用于根据构建任务的资源需求与构建代理的当前可用资源进行智能匹配;

7、所述约束协同优化模块用于处理构建任务之间的依赖关系约束和构建环境的资源限制约束;

8、所述反馈式资源管理模块用于在构建任务执行完成后进行资源释放,并在构建任务失败时触发重试与资源联动机制;

9、所述调度决策中心用于综合各模块的输出信息进行最终的调度决策并生成任务分配指令;

10、所述资源感知型调度引擎的处理流程包括过滤筛选阶段、适配度计算阶段、负载均衡考量阶段和动态资源预留阶段;

11、所述过滤筛选阶段用于过滤掉不满足任务基本要求的构建代理;

12、所述适配度计算阶段用于对候选构建代理计算资源适配度评分;

13、所述负载均衡考量阶段额外考量构建代理的当前任务队列长度,优先选择队列长度较短的构建代理;

14、所述动态资源预留阶段用于在资源紧张时为高优先级任务预留足够的执行资源,确保关键任务的及时执行;

15、所述资源适配度评分的计算采用多维度加权融合算法,综合考量负载匹配程度、质量信誉水平、网络拓扑距离和环境亲和特性四个维度;其中,负载匹配程度通过负载预测单元的预测结果进行调整更新实现。

16、作为优选,所述任务队列管理模块接收构建触发事件后,将构建任务进行标准化封装,封装内容包括任务唯一标识、源代码版本信息、构建类型标识、所需构建环境规格、任务依赖关系图谱以及历史执行记录索引;

17、任务队列管理模块中任务队列支持任务优先级的手动调整功能,允许管理人员对特定任务的优先级进行人工干预。

18、作为优选,所述构建代理资源池管理的构建代理状态信息包括当前负载系数、可用资源容量、支持构建类型集合、历史任务完成质量评分以及当前正在执行的任务标识;构建代理资源池持续监测各构建代理的资源使用情况并按固定时间间隔更新状态快照;

19、所述构建代理资源池支持动态扩容和缩容机制,根据等待任务数量持续监测并自动触发构建代理实例的扩容或缩容流程。

20、作为优选,所述动态优先级评估引擎综合考量任务紧迫度因素、资源争用程度因素、历史等待时长因素、任务失败重试次数因素以及任务所属项目的业务权重因素;

21、将各因素分别赋予预设的权重系数并进行加权求和,生成各任务的综合优先级评分,所述加权求和中权重调整包括耦合动态调权操作,基于运行时上下文信息动态调整各因素的耦合权重系数。

22、作为优选,动态优先级评估引擎还集成有自适应学习单元和策略优化单元;

23、自适应学习单元定期分析历史调度决策的执行效果并根据分析结果自动调整各因素的权重系数,以实现调度策略的持续优化;

24、策略优化单元采用深度q网络算法,以任务平均等待时间、资源利用率和任务完成率为优化目标,实现权重系数的在线学习和动态调整。

25、作为优选,所述约束协同优化模块通过构建任务依赖有向无环图进行依赖关系建模,图中节点表示构建任务,边表示任务间的执行顺序依赖关系;通过预设的资源配额策略进行资源限制约束表达,并且在调度决策过程中对所有约束条件进行一致性检验,仅生成满足全部约束的调度方案。

26、作为优选,所述约束协同优化模块在一致性检验的基础上,扩展基于约束满足度优化的调度方案生成能力,该能力将约束满足度量化为可优化的目标函数,实现调度方案的帕累托最优搜索。

27、作为优选,在通过构建任务依赖有向无环图进行依赖关系建模之后还包括动态依赖关系发现单元持续采集任务运行日志、文件或资源访问记录、任务执行时间序列相关性,通过置信度模型识别未配置的隐式依赖;当隐式依赖置信度超过阈值后,自动将该依赖关系推送至依赖关系建模。

28、作为优选,所述反馈式资源管理模块在构建任务执行完成后立即回收任务占用的构建代理资源并将构建代理状态更新为空闲;在构建任务失败时根据预设的重试策略确定是否需要重试,并根据构建代理的连续失败次数决定是否强制更换构建代理;反馈式资源管理模块还包括维护资源占用超时计时器,对长时间处于执行状态但未收到完成信号的任务强制终止并回收资源。

29、作为优选,所述调度决策中心采用分阶段决策策略,首先基于约束满足性判断筛选出全部可行调度方案,然后从可行方案中选择综合优先级评分与资源适配度评分加权求和值最高的方案作为最终执行方案;所述调度决策中心为全局总控,所有模块不直连通信,统一通过内部消息总线完成消息推送和状态同步。

30、与现有技术相比,本发明的优点和积极效果在于:

31、本发明通过动态优先级评估引擎实现了构建任务优先级的多维度自适应计算,综合考量任务紧迫度、资源争用程度、历史等待时长、失败重试次数和业务权重等因素,使得调度决策能够根据实际运行状态动态调整,显著提升了系统对负载变化的适应能力,克服了传统静态优先级策略灵活性不足的技术缺陷。

32、本发明通过资源感知型调度引擎实现了构建任务与构建代理之间的智能匹配,在进行调度决策时充分考量构建代理的当前负载、能力匹配度和历史执行质量,并额外引入队列长度因素实现负载均衡,有效提升了构建资源的整体利用率,降低了任务等待时间。

33、本发明通过约束协同优化模块将多维度约束条件进行统一建模处理,通过依赖关系有向无环图确保任务执行顺序的正确性,通过资源配额策略实现并发数量和环境使用的控制,通过一致性检验算法过滤不可行调度方案,从而在复杂应用场景下实现了全局可行的调度方案生成。

34、本发明通过反馈式资源管理模块将任务执行结果与资源状态管理进行紧密联动,在任务完成后立即回收资源,在任务失败时根据健康状态决定是否更换构建代理,并引入资源占用超时计时器防止资源死锁,构建了一套完整的资源生命周期管理机制,显著提升了系统的运行稳定性和可靠性。

35、本发明通过自适应学习单元定期分析调度决策的执行效果并自动调整权重系数,实现了调度策略的持续自我优化,使系统能够在运行过程中不断学习和改进,长期来看能够进一步提升系统的整体调度性能。