一种基于网络边缘系统的微服务部署和路由方法转让专利

申请号 : CN202210249897.6

文献号 : CN114338504B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彭凯邹芷青桂宾邓天平王德胜魏岚

申请人 : 武汉烽火凯卓科技有限公司华中科技大学

摘要 :

本发明提供一种基于网络边缘系统的微服务部署及路由方法,网络边缘系统包括多个移动边缘云,每一个移动边缘云中部署多个边缘服务器,用于处理网络中用户的请求,多种微服务部署于边缘服务器上,通过不同微服务的组合构成不同功能的微服务链,每一个微服务链对应一种功能。基于该网络边缘系统采用一种联合优化的方式同时解决微服务部署问题和用户请求路由问题,提高网络部署方案与请求路由的相互适应性,以降低网络时延与能耗,能应对海量的移动用户请求。此外考虑了不同微服务之间的相互依赖性,通过有效解决各微服务之间的通信依赖关系,有效降低了系统的处理时延、运行能耗,提升了用户的体验感。

权利要求 :

1.一种基于网络边缘系统的微服务部署及路由方法,其特征在于,所述网络边缘系统包括多个移动边缘云,多个移动边缘云分布在不同的城市,移动边缘云之间借助光缆进行通信,每一个移动边缘云中部署多个边缘服务器,用于处理网络中用户的请求,多种微服务部署于边缘服务器上,通过不同微服务的组合构成不同功能的微服务链,每一个微服务链对应一种功能;所述微服务部署及路由方法包括:根据用户请求,基于深度强化学习算法得到微服务部署到边缘服务器的最优微服务部署方案和用户请求在网络边缘系统中依次被微服务处理的最优路由方案;

其中,所述根据用户请求,基于深度强化学习算法得到微服务部署到边缘服务器的最优微服务部署方案和用户请求在网络边缘系统中依次被微服务处理的最优路由方案,包括:根据初始微服务部署矩阵P和用户请求集合,确定各用户请求的路由路径Lrout;

以网络边缘系统的总时延、消耗能量及占用带宽为状态空间 ,将微服务部署策略作为动作空间A;

从所述动作空间A中选择动作at,基于选择的动作at,更新微服务部署矩阵P和路由路径Lrout,并计算当前动作at的代价 以及执行动作at的下一状态空间 ;

将 作为四元组,基于四元组样本对Q网络进行训练;

基于训练后的Q网络,根据待处理用户请求,获取最优微服务部署方案以及每一个用户请求的最优路由方案;

其中,基于更新的部署矩阵P,根据用户请求获取用户所申请的微服务链集合 ,按照微服务链集合中的微服务链的长短进行顺序处理;

根据微服务链集合 中的微服务链 的构成,依次找到微服务对应镜像,选择空闲且距离请求当前位置最近的服务器进行访问,若所述服务器满足条件,则将镜像所属服务器添加到路径 中;否则,在有剩余容量的服务器上随机增加对应镜像,并将此服务器作为请求的下一访问点,对应的服务器加入路径 ;

用符号*标记已被占用的服务器及镜像,从链 中删除已规划访问路径的微服务;

若微服务链 已经规划访问节点完毕,则将 添加到集合Lrout中。

2.根据权利要求1所述的微服务部署及路由方法,其特征在于,通过如下方式获取初始微服务部署矩阵P:根据用户请求偏好,确定微服务的初始镜像个数,其中,对于微服务n的初始镜像个数,根据下式进行计算:其中, 表示来自边缘云k的请求所申请的微服务链s中包含了微服务n;否则,;

求得每种微服务的初始镜像数,将镜像集合记为I;

将镜像集合I中的镜像随机部署到边缘服务器上,并更新对应的微服务部署矩阵P。

3.根据权利要求1所述的微服务部署及路由方法,其特征在于,微服务部署后,网络边缘系统处理单个用户请求 所消耗的能量为:其中, 为边缘服务器CPU能效系数, 为服务器为微服务链s中微服务n所分配的频率, 为服务器处理请求所需的周期数,其中,网络边缘系统能耗约束定义为:其中,E为网络边缘系统能耗的最大值;

网络边缘系统总时延T包括服务器处理时延 、请求在服务器中的排队时延 、请求在单边缘云中的传递时延 和请求跨边缘云的传输时延 ,表示如下:其中,

为各时延的影响因子,S为微服务链的总数,K为边缘云个数。

4.根据权利要求1所述的微服务部署及路由方法,其特征在于,所述微服务部署策略包括微服务的镜像个数改变与微服务具体部署位置改变,从所述动作空间A中选择动作at,基于选择的动作at,更新微服务部署矩阵P和路由路径Lrout,包括:基于选择的动作at,将微服务的镜像部署于边缘服务器上,更新对应的部署矩阵P:其中, 来自边缘云k的请求所申请的微服务链m中包含了微服务n,在将微服务的镜像部署于边缘服务器上时,需满足约束条件:同一边缘服务器上镜像个数不超过服务器核心数,表示如下:其中, 表示镜像i是否部署在了边缘云k的服务器p上,若已部署,则为1;否则为0,为边缘云k的服务器p的最大核数;

以及同种微服务的多个镜像不能部署在同一服务器上,表示为:,N为微服务集合。

5.根据权利要求4所述的微服务部署及路由方法,其特征在于,基于UCB策略从动作空间中选择动作at,其选择依据为:其中, 为当前状态下、对应动作at对应的Q值,即Q网络的输出, 为影响因子, 为对动作at不确定性的度量,其表达式为:其中,t为迭代轮次, 为动作at被选择的次数。

6.根据权利要求3所述的微服务部署及路由方法,其特征在于,所述计算当前动作at的代价 ,包括:其中, 分别为影响因子,T为网络边缘系统总时延, 为网络边缘系统在当前状态st下的总能耗。

7.根据权利要求1所述的微服务部署及路由方法,其特征在于,所述将作为四元组,基于四元组样本对Q网络进行训练,包括:对于每一四元组样本 ,计算目标Q值:

其中, 为目标Q网络的权重, 为影响因子,表示 对y值影响的重要程度, 为目标Q网络的输出,采用梯度下降法更新Q网络的权重 ,Q网络的损失函数为:每经过 次迭代,将Q网络复制到目标Q网络,以更新目标Q网络,将网络边缘系统更新到新的状态;

基于损失函数迭代更新Q网络的权重 ,若迭代达到T次,则结束迭代过程,获得训练后的Q网络。

说明书 :

一种基于网络边缘系统的微服务部署和路由方法

技术领域

[0001] 本发明涉及移动边缘计算领域,更具体地,涉及一种基于网络边缘系统的微服务部署及路由方法。

背景技术

[0002] 随着互联网与5G通信技术的发展,全球移动互联网用户已增长至近44亿。微信、淘宝、抖音等功能各异的移动应用应运而生。呈现爆炸式增长的移动数据使得传统的网络架构不堪重负,移动互联网迫切地需要新的技术架构来缓解当前的压力。
[0003] 近几年来,移动边缘计算架构受到了许多研究者的关注。在此架构中,具有一定计算及存储能力的服务器被部署于更靠近用户的网络边缘直接为用户提供服务,使得部分用户不用通过核心网就可以满足自身需求。与传统的集中式云计算网络相比,更靠近用户的移动边缘计算网络具有更低的传输时延,同时它也能减小核心主干网的带宽等资源。因此,边缘计算架构作为提升通信质量和用户体验的技术架构之一,十分具有发展前景。
[0004] 此外,业务形式不断增多,包括AR/VR、无人驾驶、抖音短视频在内的新兴业务对网络性能、拓展能力、维护能力的要求非常高。传统的单体式、分布式、分层式、面向服务的架构(SOA)难以应对网络的异构性和复杂性,进而纷纷向微服务(Microservices)架构进行转变。所谓微服务,是一些独立自治的功能模块,仅关注于完成一个业务的部分具体功能。微服务之间具有一定的通信规范,它们通过这种交互方式实现一个业务的完整功能。在微信的后端中,超过3000种不同的微服务部署在云数据中心的20000多台服务器上。它们通过特定的组合方式构成各异的功能模块,以应对来自用户的不同请求。这种高内聚、低耦合的技术架构具有易扩展、易维护的特点。显然,它们能很好地适应未来异构移动网络融合的发展趋势。
[0005] 目前没有相关工作对多边缘云微服务网络架构展开详细的研究。许多工作主要集中于边缘计算网络中计算与卸载问题的研究,相关资源调度等算法不能直接应用于微服务架构中,部分工作针对微服务部署问题展开研究。但是,目前只关注粗粒度的部署方式,微服务仍被看作具有完整功能的独立单元,忽略了微服务之间的依赖关系以及交互方式。这类部署方式具有较低的效率且很难应对日益庞大、复杂的移动网络。实际上,微服务高内聚、低耦合的特性使得网络性能更依赖于微服务之间的通信交互方式。合适的微服务部署与请求路由策略能有效降低网络的时延与能耗,这对网络来说至关重要。此外,移动用户数量与日俱增,网络如何应对海量的用户请求是一个有待解决的问题。
[0006] 针对上述研究空白,以及系统性能不佳的问题,亟需有效的网络架构及相应的工作策略来满足移动网络用户的需求。

发明内容

[0007] 本发明针对现有技术中存在的技术问题,提供一种多边缘云中的基于深度强化学习的微服务部署与请求路由联合优化方法具有广阔前景和重要价值。
[0008] 本发明提供了一种基于网络边缘系统的微服务部署及路由方法,所述网络边缘系统包括多个移动边缘云,多个移动边缘云分布在不同的城市,移动边缘云之间借助光缆进行通信,每一个移动边缘云中部署多个边缘服务器,用于处理网络中用户的请求,多种微服务部署于边缘服务器上,通过不同微服务的组合构成不同功能的微服务链,每一个微服务链对应一种功能;所述微服务部署及路由方法包括:根据用户请求,基于深度强化学习算法得到微服务部署到边缘服务器的最优微服务部署方案和用户请求在网络边缘系统中依次被微服务处理的最优路由方案。
[0009] 本发明提供的一种基于网络边缘系统的微服务部署及路由方法,基于网络边缘系统采用一种联合优化的方式同时解决微服务部署问题和用户请求路由问题,提高网络部署方案与请求路由的相互适应性,以降低网络时延与能耗,能应对海量的移动用户请求。此外考虑了不同微服务之间的相互依赖性,通过有效解决各微服务之间的通信依赖关系,有效降低了系统的处理时延、运行能耗,提升了用户的体验感。

附图说明

[0010] 图1为支持微服务的多边缘云网络系统结构示意图;
[0011] 图2为微服务及其在服务器上的部署示意图;
[0012] 图3为用户请求路由示意图;
[0013] 图4为微服务部署与请求路由联合优化算法流程图;
[0014] 图5为请求路由算法流程图。

具体实施方式

[0015] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0016] 为了提高当前网络系统的性能与用户的体验感,本发明尝试提出一种多边缘云中基于深度强化学习的微服务部署与请求路由联合优化方法。在多边缘云中融合微服务技术架构,建立以能耗为约束的系统总时延模型,联合解决微服务部署与请求路由问题,基于改进的深度强化学习算法、BFD算法等来获得优化后的微服务部署与用户请求路由方案,实现从网络部署各模块功能、接受用户请求、处理用户请求至返回处理结果的全部过程,以达到满足一定约束的条件下,最小化系统加权总时延的目的。
[0017] 本发明提出将微服务架构应用于移动边缘网络中,旨在利用微服务与移动边缘技术的优势,增加网络的可扩展性、可维护性,降低网络时延与能耗。基于此模型,本发明提出一种微服务部署与请求路由联合优化策略,通过一种联合优化方式,首先将微服务部署在多边缘云移动网络中并处理网络中的请求,随后为网络中的请求设计访问对应微服务的路由策略。
[0018] 参见图1,为本发明提出的网络边缘系统的结构示意图,该网络边缘系统由多个移动边缘云组成,每个边缘云中部署了一定数量的边缘服务器,多种微服务部署于服务器上,且通过不同的组合构成具有多种功能的微服务链。多个边缘云分布在不同的城市,边缘云之间借助光缆进行通信;每个边缘云中有多台边缘服务器,用于处理网络中用户的请求;有多种微服务,通过组合构成了具有不同功能的微服务链;一种微服务可有多个相同的镜像,这些镜像分别部署于网络中不同的边缘服务器上;所有边缘云皆可接入用户的请求;用户的请求申请对应的微服务链,即用户的请求到达系统后,会根据需求的功能找到对应微服务链,并根据微服务链的构成依次访问微服务。
[0019] 如图1所示,每个边缘云中分别配备了多台边缘服务器,以用于计算、存储周边用户的请求。微服务是将完整的应用划分成高内聚,低耦合的独立模块,它们被部署于服务器上。不同的微服务之间存在一定的通信依赖关系,一种微服务有多个镜像来处理相同的请求,不同的微服务通过不同的组合得到不同的微服务链,以实现应用的对应功能。
[0020] 基于图1中的网络边缘系统,提出一种微服务部署与请求路由联合优化方法,主要包括:根据用户请求,基于深度强化学习算法得到微服务部署到边缘服务器的最优微服务部署方案和用户请求在网络边缘系统中依次被微服务处理的最优路由方案。
[0021] 其中,微服务部署策略包括确定微服务对应镜像的数量以及在服务器上的部署方式;用户请求路由策略包括设计请求在服务器之间的具体路由方式;微服务部署与用户请求路由策略是一种联合优化策略,算法在不断地迭代中同时优化上述两个问题。最终此网络边缘系统可处理不同类型的多种业务请求,且能负担海量的用户请求。
[0022] 作为实施例,所述根据用户请求,基于深度强化学习算法得到微服务部署到边缘服务器的最优微服务部署方案和用户请求在网络边缘系统中依次被微服务处理的最优路由方案,包括:根据初始微服务部署矩阵P和用户请求集合,确定各用户请求的路由路径Lrout;以网络边缘系统的总时延、消耗能量及占用带宽为状态空间 ,将微服务部署策略作为动作空间A;从动作空间A中选择动作at,基于选择的动作at,更新微服务部署矩阵P和路由路径Lrout,并计算当前动作at的代价 以及执行动作at的下一状态 ;将作为四元组,基于四元组样本对Q网络进行训练;基于训练后的Q网络,根据待处理用户请求,获取最优微服务部署方案以及每一个用户请求的最优路由方案。
[0023] 可以理解的是,基于深度强化学习算法得到微服务部署到边缘服务器的最优微服务部署方案和将用户请求路由到边缘服务器的最优路由方案。本发明基于初始的微服务部署矩阵P,确定每一个用户请求路由路径Lrout,随后,本发明以网络边缘系统的总时延(包括处理时延、排队时延、与传输时延)、消耗能量及占用带宽的情况作为状态空间,将微服务的镜像个数改变与具体部署位置改变作为动作空间,通过迭代优化对应方案,在迭代更新的过程中,从动作空间A中选择动态at,基于选择的动作at,更新微服务部署矩阵P和路由路径Lrout,并计算当前动作at的代价 以及执行动作at的下一状态 。将作为四元组,基于四元组样本对Q网络进行训练;基于训练后的Q网
络,根据待处理用户请求,获取最优微服务部署方案以及每一个用户请求的最优路由方案,以得到时延与能耗更低的微服务部署方案和用户请求路由方案。
[0024] 在求解最优方案时,包括微服务部署与用户请求路由两部分,主要包括首先将微服务及其所有镜像部署在不同的服务器上,再根据现有部署方案确定用户请求在网络中的路由方案。部署流程与请求路由规划流程见示意图2和图3。因此网络边缘系统中,服务器负载、网络带宽、请求处理速度、服务器之间的实际距离等因素都将影响部署方案与用户请求方案效果。建立以能耗为约束的系统总时延模型,通过计算系统中请求处理时延、请求排队时延、请求同边缘云内传输时延以及请求跨边缘云传输时延的加权和来衡量当前方案的优劣。
[0025] 作为实施例,对于微服务进行初始部署,得到初始微服务部署矩阵P,具体为,根据用户请求偏好,确定微服务的初始镜像个数,其中,对于微服务n的初始镜像个数 ,根据下式进行计算:
[0026]
[0027] 其中, 表示来自边缘云k的请求所申请的微服务链s中包含了微服务n,;否则, 。
[0028] 通过上式,可求得每种微服务的初始镜像数,将镜像集合记为I。将镜像集合I中的镜像随机部署到边缘服务器上,并更新对应的微服务部署矩阵P。
[0029] 作为实施例,微服务部署后,网络边缘系统处理单个用户请求 所消耗的能量为:
[0030]
[0031] 其中, 为边缘服务器CPU能效系数, 为服务器为微服务n所分配的频率,为服务器处理请求所需的周期数,其中,网络边缘系统能耗约束定义为:
[0032]
[0033] 其中,E为网络边缘系统能耗的最大值。
[0034] 网络边缘系统总时延T包括服务器处理时延 、请求在服务器中的排队时延、请求在单边缘云中的传递时延 和请求跨边缘云的传输时延 ,表示如下:
[0035] 其中, 为各时延的影响因子,S为微服务链的总数,K为边缘云个数。
[0036] 其中,需要说明的是,在每次对微服务进行部署时,基于选择的部署动作at,将微服务的镜像部署于边缘服务器上,更新对应的部署矩阵P:
[0037]
[0038] 其中, 来自边缘云k的请求所申请的微服务链m中包含了微服务n。在将微服务的镜像部署于边缘服务器上时,需满足两个约束条件:
[0039] (1)同一边缘服务器上镜像个数不超过服务器核心数,表示如下:
[0040]
[0041] 其中, 表示镜像i是否部署在了边缘云k的服务器p上,若已部署,则为1;否则为0, 为边缘云k的服务器p的最大核数。
[0042] (2)同种微服务的多个镜像不能部署在同一服务器上,表示为:
[0043]
[0044] 其中, ,N为微服务集合。
[0045] 将微服务部署于边缘服务器之后,基于用户请求路由策略得到每一个用户请求的路由路径。具体的,基于更新的部署矩阵P,根据用户请求获取用户所申请的微服务链集合,按照微服务链集合中的微服务链的长短进行顺序处理;根据微服务链集合 中的微服务链 的构成,依次找到微服务对应镜像,选择空闲且距离请求当前位置最近的服务器进行访问,若所述服务器满足条件,则将镜像所属服务器添加到路径 中;否则,在有剩余容量的服务器上随机增加对应镜像,并将此服务器作为请求的下一访问点,对应的服务器加入路径 ;用符号*标记已被占用的服务器及镜像,从链 中删除已规划访问路径的微服务;若微服务链 已经规划访问节点完毕,则将 添加到集合Lrout中。
[0046] 可以理解的是,在微服务部署完成的前提下,边缘云周围的用户将与距自身最近的边缘云进行通信及相关的数据传输,以满足自身的需求。具体过程如下:无线用户使用相关软件所产生的一系列请求,将通过上行链路直接传输到距用户最近的边缘服务器。当用户的请求传来时,服务器会根据当前的负载情况调用对应的微服务镜像处理这些请求,即若当前服务器部署了对应微服务镜像,且较为空闲,则请求先在当前服务器进行处理;否则请求将被转发至同云服务器,甚至跨域转发到其他边缘云上。当对应微服务链中的微服务都处理完成后,边缘服务器将响应结果返回给对应用户,完成用户请求的路由过程。
[0047] 需要说明的是,本发明基于深度强化学习算法的微服务部署算法,以网络边缘系统的总时延(包括处理时延、排队时延与传输时延)、消耗能量及占用带宽的情况作为状态空间,将微服务的镜像个数改变与具体部署位置改变作为动作空间。状态空间和动作空间分别表示如下:
[0048]
[0049]
[0050] 其中, 表示当前网络边缘系统占用的总带宽, 表示改变镜像个数的动作空间, 表示改变镜像在不同服务器上的部署方式的动作空间。
[0051] 其中,在从动作空间中选择动作时,基于UCB策略从动作空间中选择动作,UCB策略相对于原始DQN所使用的 算法来说,UCB算法更注重对位置动作的探索,尽可能保证了每个动作被探索的公平性,进而能更准确地找到最优解,避免陷入局部最优解。选择依据如下:
[0052]
[0053] 其中, 为当前状态下,对应动作at对应的Q值,Q值为通过Q网络计算而来,为影响因子, 为对动作at不确定性的度量。其表达式为:
[0054]
[0055] 其中,t为迭代轮次, 为动作at被选择的次数。在对动作选择时,算法综合考虑了动作对应的奖励的累计以及其不确定性。传统的贪心算法往往选择当前状态下的最优解,这可能使得部分动作被选择执行次数远远大于其余动作。被选择次数少的动作,由于训练样本少,系统对其认识不足。然而,在这些动作中,很可能存在着最优解。因此算法以Q值与其不确定性的加权和为依据,选择动作,降低了系统因缺乏对某一动作的训练而陷入局部最优解的可能。
[0056] 需要说明的是,在每次迭代的过程中,首先根据UCB决策选择一个动作at,判断at执行后,网络边缘系统的微服务部署是否满足能耗、带宽等约束。若不满足,则重新选择动作直至微服务部署满足所有约束。更新微服务部署矩阵P,调用请求路由算法获得路由方案Lrout。依此计算当前动作at对应的代价:
[0057]
[0058] 其中, 分别为影响因子。接下来找到所执行动作at对应的下一状态 。
[0059] 将现有样本以四元组 的形式存入经验回放池,从经验回放池中抽取一组样本,计算目标Q值,即目标Q网络的输出,并根据梯度下降法更新Q网络。本发明用符号 表示目标Q网络,用Q表示Q网络。在网络边缘系统中每经历次迭代,则更新目标Q网络,即将现有目标Q网络复制为Q网络。
[0060] 其中,利用四元组 样本对Q网络进行训练的过程为:
[0061] 本发明所采用的Q网络为卷积神经网络CNN,它包括输入层、卷积层以及全连接层,对于每一四元组样本 ,计算目标Q值:
[0062]
[0063] 其中, 为目标Q网络的权重, 为影响因子,表示 对y值影响的重要程度, 为目标Q网络的输出,y为目标Q网络的输出,更新Q网络实际上是更新Q网络的权重 ,我们采用梯度下降法更新 ,所依据的损失函数为:
[0064]
[0065] 每经过 次迭代,将Q网络复制到目标Q网络,以更新目标Q网络,将网络边缘系统更新到新的状态;基于损失函数迭代更新Q网络的权重 ,若迭代达到T次,则结束迭代过程,获得训练后的Q网络基于训练后的Q网络,根据待处理用户请求,获取最优微服务部署方案以及每一个用户请求的最优路由方案。
[0066] 本发明联合解决上述微服务部署和用户请求路由两个问题。在微服务部署算法的每次迭代中,首先选择相应动作,改变当前部署方案,随后,根据当前部署方案调用请求路由算法得到具体的请求路由策略。请求路由算法根据最适宜降序算法(Best  Fit Decreasing, BFD)进行改进,能得到有效的请求路由策略,同时避免整体算法复杂度过高。接下来,算法根据当前路由计算相应奖励、更新经验回放池。最后,从经验回放池中抽取一组样本更新Q网络与目标Q网络。算法联合地解决上述问题,根据请求路由方案优化部署方案,根据部署方案优化请求路由方案,进一步降低系统时延,使得请求路由方案能更好地适应当前系统。
[0067] 下面对本发明中涉及的具体算法进行描述说明,本发明方法的原型代码采用Python语言实现。
[0068] (1)针对微服务的部署问题,我们采用改进的DQN算法得到对应的解决方案。在每次迭代中,智能体会调用请求路由算法,通过一种联合优化方式进一步降低系统的时延及能耗。微服务部署算法流程如下:
[0069] 算法1:微服务部署算法
[0070] 输入迭代次数T
[0071] 输出完成训练的Q网络
[0072] 1.初始化经验回放池 ,权重为 的目标Q网络,权重为 的Q网络, ,step=0,t=0
[0073] 2.初始化微服务镜像集合I
[0074] 3.随机部署集合I,得到部署方案矩阵P
[0075] 4.调用请求路由算法根据当前P获得请求路由方案
[0076] 5.根据P、 更新状态
[0077] 6.for do
[0078] 7.
[0079] 8.
[0080] 9.根据UCB策略选择动作
[0081] while   ||   ||  do
[0082] 10.
[0083] 11.根据UCB选择动作
[0084] 12.end while
[0085] 13.根据 更新P
[0086] 14.根据算法2得到P对应的
[0087] 15.更新P与动作
[0088] 16.计算当前奖励
[0089] 17.获得对应状态
[0090] 18.将四元组 存入经验回放池
[0091] 19.从 中选择m组数据
[0092] 20.对每一组数据计算
[0093] 21.根据梯度下降法更新Q网络
[0094] 22.if 步长 do
[0095] 23.目标Q网络←Q网络
[0096] 24.
[0097] 25.end if
[0098] 26.
[0099] 27.end for
[0100] 28.end
[0101] 上述算法对应的具体步骤为:
[0102] 步骤一:根据来自各集群的请求偏好,确定微服务的初始镜像个数。对于微服务n的初始镜像个数 来说,可根据下式进行计算:
[0103]
[0104] 其中, 表示来自边缘云k的请求所申请的微服务链s中包含了微服务n,;否则, 。通过上式,可求得每种微服务的初始镜像数,将镜像集合记为I。
[0105] 步骤二:将I中的镜像随机部署到边缘服务器上,并更新对应的部署矩阵P。
[0106]
[0107] 部署时应满足:1)同一服务器上镜像个数不超过服务器核心数;2)同种微服务的多个镜像不能部署在同一服务器上。具体表示如下:
[0108]
[0109] 其中, 表示镜像i是否部署在了边缘云k的服务器p上,若已部署,则为1;否则为0。 为边缘云k的服务器p的最大核数。
[0110] ,其中, ;
[0111] 符号N表示微服务的集合。
[0112] 步骤三:调用请求路由算法,获得当前状态下的路由方案 。
[0113] 步骤四:根据UCB策略选择动作 ,策略如前文所述。有效的动作包括对同一镜像数量的增加或减少、对某一镜像的重新部署。选择动作后更新矩阵P,若此时不满足部署约束,即服务器核数约束或该服务器上已部署了同种镜像,则重新选择动作直至满足约束位置。
[0114] 步骤五:根据动作更新P与 。由于存在当前部署方案下不存在可行路由方案的情况(例如对应镜像数不能满足所有请求的处理需求)。因此,调用结束后,算法一需根据算法二更新P与动作 。计算当前奖励 ,并获得执行动作 会进入的下一状态 。
[0115] 步骤五:将奖励、动作及状态以四元组 存入经验回放池 。经验回放池用于存放每次迭代获得的结果。若经验回放池发生溢出,则优先删除最先入池的四元组。
[0116] 步骤六:随机从 中抽取Y组数据。随机抽取的方式可打破样本间的关联,利于Q网络的训练。
[0117] 步骤七:更新Q网络。本发明所采用的是卷积神经网络CNN,它包括输入层、卷积层、以及全连接层。对每一样本,计算目标Q值如下:
[0118]
[0119] 其中, 为目标Q网络的权重, 为影响因子,表示 对y值影响的重要程度。更新Q网络实际上是更新Q网络的权重 ,采用梯度下降法更新 ,所依据的损失函数为:
[0120]
[0121] 步骤八:每经过 次迭代,将Q网络复制到目标Q网络,以更新目标Q网络,将系统更新到新的状态。
[0122] 步骤九:若迭代达到T次,则结束算法,否则,重复步骤四至八。
[0123] (2)用户请求路由算法。在微服务部署算法中,调用请求路由算法,以得到当前部署方案下,较优的请求路由方案,进而通过迭代进行联合优化。算法的流程如下:
[0124] 算法2:请求路由算法
[0125] 输入微服务镜像部署方案P,用户请求集合R
[0126] 输出请求路由方案
[0127] 1.初始化
[0128] 2.根据R得到对应的微服务链集合
[0129] 3.根据微服务链的长短对 进行排序,长链在前
[0130] 4.for  do
[0131] 5.初始化
[0132] 6.for do
[0133] 7.if && then
[0134] 8.选取距离请求当前位置最近的服务器
[0135] 9.
[0136] 10.
[0137] 11.else
[0138] 12.随机选取具有空闲核数的服务器 ,部署镜像 且用于处理此请求[0139] 13.
[0140] 14.
[0141] 15.end if
[0142] 16.
[0143] 17.end for
[0144] 18.
[0145] 19. end for
[0146] End
[0147] 算法对应的执行步骤如下:
[0148] 步骤一:根据用户请求得到用户所申请的微服务链集合 。将集合中的微服务链根据链的长短进行排序,更长的微服务链将在后续步骤中,优先被选择。
[0149] 步骤二:根据链 的构成,选择请求需要访问的节点,并构成路径。根据链的构成,依次找到微服务对应镜像,选择空闲且距离请求当前位置最近的服务器进行访问。将若存在这样的服务器,则将镜像所属服务器添加到路径 中。否则,在有剩余容量的服务器上随机增加对应镜像,并将此服务器作为请求的下一访问点。对应的服务器加入路径 ,并更新对应的矩阵P。
[0150] 步骤三:用符号*标记已被占用的服务器及镜像。从链 中删除已规划访问路径的微服务。
[0151] 步骤四:若 已经规划访问节点完毕,则将 添加到集合 中。
[0152] 步骤五:重复步骤二至四直到所有请求的路由规划完毕。
[0153] (3)通过上述方式将Q网络训练完成后,网络可针对用户发来的请求进行微服务的动态部署,与请求路由的规划。海量用户同时向网络发送请求后,智能体通过Q网络计算低能耗、低时延的微服务部署方案,并为每条请求计算时延较低的路由方案。使得网络能通过快速处理,及时将结果反馈给用户。
[0154] 本发明涉及一种基于微服务与移动边缘云的网络架构,并基于此网络架构提出了微服务部署及网络中请求路由方法,以有效降低网络时延与系统能耗。内容包括:将云计算中流行的微服务架构融入移动边缘云的网络中;设计一种由多边缘云组成的网络模型,多种微服务部署于边缘云中的服务器上,且通过不同的组合构成具有不同功能的微服务链;依此建立系统总时延模型,并以能耗为约束;基于此模型,设计支持多种微服务链的微服务部署算法,算法基于深度强化学习算法进行改进,将各种微服务动态部署到网络中,这些已部署的微服务将处理网络中的对应请求;针对来自各边缘云的用户请求,设计请求路由算法,其目的在于,为请求找到访问网络中微服务的有效路径,使系统能更高效地完成请求的处理并返回对应结果;采用一种联合优化的方式同时解决微服务部署问题和用户请求路由问题,提高网络部署方案与请求路由的相互适应性,以降低网络时延与能耗。此系统在一定的约束下能支持不同类型的业务如微信、抖音、优酷、支付宝等,同时能应对海量的移动用户请求。此外,本发明考虑了不同微服务之间的相互依赖性,通过有效解决各微服务之间的通信依赖关系,有效降低了系统的处理时延、运行能耗,提升了用户的体验感。此外,基于深度强化学习的智能算法,使得系统具有较强的自主性和智能性,能有效应对网络的动态变化。
[0155] 需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
[0156] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0157] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0158] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0159] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0160] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0161] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。