一种智能制造场景微服务部署方案和资源再分配方法

文档序号:31670477发布日期:2022-09-28 00:49阅读:55来源:国知局
一种智能制造场景微服务部署方案和资源再分配方法

1.本发明涉及工业物联网领域,尤其涉及一种智能制造场景微服务部署方案和资源再分配方法。


背景技术:

2.随着柔性生产的发展,生产环境变得越来越复杂多变,基于微服务架构的工业应用也面临着及时响应订单变化、迅速进行服务部署的需求。边缘微服务部署是指在边缘计算环境中,决策系统根据不同的服务器资源、服务请求的时空分布,判断出微服务需要分别部署在哪些服务器的过程。在复杂的工厂环境中,微服务部署问题通常被建模为高维的混合整数非线性规划问题或整数非线性规划问题,对于这类问题的求解是非常困难的。相关研究通常采用增广拉格朗日、交替方向乘子法等基于迭代的方法或深度学习、深度强化学习等基于人工智能的方法来进行求解。由于微服务部署问题通常是非凸问题,因此通过迭代逐步逼近最优解的过程是缓慢的;基于人工智能的相关方法由于需要通过多次前向传播来反馈学习网络梯度,因此其训练过程也需要耗费大量时间。
3.而由于生产环境的高度动态性,若服务部署决策需要高算力和较长时间的运行时间,部署策略的及时性很难得到保证,服务响应效率也很难得到提高。因此,需要一种能够迅速得出部署策略的算法,实现快速且准确的微服务部署决策。
4.在边缘微服务部署的过程中,每个微服务都会请求一定的计算资源,其运行环境也会占用一定的存储空间。由于边缘服务器的计算、存储资源受限,因此在得出初步微服务部署决策后,会出现边缘服务器的计算资源没有得到充分利用的情况,从而导致计算资源闲置。因此,需要一种能够对计算资源进行合理分配的算法,实现计算资源的最大化利用。
5.因此,本领域的技术人员致力于开发一种智能制造场景微服务部署方案和资源再分配方法。


技术实现要素:

6.有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是在极短的时间内得到微服务部署方案的近似最优解,充分利用边缘服务器的计算资源,提升微服务的处理速度。
7.为实现上述目的,本发明提供了一种智能制造场景微服务资源再分配方法,所述方法包括如下步骤:
8.s101:对服务器上部署的所述微服务建模,所述建模包括服务器n的计算资源在所述服务器n上部署j个所述微服务,所述微服务j请求的计算资源为uj,实际分配给所述微服务j的计算资源为fj;
9.s103:确定约束条件:给所述微服务分配的所述计算资源满足约束fj≥uj,即分配给所述微服务的所述计算资源必须不小于其请求的所述计算资源;所有分配的所述计算资源满足约束即所有分配的所述计算资源不能超出所述服务器n拥有的总计算
资源;
10.s105:构建优化问题:设置评价函数ej=uj/fj,所述评价函数用于评价所述微服务的计算时间占原本计算时间的比例,所述优化问题构建为:
[0011][0012]
s.t.fj≥uj,
[0013][0014]
s107:求解所述优化问题,并根据求解结果对所述微服务进行资源再分配,其中,所述优化问题的拉格朗日函数为:
[0015][0016]
其中,λi和μ为拉格朗日乘子;
[0017]
所述优化问题的kkt条件为:
[0018][0019]
λi(u
j-fj)=0,
[0020][0021]
λi≥0,
[0022]
μ≥0
[0023]
对所述kkt条件求解得到实际分配给所述微服务j的计算资源fj[0024]

[0025]
另一方面,本发明还提供了一种智能制造场景微服务部署方案,所述部署方案包括以下步骤:
[0026]
s201:场景建模与优化问题构建,其中,
[0027]
所述场景建模,包括对边缘计算系统中边缘服务器的资源,所述边缘服务器和云服务器之间的通信带宽、部署到所述边缘服务器中所述微服务的数量和部署策略;
[0028]
所述优化问题构建,包括约束构建和目标函数构建,所述约束构建包括所述微服务部署到所述边缘服务器的约束条件,所述目标函数构建包括所有所述边缘服务器上的所述微服务下载时间之和、所有所述边缘服务器上的所有所述微服务之间的通讯开销之和;
[0029]
s203:根据效用函数将多目标优化问题转化为单目标优化问题,采用加性加权模
型将问题转化为具有帕累托最优解的单目标问题,所述效用函数为:
[0030][0031]
其中u
1min
,u
1max
是优化目标u1的最小值和最大值,u
2min
,u
2max
是优化目标u2的最小值和最大值,θ为加权系数,且0≤θ≤1;
[0032]
s205:通过微服务部署算法求解所述单目标优化问题的近似最优解,得到基于权重排序的微服务部署策略;
[0033]
s207:应用资源再分配方法,对所述基于权重排序的所述微服务部署策略分配的所述微服务的请求资源重新分配。
[0034]
进一步地,所述场景建模包括:所述边缘服务器n上的计算和存储资源为和每台所述边缘服务器与云服务器之间的带宽为所述边缘服务器n与n

之间的跳数为d
nn

,第m个应用程序包含的所述微服务数量为am,ms
mi
为所述应用程序m中第i个所述微服务,所述微服务请求的计算资源为c
mi
,两个所述微服务ms
mi
与ms
mj
之间的通讯数据量为所述微服务层共有l层,s
l
表示第l层的大小,e
mil
∈{0,1}表示ms
mi
是否包含第l层,所述微服务的部署策略为表示所述微服务ms
mi
被部署所述边缘服务器n上,表示所述微服务层的下载情况,表示第l层被部署到所述边缘服务器n。
[0035]
进一步地,所述约束构建包括部署唯一性约束、所述微服务部署变量和层部署变量之间的约束,其中,
[0036]
所述部署唯一性约束,即每个所述微服务只能部署在一台所述边缘服务器上,即满足以下约束:
[0037][0038]
所述微服务部署变量和层部署变量之间的约束,即和满足以下约束:
[0039]

[0040]
进一步地,所述约束构建还包括计算资源约束和存储资源约束,其中,
[0041]
所述计算资源约束为所述服务器上部署的所有所述微服务的所述计算资源总需求小于所述服务器的计算能力,
[0042][0043]
所述存储资源约束为所述服务器上部署的所述微服务所有层的大小小于所述服务器的所述存储资源,
[0044]

[0045]
进一步地,所述目标函数构建包括下载延迟最小化构建和通讯开销最小化构建,其中,
[0046]
所述下载延迟最小化构建,即构建所有所述边缘服务器上的下载时间之和最小,
[0047][0048][0049]
其中,tn为部署在所述边缘服务器n上的所有所述微服务层的下载时间,
[0050]
所述通讯开销最小化构建,即构建所有所述应用程序之间的通讯开销之和最小,
[0051][0052][0053][0054]
其中,rm为任意一台工业设备m上所对应的应用程序的通讯开销,hop(m,i,j)为任意两个所述微服务ms
mi
与ms
mj
所部署的所述边缘服务器之间的跳数。
[0055]
进一步地,所述目标函数构建还包括多目标优化构建,所述多目标优化构建为:
[0056]
p1:minu1,u2[0057][0058][0059][0060][0061][0062]
其中,p1为构建的多目标优化。
[0063]
进一步地,所述步骤s203中,根据所述效用函数将多目标优化问题转化的单目标优化问题为:
[0064]
p2:minf(x,z)
[0065][0066][0067][0068][0069][0070]
其中,优化问题p2的最优解就是优化问题p1的弱帕累托最优解,当0≤θ≤1时所述优化问题p2的最优解是所述优化问题p1的帕累托最优解。
[0071]
进一步地,所述s205步骤包括如下步骤:
[0072]
s1:根据所述效用函数对所述微服务间的通讯数据量和所述微服务层大小进行赋权,
[0073][0074]
其中,为赋权后第l层所述微服务层的大小,s
min
和s
max
是所有所述微服务层大小的最小值和最大值,为赋权后两个所述微服务ms
mi
与ms
mj
之间的通讯数据量,w
min
和w
max
是所有所述微服务间通讯数据量的最小值和最大值;
[0075]
s2:根据赋权后的和对所述微服务组进行从大到小排序,排序后的微服务组列表为sort,所述微服务组包括第一微服务集合{ms
mi
|e
mil
=1}和第二微服务集合{ms
mi
,ms
mj
},所述第一微服务集合为含有层s
l
的所有微服务集合,所述第二微服务集合为对应的微服务集合;
[0076]
s3:获取所述微服务组列表sort中的所述微服务组group,检查group中所述微服务的部署情况,若所有所述微服务都已经被部署转s3,继续下一组所述微服务部署;若所有所述微服务都没有被部署转s4;若部分所述微服务被部署转s10;若所有所述微服务组都已被部署转s14;
[0077]
s4:若所述微服务组属于所述第一微服务集合,转s5,否则转s8;
[0078]
s5:将所有所述边缘服务器按照候选服务器产生方式2生成候选服务器列表,从表头开始服务部署,若部署成功,转s6,否则转s7;
[0079]
s6:若有拆分出的单个所述微服务列表,则将场景中所有所述边缘服务器按照候选服务器产生方式2生成所述候选服务器列表,从表头开始服务部署,转s3;
[0080]
s7:将所述微服务组拆分为单个微服务1和微服务组2,拆分原则为拆分后所占空间最小,将所述单个微服务1存入单个微服务列表,对所述微服务组2,转s5;
[0081]
s8:对于所述微服务组,查找距离所述微服务组最近的已部署所述微服务所在的服所述务器n,对所述服务器n按照所述候选服务器产生方式1生成所述候选服务器列表,从表头开始服务部署,若部署成功,转s3,否则转s9;
[0082]
s9:将微服务组拆分为两个微服务3和微服务4;对微服务3,将s8中的所述服务器n按照所述候选服务器产生方式1生成所述候选服务器列表,从表头开始服务部署,得到其部署服务器n

;对所述微服务4,将所述服务器n

按照所述候选服务器产生方式1生成所述候选服务器列表,从表头开始服务部署,转s3;
[0083]
s10:若所述微服务组满足所述第一微服务集合,转s11,否则转s13;
[0084]
s11:对于所述微服务组,获取组内所有已被部署所述微服务所在的所述服务器列表n_list,将所述n_list按照所述候选服务器产生方式2生成所述候选服务器列表,从表头开始将所述微服务组内未部署的所述微服务进行服务部署,若部署成功转s3,否则转s12;
[0085]
s12:将所述微服务组中所有未部署的所述微服务构成新的所述微服务组,转s5;
[0086]
s13:对于所述微服务组,查找所述微服务组中已被部署的所述微服务所在的所述服务器n

,对于组内未部署的所述微服务,将所述服务器n

按照所述候选服务器产生方式1生成所述候选服务器列表,从表头开始服务部署,转s3;
[0087]
s14:部署完成,输出得到的所述微服务部署策略。
[0088]
进一步地,所述候选服务器产生方式1包括:给定所述服务器n,查询所述服务器列表,其中n

满足d
nn

=hop,hop={0,...,最大跳数},对于查询出的服务器列表按照剩余存储空间大小进行排序,得出按照跳数和剩余存储空间进行排序的所述候选服务器列表;
[0089]
所述候选服务器产生方式2包括:给定所述服务器列表n_list,对所述列表中的所有所述服务器按照进行降序排序,得出所述候选服务器列表。
[0090]
在本发明的较佳实施方式中,本发明现对于现有技术,具有如下有益效果:
[0091]
1、本发明通过启发式的算法可以在极短时间内得出近似最优解,能够适应工业生产高度动态的场景。
[0092]
2、本发明考虑了微服务部署后的计算资源闲置导致利用率较低的问题,通过资源再分配方法对闲置的计算资源进行重新分配,可以充分利用服务器的计算资源。
[0093]
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
[0094]
图1是本发明的一个较佳实施例的微服务部署方案流程图;
[0095]
图2是本发明的一个较佳实施例的微服务资源再分配方法流程图;
[0096]
图3是本发明的一个较佳实施例的基于权重排序的微服务部署流程。
具体实施方式
[0097]
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
[0098]
在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以
相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。
[0099]
如图1所示,本发明实施例提供了一种智能制造场景微服务部署方案,所述部署方案包括以下步骤:
[0100]
s201:场景建模与优化问题构建,其中,
[0101]
所述场景建模,包括对边缘计算系统中边缘服务器的资源,所述边缘服务器和云服务器之间的通信带宽、部署到所述边缘服务器中所述微服务的数量和部署策略;
[0102]
所述优化问题构建,包括约束构建和目标函数构建,所述约束构建包括所述微服务部署到所述边缘服务器的约束条件,所述目标函数构建包括所有所述边缘服务器上的所述微服务下载时间之和、所有所述边缘服务器上的所有所述微服务之间的通讯开销之和;
[0103]
s203:根据效用函数将多目标优化问题转化为单目标优化问题,采用加性加权模型将问题转化为具有帕累托最优解的单目标问题,所述效用函数为:
[0104][0105]
其中u
1min
,u
1max
是优化目标u1的最小值和最大值,u
2min
,u
2max
是优化目标u2的最小值和最大值,θ为加权系数,且0≤θ≤1;
[0106]
s205:通过微服务部署算法求解所述单目标优化问题的近似最优解,得到基于权重排序的微服务部署策略;
[0107]
s207:应用资源再分配方法,对所述基于权重排序的所述微服务部署策略分配的所述微服务的请求资源重新分配。
[0108]
本发明提出的边缘计算场景下基于权重排序的微服务部署方案,使用效用函数对两个优化目标进行权衡从而得出其帕累托最优解,使用基于权重排序的启发式方法得出微服务部署方案,并通过资源再分配算法对得出的微服务部署方案重新分配计算资源,从而充分利用边缘服务器的计算资源,得出的微服务部署策略可以直接应用在边缘服务器上进行部署。相对于现有技术通过迭代求解多次优化问题得出部署策略,或使用神经网络、深度强化学习等算法通过长时间的网络训练得出部署策略,现有技术方案的求解时间长,结构复杂,本发明通过启发式的算法可以在极短时间内得出近似最优解,能够适应工业生产高度动态的场景。
[0109]
如图2所示,本发明实施例提供了一种智能制造场景微服务资源再分配方法,所述方法包括如下步骤:
[0110]
s101:对服务器上部署的所述微服务建模,所述建模包括服务器n的计算资源在所述服务器n上部署j个所述微服务,所述微服务j请求的计算资源为uj,实际分配给所述微服务j的计算资源为fj;
[0111]
s103:确定约束条件:给所述微服务分配的所述计算资源满足约束fj≥uj,即分配给所述微服务的所述计算资源必须不小于其请求的所述计算资源;所有分配的所述计算资源满足约束即所有分配的所述计算资源不能超出所述服务器n拥有的总计算资源;
[0112]
s105:构建优化问题:设置评价函数ej=uj/fj,所述评价函数用于评价所述微服务
的计算时间占原本计算时间的比例,所述优化问题构建为:
[0113][0114]
s.t.fj≥uj,
[0115][0116]
s107:求解所述优化问题,并根据求解结果对所述微服务进行资源再分配,其中,所述优化问题的拉格朗日函数为:
[0117][0118]
其中,λi和μ为拉格朗日乘子;
[0119]
所述优化问题的kkt条件为:
[0120][0121]
λi(u
j-fj)=0,
[0122][0123]
λi≥0,
[0124]
μ≥0
[0125]
对所述kkt条件求解得到实际分配给所述微服务j的计算资源fj[0126]

[0127]
通过上述资源再分配方法,可以对部署的微服务分配的资源进行再分配,通过对微服务请求资源的重新分配充分利用边缘服务器的计算资源,一方面可避免由于资源约束引起的计算资源闲置问题,充分利用边缘服务器的计算资源,另一方面也可以尽量满足微服务请求的计算资源,提升微服务的处理速度。
[0128]
本发明实施例提供的智能制造场景微服务部署方案,通过一种微服务部署算法求解所述单目标优化问题的近似最优解,得到基于权重排序的微服务部署策略,所述部署方案包括以下步骤:
[0129]
s1:根据所述效用函数对所述微服务间的通讯数据量和所述微服务层大小进行赋权,
[0130]
[0131]
其中,为赋权后第l层所述微服务层的大小,s
min
和s
max
是所有所述微服务层大小的最小值和最大值,为赋权后两个所述微服务ms
mi
与ms
mj
之间的通讯数据量,w
min
和w
max
是所有所述微服务间通讯数据量的最小值和最大值;
[0132]
s2:根据赋权后的和对所述微服务组进行从大到小排序,排序后的微服务组列表为sort,所述微服务组包括第一微服务集合{ms
mi
|e
mil
=1}和第二微服务集合{ms
mi
,ms
mj
},所述第一微服务集合为含有层s
l
的所有微服务集合,所述第二微服务集合为寸应的微服务集合;
[0133]
s3:获取所述微服务组列表sort中的所述微服务组group,检查group中所述微服务的部署情况,若所有所述微服务都已经被部署转s3,继续下一组所述微服务部署;若所有所述微服务都没有被部署转s4;若部分所述微服务被部署转s10;若所有所述微服务组都已被部署转s14;
[0134]
s4:若所述微服务组属于所述第一微服务集合,转s5,否则转s8;
[0135]
s5:将所有所述边缘服务器按照候选服务器产生方式2生成候选服务器列表,从表头开始服务部署,若部署成功,转s6,否则转s7;
[0136]
s6:若有拆分出的单个所述微服务列表,则将场景中所有所述边缘服务器按照候选服务器产生方式2生成所述候选服务器列表,从表头开始服务部署,转s3;
[0137]
s7:将所述微服务组拆分为单个微服务1和微服务组2,拆分原则为拆分后所占空间最小,将所述单个微服务1存入单个微服务列表,对所述微服务组2,转s5;
[0138]
s8:对于所述微服务组,查找距离所述微服务组最近的已部署所述微服务所在的服所述务器n,对所述服务器n按照所述候选服务器产生方式1生成所述候选服务器列表,从表头开始服务部署,若部署成功,转s3,否则转s9;
[0139]
s9:将微服务组拆分为两个微服务3和微服务4;对微服务3,将s8中的所述服务器n按照所述候选服务器产生方式1生成所述候选服务器列表,从表头开始服务部署,得到其部署服务器n

;对所述微服务4,将所述服务器n

按照所述候选服务器产生方式1生成所述候选服务器列表,从表头开始服务部署,转s3;
[0140]
s10:若所述微服务组满足所述第一微服务集合,转s11,否则转s13;
[0141]
s11:对于所述微服务组,获取组内所有已被部署所述微服务所在的所述服务器列表n_list,将所述n_list按照所述候选服务器产生方式2生成所述候选服务器列表,从表头开始将所述微服务组内未部署的所述微服务进行服务部署,若部署成功转s3,否则转s12;
[0142]
s12:将所述微服务组中所有未部署的所述微服务构成新的所述微服务组,转s5;
[0143]
s13:对于所述微服务组,查找所述微服务组中已被部署的所述微服务所在的所述服务器n

,对于组内未部署的所述微服务,将所述服务器n

按照所述候选服务器产生方式1生成所述候选服务器列表,从表头开始服务部署,转s3;
[0144]
s14:部署完成,输出得到的所述微服务部署策略。
[0145]
本发明提出的基于权重排序的微服务部署方案,能够迅速得出近似最优解。
[0146]
下面结合本发明的一个优选实施例,对本发明进行详细说明。
[0147]
为了适应高度动态的工业生产中对于算法运行时间的高要求,本发明提供了一种
智能制造场景中基于权重排序的微服务部署方案和资源再分配方法。该方法将微服务部署构建为多目标优化问题,通过效用函数进行多个优化目标之间的权衡,使用基于权重排序的启发式方案得出微服务部署策略并对得出的部署策略通过资源再分配算法进行资源的重新分配,从而可以充分利用边缘服务器的计算资源。
[0148]
智能制造场景中基于权重排序的微服务部署方案和资源再分配方法主要包括以下步骤:
[0149]
步骤一:场景建模与优化问题构建。
[0150]
s1:场景建模。
[0151]
考虑一个边缘计算系统,其中有n台边缘服务器,m台工业设备,每台边缘服务器上都有一定的计算和存储资源,边缘服务器n上的计算和存储资源用和表示。每台边缘服务器都和远端的云服务器相连接用于下载和部署微服务,其与云服务器之间的带宽可以用表示。服务器之间的通讯通过多跳传输完成,可以用d
nn

表示边缘服务器n与n

之间的跳数。
[0152]
每台工业设备都对应一个工业应用,用于生产过程中的数据处理。每个工业应用程序都由多个微服务组成,第m个工业应用包含的微服务数量为am,可以用表示这些微服务。对于应用程序m中的第i个微服务ms
mi
,可以用c
mi
来表示其请求的计算资源。每个工业应用内的微服务都与其相邻的微服务存在信息交互,可以用来衡量两个微服务ms
mi
与ms
mj
之间的通讯数据量。
[0153]
微服务通常以微服务镜像的方式存储在云服务器,在需要部署时通过docker容器的方式进行部署。微服务镜像由不同的层构成,相同的层可以在同一台边缘服务器内共享。所有的微服务层都存储在云服务器,共有l层,s
l
表示其中第l层的大小。因此可以用e
mil
∈{0,1}表示ms
mi
是否包含第l层。
[0154]
微服务的部署策略用表示,表示微服务ms
mi
被部署在了边缘服务器n。由于微服务镜像由不同层构成,因此一旦一个微服务被部署在边缘服务器,该微服务所包含的所有微服务层都需要被下载到该服务器。我们用表示微服务层的下载情况,表示第l层被部署到了边缘服务器n。
[0155]
s2:约束构建
[0156]
s2.1部署唯一性约束。由于每个微服务只能部署在一台边缘服务器,因此存在下述约束:
[0157][0158]
s2.2微服务部署变量和层部署变量之间的约束。由于相同的微服务层可以在一台边缘服务器间实现共享,因此相同的层在同一台边缘服务器只需要下载一次,因此和满足以下约束:
[0159][0160]
s2.3计算资源约束。由于边缘服务器的计算资源有限,因此一台服务器上部署的所有微服务的计算资源总需求需要小于服务器的计算能力,也就是以下约束:
[0161][0162]
s2.4存储资源约束。由于边缘服务器的存储资源有限,因此部署的微服务所有层的大小需要小于服务器的存储资源,也就是满足下述约束
[0163][0164]
s2.5微服务请求的初始位置约束。由于每个工业应用都来源于一台生产设备,而在生产过程中,生产设备的位置一般是固定不变的。因此我们定义一个虚拟微服务ms
m0
,位于每个工业应用的起始,其集合变更为对于ms
m0
,其不包含任何微服务层,请求计算资源c
mi
=0。且其部署位置满足:
[0165][0166]
其中n
m0
为工业应用m的请求产生位置对应的边缘服务器。
[0167]
s3:目标函数构建
[0168]
s3.1下载延迟最小化问题。微服务部署需要进行运行环境,也就是微服务层的下载,下载延迟会显著影响微服务响应的效率。对于边缘服务器n,部署在该服务器上的所有微服务层的下载时间可以计算为
[0169][0170]
因此优化目标为所有边缘服务器上的下载时间之和,可以表示为
[0171][0172]
s3.2通讯开销最小化问题。微服务之间的交互会产生大量的通讯数据,如果发生交互的两个微服务部署在同一台边缘服务器上,通讯数据可以直接通过硬盘或内存进行访问;如果他们部署在不同的边缘服务器上,通讯数据需要经过多跳传输到对应的服务器。我们可以用来计算任意两个微服务ms
mi
与ms
mj
所部署的边缘服务器之间的跳数。因此,对于任意一台工业设备m所对应的工业应用,其通讯开销可以表示为
[0173][0174]
优化目标为所有工业设备的工业应用通讯开销之和,可以表示为
[0175][0176]
s3.3多目标优化问题的构建
[0177]
根据s2,s3.1,s3.2可以构建出多目标优化问题:
[0178]
p1:min u1,u2[0179][0180][0181][0182][0183][0184]
步骤二:根据效用函数将多目标优化问题转化为单目标优化问题。为了获得上述问题的最优解,可以采用加性加权模型将问题转化为具有帕累托最优解的单目标问题,效用函数如下:
[0185][0186]
其中u
1min
,u
2min
和u
1max
,u
2max
分别是对应的优化目标的最小值和最大值,而且0≤θ≤1。因此优化问题可以表述如下
[0187]
p2:min f(x,z)
[0188][0189][0190][0191][0192][0193]
优化问题p2的最优解就是优化问题p1的弱帕累托最优解,当0<θ<1时优化问题p2的最优解是优化问题p1的帕累托最优解。
[0194]
步骤三:基于权重排序的微服务部署算法。根据步骤二中转化出的单目标优化问题,提出了一种微服务部署算法来得到近似最优解,具体步骤如图3所示:
[0195]
s1:根据效用函数对微服务间的通讯数据量和微服务层大小进行赋权。
[0196][0197]
其中为赋权后第l层所述微服务层的大小,s
min
和s
max
是所有所述微服务层大小的最小值和最大值,为赋权后两个所述微服务ms
mi
与ms
mj
之间的通讯数据量,w
min
和w
max
是所有所述微服务间通讯数据量的最小值和最大值;
[0198]
s2:定义两种候选服务器列表产生方式。产生方式1:给定服务器n,按照跳数hop从小到大查询服务器列表,每个查询到的服务器n

满足d
nn

=hop,其中hop={0,...,最大跳数},对于相同跳数下的多台服务器,按照服务器剩余存储空间从大到小进行排序,得到按照跳数和剩余存储空间进行排序的候选服务器列表;产生方式2:给定服务器列表n_list,对列表中的所有服务器按照进行降序排序,得到候选服务器列表。
[0199]
s3:根据赋权后的和对微服务组进行从大到小排序。微服务组的定义为

含有层s
l
的所有微服务集合{ms
mi
|e
mil
=1}或

对应的微服务集合{ms
mi
,ms
mj
}。对应的赋权权重或越大的微服务组越靠前,得出排序后的微服务组列表sort,令k=1。
[0200]
s4:选取sort中排序为k的微服务组group,检查group中的微服务的部署情况。k=k+1。若所有微服务都已经被部署,转s4。若所有微服务都没有被部署,转s5。若部分微服务被部署,转s11。若所有微服务组都已经被选取完毕,转s15.
[0201]
s5:若该微服务组满足

,转s6,否则转s9。
[0202]
s6:对于该微服务组,将场景中所有边缘服务器按照s2中的产生方式2生成候选服务器列表,从表头开始尝试进行服务部署。若部署成功,转s7,否则转s8。
[0203]
s7:若有拆分出的单个微服务列表,则将场景中所有边缘服务器按照s2中的产生方式2生成候选服务器列表,从表头开始尝试进行服务部署。转s4。
[0204]
s8:将该微服务组拆分为单个微服务1和微服务组2,拆分原则为拆分后所占空间最小。单个微服务1存入单个微服务列表。对微服务组2,转s6。
[0205]
s9:对于该微服务组,查找距离该微服务组最近的已部署微服务所在的服务器n,对于服务器n按照s2中的产生方式1生成候选服务器列表,从表头开始尝试进行服务部署。若部署成功,转s4,否则转s10。
[0206]
s10:将微服务组拆分为两个微服务1和微服务2,对微服务1,将s9中的服务器n按照s2中的产生方式1生成候选服务器列表,从表头开始尝试进行服务部署,得到其部署服务器n

。对微服务2,将服务器n

按照s2中的产生方式1生成候选服务器列表,从表头开始尝试进行服务部署。转s4。
[0207]
s11:若该微服务组满足

,转s12,否则转s14。
[0208]
s12:对于该微服务组,获取组内所有已被部署微服务所在的服务器列表n_list,将n_list按照s2中的产生方式2生成候选服务器列表,从表头开始尝试将微服务组内的未部署微服务进行服务部署。若部署成功,转s4,否则,转s13。
[0209]
s13:将该微服务组中的所有未部署微服务构成新的微服务组,转s6。
[0210]
s14:对于该微服务组,查找该微服务组中已被部署微服务所在的服务器n

,对于组内未部署的微服务,将服务器n

按照s2中的产生方式1生成候选服务器列表,从表头开始尝试进行服务部署。转s4。
[0211]
s15:部署完成,输出得到的部署策略。
[0212]
步骤四:资源再分配算法。对于步骤三中得出的部署策略,采用资源再分配算法进行服务请求资源的重新分配。具体步骤如下所示:
[0213]
s1:对服务器上部署的微服务建模。服务器n的计算资源为在该服务器上部署了j个微服务,微服务j请求的计算资源为cj,实际分配给微服务j的计算资源为fj。
[0214]
s2:构建资源约束。分配给微服务的计算资源必须不小于其请求的计算资源,因此存在约束fj≥uj。分配的所有计算资源不能超出服务器拥有的总计算资源,因此存在约束
[0215]
s3:构建优化问题。定义评价函数ej=uj/fj,用于评价微服务的计算时间占原本计算时间的比例。那么优化问题可以构建为
[0216][0217]
s.t.fj≥uj,
[0218][0219]
s4:求解上述问题。构造出上述优化问题的拉格朗日函数为
[0220][0221]
其kkt条件为
[0222][0223]
λi(u
j-fj)=
[0224][0225]
λi≥0,
[0226]
μ≥0
[0227]
对其求解可得
[0228]
[0229]
应用求得的fj,对部署的微服务进行资源分配并进行实际的微服务部署。
[0230]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1