CN109032769B - 一种基于容器的持续集成ci任务处理方法及装置 - Google Patents

一种基于容器的持续集成ci任务处理方法及装置 Download PDF

Info

Publication number
CN109032769B
CN109032769B CN201710428777.1A CN201710428777A CN109032769B CN 109032769 B CN109032769 B CN 109032769B CN 201710428777 A CN201710428777 A CN 201710428777A CN 109032769 B CN109032769 B CN 109032769B
Authority
CN
China
Prior art keywords
integrated
container
continuous integrated
task
continuous
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
CN201710428777.1A
Other languages
English (en)
Other versions
CN109032769A (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.)
China Mobile Zhejiang Innovation Research Institute Co ltd
China Mobile Communications Group Co Ltd
China Mobile Group Zhejiang Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Zhejiang 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 China Mobile Communications Group Co Ltd, China Mobile Group Zhejiang Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201710428777.1A priority Critical patent/CN109032769B/zh
Publication of CN109032769A publication Critical patent/CN109032769A/zh
Application granted granted Critical
Publication of CN109032769B publication Critical patent/CN109032769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种基于容器的持续集成CI任务处理方法及装置。该方法包括:解析并发的多个持续集成CI任务,获取所述各个持续集成CI任务的关联关系和资源预估信息;根据所述各个持续集成CI任务的关联关系生成多个持续集成CI流水线队列,各个持续集成CI流水线队列中包括多个串行执行的持续集成CI任务;根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器。本发明实施例将高并发场景下多条流水线的多个任务合理分发到多个容器中并发执行,合理编排任务执行顺序,在相同物理资源的情况下,提高了任务执行效率和容器资源利用率。

Description

一种基于容器的持续集成CI任务处理方法及装置
技术领域
本发明涉及软件开发技术领域,具体涉及一种基于容器的持续集成CI任务处理方法及装置。
背景技术
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经成为开发过程中不可回避的问题。持续集成(Continuous Integration,CI)是一种软件开发实践,倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的CI任务处理来完成的,包括自动化编译、发布和测试等,从而更快地发现错误,让团队能够更快的开发内聚的软件。
现有的持续集成CI任务处理方法主要有三种:
如图1a所示,是现有的一种持续集成CI任务处理系统的架构图,所有流水线持续集成CI任务处理都是在一台CI服务器上进行,CI服务器通过监控源码变更等方式来处理流水线的第一个持续集成CI任务,其余的任务当满足前置条件时自动触发。因所有的流水线任务都在一台CI服务器上执行,当运行中的任务数达到最大执行数后,流水线任务进入等待队列。单台CI服务器的能力容易受到磁盘空间、CPU、内存等硬件能力的限制,导致CI任务处理效率低。
如图1b所示,是现有的另一种持续集成CI任务处理系统的架构图,CI Master为系统的控制节点,Slave节点负责具体的项目编译测试等任务执行,可以支持集群化的不同任务处理需求。一个CI Master节点可以关联多个Slave节点,CI Master节点进行任务配置和调度管理。所有的任务通过预先的配置分配到指定的Slave节点上执行,预先分配的Slave节点一直处于在线状态。该方法中Slave节点是预先分配的,任务和Slave节点的关联是预先设置的,在高并发的情况下,存在Slave节点资源调度不合理,Slave节点资源利用率不高等问题。
如图1c所示,是现有的另一种持续集成CI任务处理系统的架构图,借助于容器技术,CI Master节点发布持续集成CI任务,将一条流水线的多条任务灵活分派到一个CISlave容器进行处理,保证了CI Slave容器资源的高可用性。但是一条流水线所有持续集成CI任务在同一个CI Slave容器上执行,高并发场景下,多条CI流水线任务需要分派更多的容器资源,任务处理效率低,资源利用率不高。
发明内容
本发明实施例提供一种基于容器的持续集成CI任务处理方法及装置,用于解决现有技术在高并发场景下资源利用率不高和任务执行效率低的问题。
本发明实施例提供了一种基于容器的持续集成CI任务处理方法,包括:
解析并发的多个持续集成CI任务,获取所述各个持续集成CI任务的关联关系和资源预估信息;
根据所述各个持续集成CI任务的关联关系生成多个持续集成CI流水线队列,各个持续集成CI流水线队列中包括多个串行执行的持续集成CI任务;
根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器。
可选地,所述根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器,包括:
若存在多个持续集成CI容器的负荷均满足当前持续集成CI任务的资源需求,则将所述当前持续集成CI任务分配到负荷最小的持续集成CI容器。
可选地,所述方法还包括:
获取所述各个持续集成CI任务的耗时预估信息。
可选地,根据如下公式获取各个持续集成CI任务的耗时预估信息:
Figure BDA0001316867390000031
其中,
Figure BDA0001316867390000032
表示持续集成CI任务的耗时预估信息;x1,x2,...xn表示持续集成CI任务的n个历史耗时信息;f1,f2,...fn分别表示各个历史耗时信息的权重系数。
可选地,所述方法还包括:
根据所述各个持续集成CI任务的资源预估信息和耗时预估信息对各个时间段的持续集成CI容器的负荷进行预估,获取各个持续集成CI容器的负荷预估结果;
根据各个时间段的各个持续集成CI容器的负荷预估结果获取持续集成CI容器资源占用率;
根据所述持续集成CI容器资源占用率进行持续集成CI容器调度。
可选地,所述根据所述持续集成CI容器资源占用率进行持续集成CI容器调度,包括:
采用双水线原则根据所述持续集成CI容器占用率进行持续集成CI容器调度:
若所述持续集成CI容器资源占用率大于第一预设阈值,则当目标持续集成CI容器的负荷大于第二预设阈值时,则增加持续集成CI容器;当目标持续集成CI容器的负荷小于第三预设阈值时,则减少持续集成CI容器;
若所述持续集成CI容器资源占用率小于第一预设阈值,则当目标持续集成CI容器的负荷大于第四预设阈值时,则增加持续集成CI容器;当目标持续集成CI容器的负荷小于第五预设阈值时,则减少持续集成CI容器;
其中,所述第二预设阈值小于所述第四预设阈值,所述第三预设阈值小于第五预设阈值。
可选地,所述根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器,包括:
若所述各个持续集成CI容器的负荷均不满足当前持续集成CI任务的资源需求,则获取各个持续集成CI容器的剩余持续集成CI任务执行时间;
将所述当前持续集成CI任务分配到剩余持续集成CI任务执行时间最小的持续集成CI容器。
本发明实施例提供一种基于容器的持续集成CI任务处理装置,包括:
持续集成CI任务信息获取单元,用于解析并发的多个持续集成CI任务,获取所述各个持续集成CI任务的关联关系和资源预估信息;
持续集成CI流水线队列生成单元,用于根据所述各个持续集成CI任务的关联关系生成多个持续集成CI流水线队列,各个持续集成CI流水线队列中包括多个串行执行的持续集成CI任务;
持续集成CI任务处理单元,用于根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器。
本发明实施例提供一种电子设备,包括:处理器、存储器和总线;其中,
处理器和存储器通过总线完成相互间的通信;
处理器用于调用存储器中的程序指令,以执行上述的基于容器的持续集成CI任务处理方法。
本发明实施例提供一种一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述的基于容器的持续集成CI任务处理方法。
本发明实施例提供的基于容器的持续集成CI任务处理方法及装置,解析并发的多个持续集成CI任务,获取所述各个持续集成CI任务的关联关系和资源预估信息;根据所述各个持续集成CI任务的关联关系生成多个持续集成CI流水线队列,各个持续集成CI流水线队列中包括多个串行执行的持续集成CI任务;根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器。本发明实施例基于容器技术,通过解析获取各个CI任务的关联关系和资源预估信息,将高并发场景下多条流水线的多个任务合理分发到多个容器中并发执行,合理编排任务执行顺序,在相同物理资源的情况下,提高了任务执行效率和容器资源利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是现有的一种持续集成CI任务处理系统的架构图;
图1b是现有的另一种持续集成CI任务处理系统的架构图;
图1c是现有的另一种持续集成CI任务处理系统的架构图;
图2是本发明一个实施例的基于容器的持续集成CI任务处理方法的流程示意图;
图3是本发明一个实施例的基于容器的持续集成CI任务处理方法的原理图;
图4是本发明一个实施例的持续集成CI任务解析的原理图;
图5是本发明一个实施例的持续集成CI流水线任务池生成的原理图;
图6是本发明一个实施例的持续集成CI流水线任务池处理的原理图;
图7是本发明一个实施例的基于双水线原则的容器资源调度的原理图;
图8是本发明一个实施例的的基于容器的持续集成CI任务处理装置的结构示意图;
图9是本发明一个实施例的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2是本发明一个实施例的基于容器的持续集成CI任务处理方法的流程示意图。如图2所示,该实施例的方法包括:
S21:解析并发的多个持续集成CI任务,获取所述各个持续集成CI任务的关联关系和资源预估信息;
在实际应用中,本发明实施例对并发的多条流水线中的多个CI任务进行解析,获取各个CI任务关联关系和资源预估信息;其中,CI任务关联关系指的是各个CI任务执行的串并联关系和先后顺序,CI任务的资源预估信息是执行CI任务需要消耗的资源情况(比如CPU、内存和硬盘等)。
如图3和图4所示,将解析后获取的CI任务信息存放在流水线任务池中;根据历史任务执行数据获取各个CI任务的资源预估信息。
具体地,如图5所示,根据各个CI任务的前置和后置条件获取各个CI任务的关联关系。确定第一个任务节点任务信息,标识ID为0;给每个任务节点生成唯一的ID;将前置任务ID不同的任务设置为串行任务处理,将前置任务ID相同的任务设置为并行任务处理。
S22:根据所述各个持续集成CI任务的关联关系生成多个持续集成CI流水线队列,各个持续集成CI流水线队列中包括多个串行执行的持续集成CI任务;
可理解的是,本发明实施例的持续集成CI流水线队列中包括多个串行执行的持续集成CI任务,即针对每一个持续集成CI流水线队列,从队首到队尾各个CI任务依次执行,队首的CI任务为当前任务,队尾的CI任务被最后执行。
S23:根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器。
需要说明的是,本发明实施例检测各个在线的持续集成CI容器的负荷,将各个持续集成CI流水线队列的当前持续集成CI任务分配到满足资源需求的持续集成CI容器的任务执行队列中,以使持续集成CI容器对当前CI任务进行处理。
在实际应用中,如图3所示,对各个CI容器的任务执行队列进行任务处理和执行结果回调,同时更新流水线任务池中任务状态信息和历史任务执行数据。
在实际应用中,当CI任务执行超时,则调度任务容错程序进行容错处理,提高了可靠性。
本发明实施例提供的基于容器的持续集成CI任务处理方法,通过解析获取各个CI任务的关联关系和资源预估信息,将高并发场景下多条流水线的多个任务合理分发到多个容器中并发执行,合理编排任务执行顺序,在相同物理资源的情况下,提高了任务执行效率和容器资源利用率。
在实际应用中,本发明实施例检测CI容器的负荷,如果不存在满足当前持续集成CI任务的资源需求的容器,则通过和资源调度工具Marathon的交互实现基于CI应用的扩缩容,以提升任务执行效率和容器资源利用率。
在本发明实施例的一种可选的实施方式中,与图1中的方法类似,所述根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器,包括:
若存在多个持续集成CI容器的负荷均满足当前持续集成CI任务的资源需求,则将所述当前持续集成CI任务分配到负荷最小的持续集成CI容器。
可理解的是,如果对于当前CI任务存在多个合适的CI容器,则按照最小工作负荷容器资源优先的原则,从在线合适的CI容中选取负荷最小的CI容器,将当前CI任务加入到该CI容器的任务执行队列中(如图6所示)。
进一步地,所述方法还包括:
获取所述各个持续集成CI任务的耗时预估信息。
可选地,根据如下公式获取各个持续集成CI任务的耗时预估信息:
Figure BDA0001316867390000081
其中,
Figure BDA0001316867390000082
表示持续集成CI任务的耗时预估信息;x1,x2,...xn表示持续集成CI任务的n个历史耗时信息;f1,f2,...fn分别表示各个历史耗时信息的权重系数。
在实际应用中,超过2个月的持续集成数据意味着代码改动比较大,因而,根据2个月以内的历史耗时信息计算获得CI任务的耗时预估信息。选择最近2个月内数据按数据时间区间取平均值进行评估,权重系数参考如表1所示。
表1持续集成CI任务耗时预估权重系数表
最近1周 最近2周 最近3周 最近4周 最近2个月
30% 25% 20% 15% 10%
可理解的是,本发明实施例在获取各个CI任务的资源预估信息时,可采用上述获取CI任务的耗时预估信息的类似方法,在此不再赘述。
进一步地,所述方法还包括:
根据所述各个持续集成CI任务的资源预估信息和耗时预估信息对各个时间段的持续集成CI容器的负荷进行预估,获取各个持续集成CI容器的负荷预估结果;
根据各个时间段的各个持续集成CI容器的负荷预估结果获取持续集成CI容器资源占用率;
根据所述持续集成CI容器资源占用率进行持续集成CI容器调度。
需要说明的是,通过各个持续集成CI任务的资源预估信息和耗时预估信息可实现分时段的CI容器的负荷预估;本发明实施例的持续集成CI容器资源占用率指的是根据所有在线的持续集成CI容器的负荷预估结果计算获得的。
具体地,所述根据所述持续集成CI容器资源占用率进行持续集成CI容器调度,包括:
采用双水线原则根据所述持续集成CI容器占用率进行持续集成CI容器调度:
若所述持续集成CI容器资源占用率大于第一预设阈值,则当目标持续集成CI容器的负荷大于第二预设阈值时,则增加持续集成CI容器;当目标持续集成CI容器的负荷小于第三预设阈值时,则减少持续集成CI容器;
若所述持续集成CI容器资源占用率小于第一预设阈值,则当目标持续集成CI容器的负荷大于第四预设阈值时,则增加持续集成CI容器;当目标持续集成CI容器的负荷小于第五预设阈值时,则减少持续集成CI容器;
其中,所述第二预设阈值小于所述第四预设阈值,所述第三预设阈值小于第五预设阈值。
本发明实施例检测在线CI容器资源占用率,预测CI容器资源资源是否存在瓶颈或资源浪费等情况,采用双水线测定原则,判断是否需要对资源调度工具Marathon发送执行扩缩容操作请求。
双水线原则(如图7所示)是依据悲观、乐观决策法制定。举例来说,当CI容器资源占用率高时,容器扩缩容采用悲观原则,CI容器负荷超过扩容低水位线(60%)进行扩容,低于缩容低水位线(20%)进行缩容;当CI容器资源占用率低时,容器扩缩容采用乐观原则,CI容器负荷超过扩容高水位线(80%)进行扩容,低于缩容高水位线(40%)进行缩容。采用双水线原则控制容器资源,能根据运行状态控制容器资源的投入,提高了容器资源的利用率。
在本发明实施例的另一种可选的实施方式中,所述根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器,包括:
若所述各个持续集成CI容器的负荷均不满足当前持续集成CI任务的资源需求,则获取各个持续集成CI容器的剩余持续集成CI任务执行时间;
将所述当前持续集成CI任务分配到剩余持续集成CI任务执行时间最小的持续集成CI容器。
在实际应用中,如果CI容器的负荷均不满足当前CI任务的资源需求时,则根据任务耗时分析各个CI容器的剩余CI任务执行时间,来计算当前CI任务进入某个CI容器的任务执行队列的等待时间,按最小等待时间把当前CI任务加入到对应CI容器的任务执行队列中。
图8是本发明一个实施例的的基于容器的持续集成CI任务处理装置的结构示意图。如图8所示,该实施例的装置包括持续集成CI任务信息获取单元81、持续集成CI流水线队列生成单元82和持续集成CI任务处理单元83,具体地:
持续集成CI任务信息获取单元81,用于解析并发的多个持续集成CI任务,获取所述各个持续集成CI任务的关联关系和资源预估信息;
持续集成CI流水线队列生成单元82,用于根据所述各个持续集成CI任务的关联关系生成多个持续集成CI流水线队列,各个持续集成CI流水线队列中包括多个串行执行的持续集成CI任务;
持续集成CI任务处理单元83,用于根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器。
本发明实施例提供的基于容器的持续集成CI任务处理装置,通过解析获取各个CI任务的关联关系和资源预估信息,将高并发场景下多条流水线的多个任务合理分发到多个容器中并发执行,合理编排任务执行顺序,在相同物理资源的情况下,提高了任务执行效率和容器资源利用率。
本发明实施例的基于容器的持续集成CI任务处理装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
图9是本发明一个实施例的电子设备的结构示意图。
参照图9,电子设备包括:处理器(processor)91、存储器(memory)92和总线93;其中,
处理器91和存储器92通过总线93完成相互间的通信;
处理器91用于调用存储器92中的程序指令,以执行上述各方法实施例所提供的基于容器的持续集成CI任务处理方法。
此外,上述的存储器92中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的基于容器的持续集成CI任务处理方法。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的基于容器的持续集成CI任务处理方法。
本发明实施例提供的基于容器的持续集成CI任务处理方法及装置,通过解析获取各个CI任务的关联关系和资源预估信息,将高并发场景下多条流水线的多个任务合理分发到多个容器中并发执行,合理编排任务执行顺序,在相同物理资源的情况下,提高了任务执行效率和容器资源利用率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
需要说明的是术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种基于容器的持续集成CI任务处理方法,其特征在于,包括:
解析并发的多个持续集成CI任务,获取所述各个持续集成CI任务的关联关系和资源预估信息;
根据所述各个持续集成CI任务的关联关系生成多个持续集成CI流水线队列,各个持续集成CI流水线队列中包括多个串行执行的持续集成CI任务;
根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器;
所述方法还包括:
获取所述各个持续集成CI任务的耗时预估信息;
所述方法还包括:
根据所述各个持续集成CI任务的资源预估信息和耗时预估信息对各个时间段的持续集成CI容器的负荷进行预估,获取各个持续集成CI容器的负荷预估结果;
根据各个时间段的各个持续集成CI容器的负荷预估结果获取持续集成CI容器资源占用率;
根据所述持续集成CI容器资源占用率进行持续集成CI容器调度;
所述根据所述持续集成CI容器资源占用率进行持续集成CI容器调度,包括:
采用双水线原则根据所述持续集成CI容器占用率进行持续集成CI容器调度:
若所述持续集成CI容器资源占用率大于第一预设阈值,则当目标持续集成CI容器的负荷大于第二预设阈值时,则增加持续集成CI容器;当目标持续集成CI容器的负荷小于第三预设阈值时,则减少持续集成CI容器;
若所述持续集成CI容器资源占用率小于第一预设阈值,则当目标持续集成CI容器的负荷大于第四预设阈值时,则增加持续集成CI容器;当目标持续集成CI容器的负荷小于第五预设阈值时,则减少持续集成CI容器;
其中,所述第二预设阈值小于所述第四预设阈值,所述第三预设阈值小于第五预设阈值。
2.根据权利要求1所述的方法,其特征在于,所述根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器,包括:
若存在多个持续集成CI容器的负荷均满足当前持续集成CI任务的资源需求,则将所述当前持续集成CI任务分配到负荷最小的持续集成CI容器。
3.根据权利要求1所述的方法,其特征在于,根据如下公式获取各个持续集成CI任务的耗时预估信息:
Figure FDA0002496747970000021
其中,
Figure FDA0002496747970000022
表示持续集成CI任务的耗时预估信息;x1,x2,...xn表示持续集成CI任务的n个历史耗时信息;f1,f2,...fn分别表示各个历史耗时信息的权重系数。
4.根据权利要求1或3所述的方法,其特征在于,所述根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器,包括:
若所述各个持续集成CI容器的负荷均不满足当前持续集成CI任务的资源需求,则获取各个持续集成CI容器的剩余持续集成CI任务执行时间;
将所述当前持续集成CI任务分配到剩余持续集成CI任务执行时间最小的持续集成CI容器。
5.一种基于容器的持续集成CI任务处理装置,其特征在于,包括:
持续集成CI任务信息获取单元,用于解析并发的多个持续集成CI任务,获取所述各个持续集成CI任务的关联关系和资源预估信息;
持续集成CI流水线队列生成单元,用于根据所述各个持续集成CI任务的关联关系生成多个持续集成CI流水线队列,各个持续集成CI流水线队列中包括多个串行执行的持续集成CI任务;
持续集成CI任务处理单元,用于根据各个持续集成CI容器的负荷和所述各个持续集成CI任务的资源预估信息为所述各个持续集成CI流水线队列的当前持续集成CI任务分配对应的持续集成CI容器;
所述装置还包括:
第一处理单元,用于获取所述各个持续集成CI任务的耗时预估信息;
所述装置还包括:
第二处理单元,用于根据所述各个持续集成CI任务的资源预估信息和耗时预估信息对各个时间段的持续集成CI容器的负荷进行预估,获取各个持续集成CI容器的负荷预估结果;
第三处理单元,用于根据各个时间段的各个持续集成CI容器的负荷预估结果获取持续集成CI容器资源占用率;
第四处理单元,用于根据所述持续集成CI容器资源占用率进行持续集成CI容器调度;
所述第四处理单元,具体用于采用双水线原则根据所述持续集成CI容器占用率进行持续集成CI容器调度:
若所述持续集成CI容器资源占用率大于第一预设阈值,则当目标持续集成CI容器的负荷大于第二预设阈值时,则增加持续集成CI容器;当目标持续集成CI容器的负荷小于第三预设阈值时,则减少持续集成CI容器;
若所述持续集成CI容器资源占用率小于第一预设阈值,则当目标持续集成CI容器的负荷大于第四预设阈值时,则增加持续集成CI容器;当目标持续集成CI容器的负荷小于第五预设阈值时,则减少持续集成CI容器;
其中,所述第二预设阈值小于所述第四预设阈值,所述第三预设阈值小于第五预设阈值。
6.一种电子设备,其特征在于,包括:处理器、存储器和总线;其中,
处理器和存储器通过总线完成相互间的通信;
处理器用于调用存储器中的程序指令,以执行权利要求1-4任一项所述的基于容器的持续集成CI任务处理方法。
7.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行权利要求1-4任一项所述的基于容器的持续集成CI任务处理方法。
CN201710428777.1A 2017-06-08 2017-06-08 一种基于容器的持续集成ci任务处理方法及装置 Active CN109032769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710428777.1A CN109032769B (zh) 2017-06-08 2017-06-08 一种基于容器的持续集成ci任务处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710428777.1A CN109032769B (zh) 2017-06-08 2017-06-08 一种基于容器的持续集成ci任务处理方法及装置

Publications (2)

Publication Number Publication Date
CN109032769A CN109032769A (zh) 2018-12-18
CN109032769B true CN109032769B (zh) 2020-09-11

Family

ID=64629194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710428777.1A Active CN109032769B (zh) 2017-06-08 2017-06-08 一种基于容器的持续集成ci任务处理方法及装置

Country Status (1)

Country Link
CN (1) CN109032769B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831340B (zh) * 2020-07-20 2024-03-05 北京简单一点科技有限公司 一种持续集成多流水线编排方法
CN113096269B (zh) * 2021-04-28 2022-10-28 中国第一汽车股份有限公司 一种信息采集方法、装置、电子设备以及存储介质
CN113377665A (zh) * 2021-06-25 2021-09-10 北京百度网讯科技有限公司 基于容器技术的测试方法、装置、电子设备及存储介质
CN115168016B (zh) * 2022-09-07 2022-12-06 浙江大华技术股份有限公司 任务调度方法及相关装置、芯片、器件和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101957778A (zh) * 2010-09-19 2011-01-26 华为技术有限公司 软件持续集成的方法、装置和系统
CN105893147A (zh) * 2016-03-29 2016-08-24 乐视控股(北京)有限公司 多任务队列管理方法、设备及系统
CN106534284A (zh) * 2016-10-26 2017-03-22 航天恒星科技有限公司 一种分布式系统中资源负载均衡方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049332B2 (en) * 2015-03-11 2018-08-14 Accenture Global Services Limited Queuing tasks in a computer system based on evaluating queue information and capability information of resources against a set of rules

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101957778A (zh) * 2010-09-19 2011-01-26 华为技术有限公司 软件持续集成的方法、装置和系统
CN105893147A (zh) * 2016-03-29 2016-08-24 乐视控股(北京)有限公司 多任务队列管理方法、设备及系统
CN106534284A (zh) * 2016-10-26 2017-03-22 航天恒星科技有限公司 一种分布式系统中资源负载均衡方法及装置

Also Published As

Publication number Publication date
CN109032769A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
US10474504B2 (en) Distributed node intra-group task scheduling method and system
US11989647B2 (en) Self-learning scheduler for application orchestration on shared compute cluster
CN109032769B (zh) 一种基于容器的持续集成ci任务处理方法及装置
Glushkova et al. Mapreduce performance model for Hadoop 2. x
US9916183B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
EP3129880B1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US20170300367A1 (en) Streaming Graph Optimization Method and Apparatus
CN103309946B (zh) 多媒体文件处理方法、装置及系统
CN111427681A (zh) 边缘计算中基于资源监控的实时任务匹配调度系统和方法
CN105912399B (zh) 一种任务处理方法、装置及系统
CN102609303B (zh) MapReduce系统的慢任务调度方法和装置
WO2012144985A1 (en) Scheduling map and reduce tasks of jobs for execution according to performance goals
KR101656360B1 (ko) 자동 분산병렬 처리 하둡 시스템을 지원하는 클라우드 시스템
CN108270805B (zh) 用于数据处理的资源分配方法及装置
CN107766140B (zh) 一种带抢占点实时任务的可调度性分析方法
CN103748559B (zh) 利用工作需求反馈进行处理器工作划分的方法和系统
CN106095940A (zh) 一种基于任务负载的数据迁移方法
CN110866687A (zh) 任务分配方法及装置
CN104268018A (zh) 一种Hadoop集群中的作业调度方法和作业调度器
Imai et al. Accurate resource prediction for hybrid IaaS clouds using workload-tailored elastic compute units
CN112148468A (zh) 一种资源调度方法、装置、电子设备及存储介质
CN108132840B (zh) 一种分布式系统中的资源调度方法及装置
KR20180072295A (ko) 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법
CN111198754A (zh) 一种任务调度方法及装置
CN110088730A (zh) 任务处理方法、装置、介质及其设备

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: No.19, Jiefang East Road, Hangzhou, Zhejiang Province, 310000

Patentee after: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd.

Patentee after: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.

Address before: No. 19, Jiefang East Road, Hangzhou, Zhejiang Province, 310016

Patentee before: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd.

Patentee before: CHINA MOBILE COMMUNICATIONS Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231211

Address after: No.19, Jiefang East Road, Hangzhou, Zhejiang Province, 310000

Patentee after: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd.

Patentee after: China Mobile (Zhejiang) Innovation Research Institute Co.,Ltd.

Patentee after: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.

Address before: No.19, Jiefang East Road, Hangzhou, Zhejiang Province, 310000

Patentee before: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd.

Patentee before: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.