一种基于容器云平台的微服务工作流弹性调度方法、系统及设备技术方案

技术编号:37971796 阅读:26 留言:0更新日期:2023-06-30 09:47
本发明专利技术属于云计算数据处理技术领域,公开了一种基于容器云平台的微服务工作流弹性调度方法、系统及设备,包括:将工作流划分为DSSW和RIBW;并将工作流截止日期划分为工作流的每个任务的子截止日期;对于DSSW和RIBW工作流就绪队列中的任务进行排序;采用不同的分配策略对DSSW和RIBW工作流中的任务分配到现有容器实例或创建的新容器,得到调度方案;采用多目标优化的新容器实例部署算法确定容器到VM的映射关系,得到部署方案。本发明专利技术可以对采用容器云平台部署的物联网系统的用户请求快速处理并返回结果,在保证用户SLA情况下降低资源使用成本,提高资源利用率。提高资源利用率。提高资源利用率。

【技术实现步骤摘要】
一种基于容器云平台的微服务工作流弹性调度方法、系统及设备


[0001]本专利技术属于云计算数据处理
,尤其涉及一种基于容器云平台的微服务工作流弹性调度方法、系统及设备。

技术介绍

[0002]目前,微服务作为物联网平台服务提供的核心技术,支撑多样化的物联网应用。应用服务提供商(ASP)通过微服务架构将大型工作流应用划分成大量细粒度、低耦合的微服务任务,因此根据用户需求的不同而快速、独立的调度和部署,从而提高了工作流应用的灵活性和敏捷性。任务调度和弹性伸缩是容器云中工作流调度的关键技术,将具有数据依赖约束的工作流调度到相关容器上进行处理,并根据实时需求进行弹性伸缩以满足服务质量。考虑微服务工作流的截止时间约束下最小化云资源租用费用,如何在容器云平台上任务调度和弹性伸缩是云中基于微服务架构的物联网应用程序需要解决的关键问题。
[0003]针对常见的物联网应用如智慧园区、智慧医院等系统主要包含两类微服务工作流,即延迟敏感型的流式工作流(DSSW)和数据密集型批处理工作流(RIBW)。现有大部分的工作流调度算法要么只关注DSSW调度,要么只关注RIBW动态调度,没有相应的联合调度策略,导致无法充分利用容器的空闲实例时间,造成资源浪费。针对微服务工作流的动态特性,即任务到达时间以及执行时间具有不确定的特性,现有方法常常忽略这些不确定性,导致超出工作流的截止时间导致增加执行成本。针对云中微服务的弹性伸缩,现有大多数的工作流调度算法仅适用于单层架构(VM或容器),无法同时在容器层和虚拟机层同时进行任务调度和弹性伸缩,不结合任务调度的弹性伸缩算法的预测结果与实际的调度资源量之间存在着差异,无法获得精确的资源扩展需求,从而影响服务性能。
[0004]通过上述分析,现有技术存在的问题及缺陷为:现有技术不能解决微服务工作流动态特性导致最优弹性调度决策困难的问题,且针对物联网系统场景没有相应的联合调度策略来优化系统服务请求;现有的调度方法调度成本较大、性能低且与实际资源不符,会影响后续任务。

技术实现思路

[0005]针对现有技术存在的问题,本专利技术提供了一种基于容器云平台的微服务工作流弹性调度方法、系统及设备。
[0006]本专利技术是这样实现的,一种基于容器云平台的微服务工作流弹性调度方法,所述基于容器云平台的微服务工作流弹性调度方法包括:
[0007]首先,根据微服务工作流元信息将工作流划分为延迟敏感型的流式工作流DSSW和资源密集型批处理工作流RIBW;并计算工作流中每个任务的子截止日期,并添加到相应的任务池中;
[0008]其次,对于DSSW和RIBW工作流任务池中的就绪任务添加到就绪队列中并进行排
序;采用不同的分配策略对DSSW和RIBW工作流分配或创建容器,得到任务调度方案;
[0009]最后,采用多目标优化的新容器实例部署算法确定容器到VM的映射关系,得到部署方案。
[0010]进一步,所述基于容器云平台的微服务工作流弹性调度方法包括以下步骤:
[0011]步骤一,根据工作流中的参数—用户要求的截止时间是否为硬期限来将工作流分类为延迟敏感型的流式工作流DSSW和数据密集型批处理工作流RIBW;将两类工作流的集合中的任务分别添加到其相应的任务池中,分别遍历任务池中的任务,将就绪任务分别加入到相应的就绪队列,并从任务池中删除该任务;将工作流中的任务分配子截止时间;
[0012]步骤二,对DSSW工作流和RIBW工作流就绪队列中的任务进行排序,其中就绪任务为其直接前驱任务全部都完成的任务,入口任务直接就是就绪任务。对于DSSW中的任务根据任务池中当前任务到退出任务的关键路径上未分配任务的数量和所述任务预期完成时间计算任务池中每个就绪任务的调度紧迫度,以紧迫度非降序的顺序进行排列;对于RIBW中的任务根据任务的最早开始时间进行非降序排序;
[0013]步骤三,为DSSW和RIBW就绪队列中的任务分配容器实例。
[0014]进一步所述任务分配过程包括:
[0015]对DSSW:按以下三种策略对服务实例进行选择。1)在空闲的容器集合中如果存在能够按时完成任务的实例,则选择成本最低的实例。2)如果需要一个新实例,计算满足需求的新容器实例的最小速度minSpeed,此时比较minSpeed是否大于最高排名VM的速度或为负,若是,则将任务分配到现有或创建一个具有最高配置的实例,将任务分配给具有较小的最早结束时间EFT的实例。若否,则创建一个速度比minSpeed稍大的实例,通常实例的配置为离散单位的整数倍,如CPU为500m,内存为512Mi,并将任务分配到该实例。3)如果在某个虚拟机中创建新实例需要镜像,则首先拉取镜像并启动容器执行任务;
[0016]对RIBW:计算VM上每个运行的容器上执行任务的成本,以最小的成本和空闲时间为任务选择一个合适的容器实例;
[0017]步骤四,任务执行完成后的状态反馈。若任务执行完成,其执行时间以及数据传输时间的不确定性将不再存在,获得的实际完成时间更新实例msi
j,k
就绪时间CRT(msi
j,k
)。由于工作流初始化中使用的是排名最高的容器的预测执行时间,即未分配具体实例的执行时间,来划分子截止时间sd,因此,任务执行结束后需更新任务池中任务的子截止时间。若后继任务的直接前驱任务都已完成且已接收到直接前驱任务执行后的传输数据,将后继任务从任务池中移除并加入就绪队列,更新后继任务的就绪时间taskRT,继续执行步骤二到步骤四直到两类任务池中的任务全部完成,获得调度方案Scheduling;
[0018]步骤五,确定新容器到VM的映射关系,将创建的新容器部署到虚拟机上。
[0019]进一步,所述确定容器到VM的映射关系包括:
[0020]将待部署的新容器按照所需资源量从大到小的顺序进行排序,遍历所有存储所需镜像的VM,并通过最佳匹配算法选择虚拟机的剩余资源和容器所需资源之间差距最小的VM;
[0021]若现有的VM资源不能部署所有新容器,则租用新的VM容纳新容器,将剩余容器的部署建模为可变大小的向量装箱问题,通过将多资源保证设置为映射方案的主要目标,并平衡负载均衡以及依赖感知,得到部署方案;所述多资源保证为同一VM中容器的资源需求
不应超过其容量;所述容器依赖感知为将具有依赖的容器尽可能放置在一台VM上;所述多目标权衡是在保持最大资源利用率的数值最小的情况下最大化同处于一个虚拟机中具有依赖关系的容器数量。
[0022]若现有VM实例上不能够部署全部的容器实例,租用X个新虚拟机使得总资源量大于剩余容器所需资源,新虚拟机集合中可以为多台不同类型,也可以为相同类型,然后再次调用上述部署方法直到所有待部署容器实例部署完成得到伸缩方案AutoScaling。
[0023]本专利技术的另一目的在于提供一种实施所述基于容器云平台的微服务工作流弹性调度方法的基于容器云平台的微服务工作流弹性调度系统,所述基于容器云平台的微服务工作流弹性调本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于容器云平台的微服务工作流调度弹性方法,其特征在于,所述基于容器云平台的微服务工作流弹性调度方法包括:首先,根据微服务工作流元信息将工作流划分为延迟敏感型的流式工作流DSSW和资源密集型批处理工作流RIBW;并计算工作流中每个任务的子截止日期,并添加到相应的任务池中;其次,对于DSSW和RIBW工作流任务池中的就绪任务添加到就绪队列中并进行排序;采用不同的分配策略对DSSW和RIBW工作流分配或创建容器,得到任务调度方案;最后,采用多目标优化的新容器实例部署算法确定容器到VM的映射关系,得到部署方案。2.如权利要求1所述基于容器云平台的微服务工作流弹性调度方法,其特征在于,所述基于容器云平台的微服务工作流弹性调度方法包括以下步骤:步骤一,将用户请求解析为微服务工作流,根据用户提交的截止日期将工作流分类为延迟敏感型的流式工作流DSSW和数据密集型批处理工作流RIBW;将两类工作流集合中的任务分别添加到相应的任务池,其中就绪任务添加到就绪队列;将工作流中的任务分配子截止时间;步骤二,对于DSSW中的任务以调度紧迫度进行非降序排序;对于RIBW中的任务根据任务的最早开始时间进行非降序排序;步骤三,为DSSW分配或创建一个令任务处理成本最小化的实例,为RIBW计算所有容器执行的成本,以最小的成本和空闲时间为任务选择一个合适的容器实例;步骤四,在任务执行完成后及时更新就绪队列中任务的状态,当任务池中任务就绪后添加到就绪队列中,对就绪队列中的任务再次执行步骤S103,直至任务池和就绪队列为空;步骤五,确定容器到VM的映射关系,将需要创建的新容器部署到虚拟机上。3.如权利要求2所述基于容器云平台的微服务工作流弹性调度方法,其特征在于,所述对DSSW工作流和RIBW工作流任务池中的任务进行排序包括:对于DSSW工作流:根据任务池中当前任务到退出任务的关键路径上未分配任务的数量和所述任务预期完成时间计算任务池中每个就绪任务的调度紧迫度,根据所述调度紧迫度进行任务的排序;对于RIBW工作流:根据任务池中当前任务的最早开始时间进行排序。4.如权利要求2所述基于容器云平台的微服务工作流弹性调度方法,其特征在于,所述为DSSW分配或创建一个令任务处理成本最小化的实例,为RIBW计算所有容器执行的成本,以最小的成本和空闲时间为任务选择一个合适的容器实例包括:对DSSW:按以下三种策略对服务实例进行选择。1)在空闲的容器集合中如果存在能够按时完成任务的实例,则选择成本最低的实例。2)如果需要一个新实例,计算满足需求的新容器实例的最小速度minSpeed,此时比较minSpeed是否大于最高排名VM的速度或为负,若是,则将任务分配到现有或创建一个具有最高配置的实例,将任务分配给具有较小的最早结束时间EFT的实例。若否,则创建一个速度比minSpeed稍大的实例,通常实例的配置为离散单位的整数倍,如CPU为500m,内存为512Mi,并将任务分配到该实例。3)如果在某个虚拟机中创建新实例需要镜像,则首先拉取镜像并启动容器执行任务;对RIBW:计算VM上每个运行的容器上执行任务的成本...

【专利技术属性】
技术研发人员:王建东李泽玉李光夏李云豆张志为严煜昆刘磊李烨城彭勇毅宋子健
申请(专利权)人:西安电子科技大学青岛计算技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1