一种应用混合部署的方法和装置与流程

文档序号:32947408发布日期:2023-01-14 11:43阅读:26来源:国知局
一种应用混合部署的方法和装置与流程

1.本发明涉及计算机技术领域,特别是涉及一种应用混合部署的方法和装置。


背景技术:

2.目前,为了在保证服务质量的前提下提升资源利用率,通常需要将多个在线应用部署于同一服务器上,但在这种情况下,涉及到cpu、内存、带宽等资源的调度问题。
3.在现有技术中,通常采用固定实例(pod)规格的方式来进行资源调度,即保持实例规格固定不变,通过增加实例的数量来实现。然而,在采用固定实例规格的方式进行资源调度的过程中,若任务的实例规格较大,则在分配资源后容易出现部分较小的资源无法分配给其他任务的情况,造成资源碎片,不利于资源的利用。


技术实现要素:

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.图1是本发明一实施例提供的一种应用混合部署的步骤流程图;
42.图2a是本发明一实施例提供的一种已部署的任务扩容或缩容的场景示意图;
43.图2b是本发明一实施例提供的一种资源调度系统的示意图;
44.图2c是本发明一实施例提供的一种多个任务之间存在依赖关系的场景示意图;
45.图2d是本发明一实施例提供的一种应用混合部署实例的示意图;
46.图3是本发明一实施例提供的另一种应用混合部署的步骤流程图;
47.图4是本发明一实施例提供的另一种应用混合部署的步骤流程图;
48.图5是本发明一实施例提供的另一种应用混合部署的步骤流程图;
49.图6是本发明一实施例提供的另一种应用混合部署的步骤流程图;
50.图7是本发明一实施例提供的一种应用混合部署的装置的结构框图。
具体实施方式
51.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
52.参照图1,示出了本发明一实施例提供的一种应用混合部署的方法的步骤流程图,其可以应用于边缘服务集群,边缘服务集群可以由多个边缘服务节点组成,边缘服务节点可以为基于idc(internet data center,互联网数据中心)建立的可用于边缘服务的单元。
53.具体的,可以包括如下步骤:
54.步骤101,获取多个任务的资源需求;其中,多个任务包括不同应用类型的任务。
55.为了在保证服务质量的前提下提升资源利用率,利用边缘服务集群的流量和资源可灵活调度的特点,可以在边缘服务集群中进行多种类型应用的混合部署,多种类型应用可以包括动态加速应用、大文件下载应用、直播应用、缓存服务应用等。
56.在具体实现中,任务是应用用于实现相应功能的具体方式,每个应用可以通过创建一个或多个任务来实现相应的功能,通过在边缘服务集群中部署不同应用类型的任务,进而可以实现在边缘服务集群中进行多种类型应用的混合部署。
57.对于不同应用类型的任务,其可以获取其资源需求,该资源需求可以包括对边缘服务集群中cpu、内存、带宽的资源需求。
58.在新应用向边缘服务集群申请资源的场景下、在新边缘服务节点加入边缘服务集群的场景下,待部署的任务的资源需求可以为实际提交的资源需求,如某个待部署任务需要的资源为1cpu、4gb的ram,则直接将其作为资源需求参与后续的资源调度,如将其作为后文中drf(dominant resource fairness,主资源公平调度)算法中输入的权重。
59.在已部署的任务扩容或缩容的场景下,即在将已部署的第一任务的资源分配至已部署的第二任务时,第一任务的资源需求可以为根据第一任务的已分配资源信息(水位)确定的,第二任务的资源需求可以为实际提交的资源需求,根据资源需求参与后续的资源调度,如将其作为后文中drf算法中输入的权重。
60.如图2a,在已部署的任务扩容或缩容的场景下,边缘服务集群中存在已部署的任务a、任务b、任务c,任务a需要申请使用更多的资源,如任务a原来分配的是5核cpu,现在需
要使用申请10核cpu,则可以将任务b的资源腾挪至任务a。
61.已分配给任务b的资源为30核cpu,其当前使用了15核cpu,则可以将15核cpu作为其资源需求参与后续的资源调度,任务a是要进行扩容,则可以直接将需要的10核cpu作为其资源需求参与后续的资源调度。
62.步骤102,确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格;其中,不同应用类型的任务可配置不同的实例规格。
63.对于不同应用类型的任务,可以根据其应用类型来确定实例规格,如实例规格可以为pod规格,其可以为用于支持该类型的应用所需分配资源的最小规格,如下表1所示:
64.应用类型实例规格(cpu,内存,带宽)描述动态加速4核,2gi,8mb计算密集大文件下载2核,4gi,3gb流量密集直播4核,4gi,1gb均衡缓存服务1核,10gi,0mb内存密集
65.表1
66.在本发明一实施例中,在根据应用类型,确定每个任务对应的实例规格之前,可以包括:
67.获取边缘服务集群的资源相关数据;根据资源相关数据,生成针对多种应用类型的画像数据;根据画像数据,确定每种应用类型对应的实例规格。
68.作为一示例,资源相关数据可以全局状态数据,如边缘服务节点的当前状态数据、容器的当前状态数据等,还可以包括实时指标数据,如节点空闲资源、实例水位等。
69.在具体实现中,可以采集边缘服务集群的资源相关数据,然后根据资源相关数据进行模型训练,生成针对多种应用类型的画像数据,进而可以根据画像数据,确定每种应用类型对应的实例规格,保证了实例规格根据应用类型的动态调整。
70.如图2b,在资源调度的过程中,一方面,通过对边缘服务集群中边缘服务节点进行实时指标数据采集,结合历史数据进行模型训练,另一方面,通过对边缘服务集群中边缘服务节点进行当前状态数据采集,结合全局状态数据,进而可以生成画像数据,然后可以根据画像数据确定实例规格。
71.步骤103,根据资源需求和实例规格,在边缘服务集群进行资源调度,并基于调度的资源,在边缘服务集群中部署多个任务。
72.在确定资源需求和实例规格后,可以在边缘服务集群进行资源调度,然后可以基于调度的资源,在边缘服务集群中部署多个任务,进而可以实现多种类型的应用混合部署。
73.在本发明一实施例中,根据资源需求和实例规格,在边缘服务集群进行资源调度,可以包括:
74.子步骤11,根据资源需求,确定每个任务的主资源类型。
75.对于每个任务,可以根据其资源需求,确定所需的资源类型中的主资源类型,进而可以根据主资源类型,实现drf算法中主资源公平的调度方式。
76.例如,边缘服务集群的总资源有9核cpu、18gb的ram,任务a的资源需求为1核cpu、4gb的ram,则其所需的资源类型中cpu占总资源的1/9、ram占总资源的4/18,则任务a的主资源类型为ram,任务b的资源需求为3核cpu、1gb的ram,则其所需的资源类型中cpu占总资源
的3/9、ram占总资源的1/18,则任务b的主资源类型为cpu。
77.子步骤12,根据主资源类型的已分配资源信息,确定目标任务。
78.在每次进行资源调度时,可以确定为该任务的主资源类型的已分配资源信息,进而可以从所有任务中,选取主资源类型的已分配资源最小的任务,作为目标任务,目标任务即为当前要分配资源的任务。
79.例如,边缘服务集群的总资源有9核cpu、18gb的ram,任务a的资源需求为1核cpu、4gb的ram,任务a的主资源类型为ram,其已分配2gb的ram,占总资源的2/18,任务b的资源需求为3核cpu、1gb的ram,任务b的主资源类型为cpu,其已分配2核cpu,占总资源的2/9。通过比较可知,任务a的主资源类型为ram仅占总资源的2/18,其小于任务b的主资源类型为cpu占总资源的2/9,则可以确定任务a为目标任务,即接下来要给任务a分配资源。
80.在本发明一实施例中,子步骤12,可以包括:
81.确定多个任务之间的依赖关系;根据依赖关系,确定前置依赖的任务已完成资源分配的一个或多个候选任务;根据主资源的已分配资源信息,从一个或多个候选任务中确定目标任务。
82.在多个任务之间存在依赖关系的场景下,可以根据多个任务之间的依赖关系,确定前置依赖的任务已完成资源分配的一个或多个候选任务,然后可以根据主资源的已分配资源信息的从一个或多个候选任务中确定目标任务。具体的,可以根据依赖关系构建有向图,然后统计有向图中每个任务的入度,即指有向无环图(dag,directed acyclic graph)中某点作为图中边的终点的次数之和,当某个任务的入度为0,则表征其前置依赖的任务已完成资源分配。
83.如图2c,任务a要运行必须先部署任务b,则任务b是任务a的前置依赖的任务,同理,任务b要运行必须先部署任务c,则任务c是任务b的前置依赖的任务。
84.此时,任务a和d的入度为0,根据主资源类型的已分配信息,从任务a和任务d中,选择任务a进行资源分配,则任务b的入度减1,任务b的入度变成0,则可以进一步从任务a、b和d中选取任务进行资源分配。
85.子步骤13,按照目标任务的实例规格,在边缘服务集群为目标任务进行资源调度。
86.由于上文中已经确定了每个任务对应的实例规格,则可以按照实例规格来对资源需求进行切片化,将资源需求切片为一个或多个符合实例规格的切片资源。
87.在本发明一实施例中,在子步骤13之前,还可以包括:
88.确定边缘服务集群的剩余资源信息;在边缘服务集群的剩余资源信息满足目标任务的实例规格的情况下,执行子步骤13。
89.在具体实现中,可以确定边缘服务集群的剩余资源信息,在边缘服务集群的剩余资源信息不能满足目标任务的实例规格的情况下,则不进行资源分配,在边缘服务集群的剩余资源信息满足目标任务的实例规格的情况下,则可以按照实例规格进行资源分配,直至资源分配完,进而实现了在drf算法的基础上扩展装箱(bin packing)策略。
90.在本发明一实施例中,在子步骤13之前,还可以包括:
91.确定目标任务的已分配资源信息;在目标任务的已分配资源信息未达到目标任务的资源分配上限的情况下,执行子步骤13。
92.在具体实现中,针对每个任务可以设置资源分配上限,确定目标任务的已分配资
源信息,在目标任务的已分配资源信息达到目标任务的资源分配上限的情况下,则不进行资源分配,在目标任务的已分配资源信息未达到目标任务的资源分配上限的情况下,则可以按照实例规格进行资源分配,直至资源分配达到资源分配上限,进而实现了在drf算法的基础上扩展限制(limit)策略。
93.在本发明一实施例中,在子步骤13之后,还可以包括:
94.更新目标任务的主资源的已分配资源信息、目标任务的已分配资源信息,以及边缘服务集群的剩余资源信息。
95.在每次分配资源后,可以根据当前实际情况,更新目标任务的主资源的已分配资源信息、目标任务的已分配资源信息,以及边缘服务集群的剩余资源信息,以便后续使用。
96.在本发明一实施例中,还可以包括:
97.针对按照实例规格分配给同一任务的资源,进行合并且与对外隔离。
98.由于是将一个任务的资源需求按照实例规格切片化为多个切片资源,则可以对同一任务的切片资源进行合并,通过隔离计算资源,然后部署到边缘服务集群中,进而可以避免不同任务的资源相互影响。
99.以下结合图2d对本发明实施例进行示例性说明:
100.假设,存在任务a、任务b、任务c,其仅资源需求比例分别为5:3:4(假设仅存在一通相同的资源类型),则可以根据画像数据,确定每个任务对应的实例规格,然后在drf算法基础上结合装箱策略、限制策略确定每个任务的分配顺序,接着对同一任务的切片资源通过隔离计算资源,并合并部署到边缘服务集群中。
101.其中,在drf算法基础上结合装箱策略、限制策略的处理过程如下:
102.通过将以下数据进行输入:
103.边缘服务集群中m个资源类型的资源容量r=《r1,r2,...,rm》、m个资源类型的已分配资源c=《c1,c2,...,cm》、任务i已分配的资源u=《u
i,1
,u
i,2
,...,u
i,m
》(初始化为0)、每个任务的权重w=《w
i,1
,w
i,2
,...,w
i,m
》。
104.权重可以根据认为的资源需求来确定,与资源需求成正比。
105.在经过算法处理后,可以输出:
106.任务i分配到的资源u=《u
i,1
,u
i,2
,...,u
i,m

107.具体而言,其过程如下:
108.1、从所有任务中,选取主资源类型的已分配资源最小的目标任务i。
109.2、尝试将边缘服务集群的资源分配给目标任务i,具体如下:
110.2.1、如果边缘服务集群的剩余资源能够满足目标任务i的实例规格,则进一步判断目标任务i的已分配资源是否达到资源分配上限,若达到,则不加入资源分配队列,若未达到,则加入资源分配队列,以进行资源分配,并更新目标任务i的主资源的已分配资源信息、目标任务i的已分配资源信息,以及边缘服务集群的剩余资源信息。
111.2.2、如果边缘服务集群的剩余资源不能够满足目标任务i的实例规格,不加入资源分配队列。
112.在本发明实施例中,通过获取多个任务的资源需求,多个任务包括不同应用类型的任务,然后确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格,不同应用类型的任务可配置不同的实例规格,接着根据资源需求和实例规格,在边缘服务
集群进行资源调度,并基于调度的资源,在边缘服务集群中部署多个任务,实现了在边缘服务集群中对多种类型的应用进行混合部署,提升了边缘应用的弹性,且在混合部署的过程中,基于动态的实例规格进行资源调度,减少资源碎片问题,提升了资源利用率。
113.参照图3,示出了本发明一实施例提供的另一种应用混合部署的方法的步骤流程图,具体可以包括如下步骤:
114.步骤301,获取多个任务的资源需求;其中,多个任务包括不同应用类型的任务。
115.步骤302,确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格;其中,不同应用类型的任务可配置不同的实例规格。
116.步骤303,根据资源需求,确定每个任务的主资源类型。
117.对于每个任务,可以根据其资源需求,确定所需的资源类型中的主资源类型,进而可以根据主资源类型实现drf算法中主资源公平的调度方式。
118.例如,边缘服务集群的总资源有9核cpu、18gb的ram,任务a的资源需求为1核cpu、4gb的ram,则其所需的资源类型中cpu占总资源的1/9、ram占总资源的4/18,则任务a的主资源类型为ram,任务b的资源需求为3核cpu、1gb的ram,则其所需的资源类型中cpu占总资源的3/9、ram占总资源的1/18,则任务b的主资源类型为cpu。
119.步骤304,根据主资源类型的已分配资源信息,确定目标任务。
120.在每次进行资源调度时,可以确定为该任务的主资源类型的已分配资源信息,进而可以从所有任务中,选取主资源类型的已分配资源最小的任务,作为目标任务,目标任务即为当前要分配资源的任务。
121.例如,边缘服务集群的总资源有9核cpu、18gb的ram,任务a的资源需求为1核cpu、4gb的ram,任务a的主资源类型为ram,其已分配2gb的ram,占总资源的2/18,任务b的资源需求为3核cpu、1gb的ram,任务b的主资源类型为cpu,其已分配2核cpu,占总资源的2/9。通过比较可知,任务a的主资源类型为ram仅占总资源的2/18,其小于任务b的主资源类型为cpu占总资源的2/9,则可以确定任务a为目标任务,即接下来要给任务a分配资源。
122.步骤305,确定边缘服务集群的剩余资源信息。
123.在具体实现中,可以确定边缘服务集群的剩余资源信息,以根据剩余资源的情况来控制后续资源调度,实现了在drf算法的基础上扩展装箱策略。
124.步骤306,在边缘服务集群的剩余资源信息满足目标任务的实例规格的情况下,确定目标任务的已分配资源信息。
125.在边缘服务集群的剩余资源信息不能满足目标任务的实例规格的情况下,则不进行资源分配,在边缘服务集群的剩余资源信息满足目标任务的实例规格的情况下,可以确定目标任务的已分配资源信息。
126.步骤307,在目标任务的已分配资源信息未达到目标任务的资源分配上限的情况下,按照目标任务的实例规格,在边缘服务集群为目标任务进行资源调度,并更新目标任务的主资源类型的已分配资源信息、目标任务的已分配资源信息,以及边缘服务集群的剩余资源信息。
127.在目标任务的已分配资源信息达到目标任务的资源分配上限的情况下,则不进行资源分配,在目标任务的已分配资源信息未达到目标任务的资源分配上限的情况下,则可以按照实例规格进行资源分配,直至资源分配达到资源分配上限,进而实现了在drf算法的
基础上扩展限制策略。
128.而且,在每次分配资源后,可以根据当前实际情况,更新目标任务的主资源的已分配资源信息、目标任务的已分配资源信息,以及边缘服务集群的剩余资源信息,以便后续使用。
129.步骤308,针对按照实例规格分配给同一任务的资源,进行合并且与对外隔离。
130.由于是将一个任务的资源需求按照实例规格切片化为多个切片资源,则可以对同一任务的切片资源进行合并,通过隔离计算资源,然后部署到边缘服务集群中,进而可以避免不同任务的资源相互影响。
131.步骤309,基于调度的资源,在边缘服务集群中部署多个任务。
132.在进行资源调度后,然后可以基于调度的资源,在边缘服务集群中部署多个任务,进而可以实现多种类型的应用混合部署。
133.在本发明实施例中,获取多个任务的资源需求,多个任务包括不同应用类型的任务,确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格,不同应用类型的任务可配置不同的实例规格,根据资源需求,确定每个任务的主资源类型,根据主资源类型的已分配资源信息,确定目标任务,确定边缘服务集群的剩余资源信息,在边缘服务集群的剩余资源信息满足目标任务的实例规格的情况下,确定目标任务的已分配资源信息,在目标任务的已分配资源信息未达到目标任务的资源分配上限的情况下,按照目标任务的实例规格,在边缘服务集群为目标任务进行资源调度,并更新目标任务的主资源类型的已分配资源信息、目标任务的已分配资源信息,以及边缘服务集群的剩余资源信息,针对按照实例规格分配给同一任务的资源,进行合并且与对外隔离,基于调度的资源,在边缘服务集群中部署多个任务,实现了在应用混合部署的过程中基于主资源类型进行资源调度,且在资源调度的过程中,结合边缘服务集群的剩余资源信息、任务的资源分配上限进行控制。
134.参照图4,示出了本发明一实施例提供的另一种应用混合部署的方法的步骤流程图,具体可以包括如下步骤:
135.步骤401,获取边缘服务集群的资源相关数据。
136.在具体实现中,可以采集边缘服务集群的资源相关数据,资源相关数据可以全局状态数据,如边缘服务节点的当前状态数据、容器的当前状态数据等,还可以包括实时指标数据,如节点空闲资源、实例水位等。
137.步骤402,根据资源相关数据,生成针对多种应用类型的画像数据。
138.在获得资源相关数据后,可以根据资源相关数据进行模型训练,生成针对多种应用类型的画像数据。
139.步骤403,根据画像数据,确定每种应用类型对应的实例规格。
140.在生成画像数据后,可以根据画像数据,确定每种应用类型对应的实例规格,保证了实例规格根据应用类型的动态调整。
141.步骤404,获取多个任务的资源需求;其中,多个任务包括不同应用类型的任务。
142.步骤405,确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格;其中,不同应用类型的任务可配置不同的实例规格。
143.步骤406,根据资源需求和实例规格,在边缘服务集群进行资源调度,并基于调度
的资源,在边缘服务集群中部署多个任务。
144.在本发明实施例中,通过获取边缘服务集群的资源相关数据,根据资源相关数据,生成针对多种应用类型的画像数据,根据画像数据,确定每种应用类型对应的实例规格,获取多个任务的资源需求;其中,多个任务包括不同应用类型的任务,确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格,不同应用类型的任务可配置不同的实例规格,根据资源需求和实例规格,在边缘服务集群进行资源调度,并基于调度的资源,在边缘服务集群中部署多个任务,实现了在应用混合部署的过程中基于边缘服务集群的资源相关数据动态调整每个任务对应的实例规格,保证了实例规格的匹配度。
145.参照图5,示出了本发明一实施例提供的另一种应用混合部署的方法的步骤流程图,具体可以包括如下步骤:
146.步骤501,获取多个任务的资源需求;其中,多个任务包括不同应用类型的任务。
147.步骤502,确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格;其中,不同应用类型的任务可配置不同的实例规格。
148.步骤503,根据资源需求,确定每个任务的主资源类型。
149.步骤504,确定多个任务之间的依赖关系。
150.在多个任务之间存在依赖关系的场景下,可以确定多个任务之间的依赖关系。
151.步骤505,根据依赖关系,确定前置依赖的任务已完成资源分配的一个或多个候选任务。
152.在多个任务之间存在依赖关系的场景下,可以根据多个任务之间的依赖关系,确定前置依赖的任务已完成资源分配的一个或多个候选任务。
153.具体的,可以根据依赖关系构建有向图,然后统计有向图中每个任务的入度,即指有向无环图(dag,directed acyclic graph)中某点作为图中边的终点的次数之和,当某个任务的入度为0,则表征其前置依赖的任务已完成资源分配。
154.如图2c,任务a要运行必须先部署任务b,则任务b是任务a的前置依赖的任务,同理,任务b要运行必须先部署任务c,则任务c是任务b的前置依赖的任务。
155.步骤506,根据主资源的已分配资源信息,从一个或多个候选任务中确定目标任务。
156.在确定一个或多个候选任务后,可以根据主资源的已分配资源信息的从一个或多个候选任务中确定目标任务。
157.如图2c,任务a要运行必须先部署任务b,则任务b是任务a的前置依赖的任务,同理,任务b要运行必须先部署任务c,则任务c是任务b的前置依赖的任务。
158.此时,任务a和d的入度为0,根据主资源类型的已分配信息,从任务a和任务d中,选择任务a进行资源分配,则任务b的入度减1,任务b的入度变成0,则可以进一步从任务a、b和d中选取任务进行资源分配。
159.步骤507,按照目标任务的实例规格,在边缘服务集群为目标任务进行资源调度。
160.步骤508,基于调度的资源,在边缘服务集群中部署多个任务。
161.在本发明实施例中,通过获取多个任务的资源需求,多个任务包括不同应用类型的任务,确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格,不同应用类型的任务可配置不同的实例规格,根据资源需求,确定每个任务的主资源类型,确定
多个任务之间的依赖关系,根据依赖关系,确定前置依赖的任务已完成资源分配的一个或多个候选任务,根据主资源的已分配资源信息,从一个或多个候选任务中确定目标任务,按照目标任务的实例规格,在边缘服务集群为目标任务进行资源调度,基于调度的资源,在边缘服务集群中部署多个任务,实现了在应用混合部署的过程中结合多个任务之间依赖关系进行资源调度,保证了资源调度的准确性。
162.参照图6,示出了本发明一实施例提供的另一种应用混合部署的方法的步骤流程图,具体可以包括如下步骤:
163.步骤601,在将已部署的第一任务的资源分配至已部署的第二任务时,获取多个已部署的任务的资源需求;其中,多个任务包括不同应用类型的任务,第一任务的资源需求为根据第一任务的已分配资源信息确定的,第二任务的资源需求为实际提交的资源需求。
164.在已部署的任务扩容或缩容的场景下,即在将已部署的第一任务的资源分配至已部署的第二任务时,第一任务的资源需求可以为根据第一任务的已分配资源信息(水位)确定的,第二任务的资源需求可以为实际提交的资源需求,根据资源需求参与后续的资源调度,如将其作为后文中drf算法中输入的权重。
165.如图2a,在已部署的任务扩容或缩容的场景下,边缘服务集群中存在已部署的任务a、任务b、任务c,任务a需要申请使用更多的资源,如任务a原来分配的是5核cpu,现在需要使用申请10核cpu,则可以将任务b的资源腾挪至任务a。
166.已分配给任务b的资源为30核cpu,其当前使用了15核cpu,则可以将15核cpu作为其资源需求参与后续的资源调度,任务a是要进行扩容,则可以直接将需要的10核cpu作为其资源需求参与后续的资源调度。
167.步骤602,确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格;其中,不同应用类型的任务可配置不同的实例规格。
168.步骤603,根据资源需求和实例规格,在边缘服务集群进行资源调度,并基于调度的资源,在边缘服务集群中部署多个任务。
169.在本发明实施例中,通过在将已部署的第一任务的资源分配至已部署的第二任务时,获取多个已部署的任务的资源需求,多个任务包括不同应用类型的任务,第一任务的资源需求为根据第一任务的已分配资源信息确定的,第二任务的资源需求为实际提交的资源需求,然后确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格,不同应用类型的任务可配置不同的实例规格,根据资源需求和实例规格,在边缘服务集群进行资源调度,并基于调度的资源,在边缘服务集群中部署多个任务,实现了在应用混合部署的过程中动态确定资源需求,能够适用对已部署任务的扩容或缩容的场景。
170.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
171.参照图7,示出了本发明一实施例提供的一种应用混合部署的装置的结构示意图,具体可以包括如下模块:
172.资源需求获取模块701,用于获取多个任务的资源需求;其中,多个任务包括不同
应用类型的任务。
173.实例规格确定模块702,用于确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格;其中,不同应用类型的任务可配置不同的实例规格。
174.资源调度和任务部署模块703,用于根据资源需求和实例规格,在边缘服务集群进行资源调度,并基于调度的资源,在边缘服务集群中部署多个任务。
175.在本发明一实施例中,资源调度和任务部署模块703,包括:
176.主资源类型确定子模块,用于根据资源需求,确定每个任务的主资源类型;
177.目标任务确定子模块,用于根据主资源类型的已分配资源信息,确定目标任务;
178.资源调度子模块,用于按照目标任务的实例规格,在边缘服务集群为目标任务进行资源调度。
179.在本发明一实施例中,还包括:
180.基于剩余资源信息处理模块,用于确定边缘服务集群的剩余资源信息;在边缘服务集群的剩余资源信息满足目标任务的实例规格的情况下,调用资源调度子模块。
181.在本发明一实施例中,还包括:
182.基于已分配资源信息处理模块,用于确定目标任务的已分配资源信息;在目标任务的已分配资源信息未达到目标任务的资源分配上限的情况下,执行调用资源调度子模块。
183.在本发明一实施例中,还包括:
184.信息模块,用于更新目标任务的主资源类型的已分配资源信息、目标任务的已分配资源信息,以及边缘服务集群的剩余资源信息。
185.在本发明一实施例中,还包括:
186.合并和隔离模块,用于针对按照实例规格分配给同一任务的资源,进行合并且与对外隔离。
187.在本发明一实施例中,目标任务确定子模块,包括:
188.依赖关系确定单元,用于确定多个任务之间的依赖关系;
189.候选任务确定单元,用于根据依赖关系,确定前置依赖的任务已完成资源分配的一个或多个候选任务;
190.已分配资源信息确定目标任务单元,用于根据主资源的已分配资源信息,从一个或多个候选任务中确定目标任务。
191.在本发明一实施例中,在将已部署的第一任务的资源分配至已部署的第二任务时,第一任务的资源需求为根据第一任务的已分配资源信息确定的,第二任务的资源需求为实际提交的资源需求。
192.在本发明一实施例中,还包括:
193.资源相关数据获取模块,用于获取边缘服务集群的资源相关数据;
194.画像数据生成模块,用于根据资源相关数据,生成针对多种应用类型的画像数据;
195.画像数据确定实例规格模块,用于根据画像数据,确定每种应用类型对应的实例规格。
196.在本发明实施例中,通过获取多个任务的资源需求,多个任务包括不同应用类型的任务,然后确定每个任务的应用类型,并根据应用类型,确定每个任务对应的实例规格,
不同应用类型的任务可配置不同的实例规格,接着根据资源需求和实例规格,在边缘服务集群进行资源调度,并基于调度的资源,在边缘服务集群中部署多个任务,实现了在边缘服务集群中对多种类型的应用进行混合部署,提升了边缘应用的弹性,且在混合部署的过程中,基于动态的实例规格进行资源调度,减少资源碎片问题,提升了资源利用率。
197.本发明一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上应用混合部署的方法。
198.本发明一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上应用混合部署的方法。
199.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
200.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
201.本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
202.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
203.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
204.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
205.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
206.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括上述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
207.以上对所提供的一种应用混合部署的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1