【技术实现步骤摘要】
一种基于Docker的分布式编译打包系统及方法
[0001]本专利技术属于开发环境
,涉及开发环境技术,具体是一块基于Docker的分布式编译打包算法。
技术介绍
[0002]随着互联网高速迅速发展,软件产品迭代周期越来越快,如何加强不同技术栈研发人员之间的协作,缩短产品、测试到运维的交付周期,提升研发效率并保障质量,是互联网企业核心竞争力,然而,面对大规模的编译打包任务,单机性能成为瓶颈日渐突出,无法满足大规模、耗资源的打包任务,传统做法是提升机器内存和CPU核数,来提升单机任务处理能力,但这并没有从根本解决大规模编译打包的单机瓶颈问题。,为此,我们提出一块基于Docker的分布式编译打包算法。
技术实现思路
[0003]专利技术目的:为突破单机性能瓶颈的限制,本专利技术提供一种基于Docker的分布式编译打包系统及方法。
[0004]技术方案:为实现上述目的,本专利技术采用的技术方案为:一种基于Docker的分布式编译打包系统,包括一个以上的节点和调度中心,所述调度中心与节点连接,所述调度中 ...
【技术保护点】
【技术特征摘要】
1.一种基于Docker的分布式编译打包系统,其特征在于:包括一个以上的节点和调度中心,所述调度中心与节点连接,所述调度中心包括流水线与构建时间关系建立模块、最小排队等待时间的节点计算模块,所述节点包括下一次任务需要排队等待时间计算模块,其中:所述流水线与构建时间关系建立模块根据接收的流水线任务,计算每条流水线平均构建时间,建立流水线与构建时间关系;所述下一次任务需要排队等待时间计算模块用于根据流水线与构建时间关系独立计算所在节点下一次任务需要排队等待时间;所述节点发送下一次任务排队等待时间到调度中心;所述最小排队等待时间的节点计算模块用于通过节点等待时间计算出最小排队等待时间的节点;所述调度中心保存中每个节点排队等待时间;调度中心调度最小等待时间的节点去执行流水线构建任务。2.根据权利要求1所述基于Docker的分布式编译打包系统,其特征在于:所述下一次任务需要排队等待时间计算模块设置排队数量阈值,判断当前排队数量是否高于排队数量阈值,若没高于,就进行排队;若高于,对队列中的每一个节点计算需要排队的时间;判断任务序号和当前节点总共排队时间,若任务序号不是第一个,且当前节点总共排队时间等于流水线时间,将当前节点加入流水线;若任务序号是第一个,或者当前节点总共排队时间小于流水线时间,就将当前节点作为流水线的首个节点;将所有节点流水线工作时间抵消,排队等待时间等于整个流水线工作完成时间;判断流水线的排队是否排满,若排队没排满,则返回整个流水线工作完成时间作为排队等待时间;若排队排满,把流水线最后一个节点赋予给当前节点,计算空位数量;判断空位数量和流水线中的节点哪个更多,如果空位数量大于流水线中的节点数量,则返回步骤22;如果空位数量不大于新的流水线中的节点数量,就递归计算后面的排队时间在加上当前需要排队的时间作为排队等待时间。3.根据权利要求2所述基于Docker的分布式编译打包系统,其特征在于:所述最小排队等待时间的节点计算模块获取所有节点;获取当前内存中运行的所有节点;遍历所有节点选择最少等待时间的节点;如果当前的节点是最少排队等待时间的节点,且候选节点为空,则将当前的节点作为候选节点;如果当前的节点是最少排队等待时间的节点,且候选节点不为空,判断当前节点和候选节点哪个的排队等待时间更短,如果当前节点排队等待时间比候选节点的排队等待时间短,则将当...
【专利技术属性】
技术研发人员:王三明,王聪明,王寅能,吴权要,
申请(专利权)人:启业云大数据南京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。