一种基于深度强化学习的容器化微服务编排系统及方法

未命名 08-20 阅读:117 评论:0


1.本发明涉及云原生领域,尤其涉及一种基于深度强化学习的容器化微服务编排系统及方法。


背景技术:

2.随着万物互联时代的快速到来和无线网络的飞速发展,智能化设施已经得到了广泛普及,新互联网时代下的数据量呈现爆炸式增长,并且达到了zb级别。现有中心化系统架构已无法支撑快速产生的海量数据的传输、存储和计算,而敏感数据因安全问题也不便传输到中心节点。由此,边缘计算应运而生。边缘计算是指在网络边缘计算来自云服务下行数据以及各边缘设备上行数据的计算模型,其基本思想是将计算任务在接近数据源的计算资源上处理。边缘计算凭借其独特的地理优势,即可以提供高带宽,低时延的服务并且可以保护用户的数据安全和隐私,使其被视为人工智能,5g等领域的关键支撑技术之一。
3.边缘计算是将部分云计算的算力下沉到网络的边缘,是对云计算的拓展。云原生通过容器化、微服务化、松耦合化服务,实现基于服务的快速按需应用编排构建,满足快速迭代的需求驱动应用开发模式,使其逐渐成为云计算发展的主流,而微服务技术又是云原生技术的重中之重。在边缘计算中,容器凭借其低开销,部署方便快捷,隔离度高等优点成为边缘计算的必要组件之一,同时它也是云原生下微服务的最佳拍档,微服务往往以容器的形式存在于边缘节点中,即容器化微服务。容器化微服务的部署是云原生的根基,高效的部署微服务对于边缘计算同样重要。和传统的单体集中式架构相比,微服务通过将一个大型单体应用分解为多个小型模块进行部署,这种方法的优势是可以构建、测试和部署单个服务,不会对整个产品或其他服务产生不良影响。正是因为如此,目前绝大多数的应用,都被拆分为许多微服务部署在边缘节点中。但是由于微服务复杂的动态变化,包括时变的服务请求数量,服务种类等的应用需求变换,和时变的背景复杂变换,以及服务之间复杂的依赖关系,使得容器化微服务的编排并非易事。此外,不同的微服务存在调用关系,这使得微服务之间会存在负载关联性,即一个微服务的性能和被它调用的微型服务的性能有很大关系,这进一步加重了调度决策的权重,使得容器化微服务编排的难度进一步加大。
4.目前主要的关于容器编排的平台,均不能很好的完成边缘节点中容器化微服务的部署。比如kubernetes(k8s)主要是用于管理云计算下大规模的容器应用,对于计算资源受限的边缘节点而言存在较大的局限性。比如kubernetes,k3s,kubeedge等平台对于具有高动态性的微服务的编排均存在一些问题。
5.造成传统容器编排平台无法解决边缘计算中容器化微服务管理的一个重要原因便是边缘节点中微服务的高度动态性。服务需求和背景负载高度动态性会极大的干扰容器化微服务应用的服务性,从而导致资源利用率低下和级联失效等问题。想要应对这些动态事件,需要综合考虑多方面的因素,比如存在于边缘节点的可用资源等,这使得传统容器编排技术均不能很好的胜任边缘计算中微服务的编排。由此基于强化学习编排容器化微服务的方案被提出,在这些方案中,由于微服务之间的依赖关系,存在于边缘计算中的微服务被
描述为一组有向无环图(directedacyclicgraph,dag),通过将这些微服务调度到不同的设备上执行,以此来满足网络中的动态需求。许多开创性的研究已经开始使用强化学习模型来完成容器化微服务的编排,但本发明发现,现有的强化学习方案仍然存在不足。
6.在使用传统的强化学习进行调度决策时,由于微服务的执行时间,强化学习模型中的智能体(agent)在环境中执行动作(action)后,并不能立即获得预期的奖励(reward),本发明将其称作“延迟奖励”。正是因为“延迟奖励”问题,导致强化学习模型无法及时更新,因为每一个episode的学习经验都没有完成。
7.因此,如何找到一种策略来解决传统强化学习训练中存在的延迟奖励现象,是本领域技术人员亟待解决的技术问题。


技术实现要素:

8.为了解决上述问题,本发明提供了一种基于深度强化学习的容器化微服务编排系统及方法,首先针对系统模型和传统强化学习存在延迟奖励的问题设计了延迟奖励策略,用于辅助dql中的deepq-network更新,然后结合延迟奖励策略设计了drm-dql算法,最后根据drm-dql算法建立容器化微服务编排系统。该容器化微服务编排系统是基于提出的“延迟奖励策略”和“drm-dql算法”构建的。和传统的强化学习算法相比,本发明提出的drm-dql算法具有更好的编排效果。首先为了陷入局部最优,采用了epsilon-greedy策略来做出相应的动作(action)。其次,最大的改进便是结合了延迟奖励策略,在此策略中本发明首先将强化学习所需的基本元素表示为一个元组《s,a,r,s'》,但是由于微服务的存在一定的执行时间,会导致无法立即获得奖励r,这就使得传统的强化学习无法很好的工作。
9.其中提出的延迟奖励策略通过引入“临时经验缓存”和“全局经验缓存”很好的解决了延迟奖励的问题,首先将智能体(agent)做出动作后立即得到的三元组《s,a,s'》存储到“临时经验缓存”,然后在得到相应的延迟奖励r后,让延迟奖励r去匹配存储在于临时经验缓存中的《s,a,s'》,并将成功匹配到的四元组《s,a,r,s'》存储到“全局经验缓存”中,然后利用全局经验缓存中的完全经验即四元组来训练deepq-network。四元组《s,a,r,s'》是训练强化学习模型的关键,其中s表示当前的状态(state),a表示当前智能体做出的动作(action),r表示当前动作的延迟奖励(reward),s'表示智能体做出动作后将要更新到的下一个状态。在传统的强化学习中存在延迟奖励的问题,也就是说四元组中的延迟奖励r无法及时得到,这就导致传统的强化学习方法无法收敛。drm-dql算法是基于延迟奖励策略构建的,是该算法的核心组成部分,延迟奖励策略保证了dql训练的正确性。
10.基于经验匹配机制的深度强化学习的容器化微服务编排方法系统包括五个模块:系统信息获取模块,奖励生成模块,延迟奖励匹配模块,强化学习训练模块,决策模块,以及两个缓存:全局经验缓存和临时经验缓存;
11.系统信息获取模块,用于获取决策模块做出相应动作后边缘节点环境前后的状态信息,即获取当前的状态,当前动作,将要更新的下一个状态,环境前后的状态信息是强化学习训练模块的关键,其中获取的状态信息包括做出动作前环境的状态s,做出动作后环境的状态s'和来自决策模块传输过来的当前动作a,将其表示为一个三元组《s,a,s'》,并存储至临时经验缓存;
12.奖励生成模块,用于计算智能体做出动作后得到的延迟奖励r;
13.延迟奖励匹配模块,用于解决延迟奖励r和已存在于临时经验缓存中的三元组《s,a,s'》的匹配问题,其中,s表示当前的状态,a表示当前智能体做出的动作,所谓动作,即将某个微服务编排到某个边缘节点上,s'表示智能体做出动作后将要更新到的下一个状态;由于在整个训练过程中微服务是始终存在于边缘节点中的,为了保证延迟奖励r可以和《s,a,s'》成功匹配,利用当前正在编排的微服务的信息,即标记微服务的唯一标识符来标记智能体做出动作后的所有结果。具体来说,当智能体做出动作后,首先会立即得到一个三元组《s,a,s'》,然后本模块会读取目前正在编排的微服务的信息,并找到该微服务的唯一标识,再用此标识符来标记立即得到的三元组,标记完毕后将其存入临时经验缓存中。之后在得到延迟奖励r后,延迟奖励匹配模块会执行上述同样的操作得到当前微服务的唯一标识符,并用它来标记得到的延迟奖励。最后遍历临时经验缓存中的内容找到与之对应的三元组《s,a,s'》,在匹配成功以后,延迟奖励匹配模块会将匹配成功的四元组《s,a,r,s'》存储到全局经验缓存中,用于后续的训练。
14.强化学习训练模块,用于通过全局经验缓存中的完全经验来训练和更新deepq-network;
15.决策模块,用于控制智能体做出相应的动作,在作出动作后,将动作信息描述为一个向量,并将该信息发送给系统信息获取模块;为了避免陷入局部最优,探索更多更好的动作,本发明使用epsilon-greedy策略来选择智能体的动作。
16.临时经验缓存,用于存储三元组《s,a,s'》;
17.全局经验缓存,用于存储延迟奖励匹配模块匹配成功的四元组《s,a,r,s'》。
18.进一步地,系统信息获取模块将获取的边缘节点环境状态描述为一个向量s={q1,q2,...,qn,...,q
|n|
},其中qn表示第n个节点上已经运行的微服务的数量,这样可以很好的表示每个边缘节点的工作负载,并将获取到的信息描述为一个三元组《s,a,s'》。
19.进一步地,考虑到微服务之间的复杂依赖关系,即一个微服务所依赖的微服务的完成时间应该分配较高的奖励,因此奖励生成模块中,延迟奖励r=-tf(
·
),其中,tf(
·
)表示为微服务的完成时间,这样的定义方式可以很好的实现微服务的高效编排,在计算出相应的延迟奖励r后,将延迟奖励r传输至延迟奖励匹配模块用于下一步的计算。
20.进一步地,在延迟奖励匹配模块中,通过给三元组《s,a,s'》和延迟奖励r都分配正在编排的微服务的标记微服务的唯一标识符,进而确保在得到延迟奖励后遍历临时经验缓存中的三元组来完成匹配。
21.进一步地,在决策模块中,将做出的动作信息表示为一个向量a={a1,a2,...,an,...,a
|n|
},其中an表示将微服务调度到节点n,并将相应的动作信息发送给系统信息获取模块,n表示节点的总数。
22.一种基于深度强化学习的容器化微服务编排方法,包括:
23.s1:随机初始化deepq-network,然后初始化超参数和全局经验缓存,所述超参数包括α,γ,ε;
24.s2:判断是否还有episode没有训练,若是,则重置“全局经验缓存”和“临时经验缓存”,并重置环境,获得初始状态,若否,则直接结束;
25.s3:判断是否存在微服务未编排,若是,则使用epsilon-greedy策略来选择智能体的动作,若否,则直接结束;
26.s4:在环境中执行了步骤s3中的动作后,得到下一个状态,进而获得三元组《s,a,s'》,并将该三元组存储到临时经验缓存中,然后获得当前微服务器的完成时间和延迟奖励r;
27.s5:判断局部缓冲区是否遍历完毕,若是,则直接结束,若否,则通过三元组《s,a,s'》和延迟奖励r的标识符的一致性来完成二者的匹配,一致性的标识符是指当前正在编排的微服务的标识符,然后将匹配成功的四元组《s,a,r,s'》存储到全局经验缓存,其中,s表示当前的状态,a表示当前智能体做出的动作,s'表示智能体做出动作后将要更新到的下一个状态;
28.s6:最后利用存储在全局经验缓存中的四元组来训练deepq-network。
29.进一步地,若是三元组《s,a,s'》和延迟奖励r没有成功匹配,则继续判断局部缓冲区是否遍历完毕。
30.本发明提供的技术方案带来的有益效果是:本发明提出的drm-dql算法和延迟奖励匹配策略很好的解决了传统微服务编排平台对于高动态性微服务编排的局限性并且可以高效的编排边缘计算中的容器化微服务。
附图说明
31.下面将结合附图及实施例对本发明作进一步说明,附图中:
32.图1是本发明实施例中一种基于经验匹配机制的深度强化学习的容器化微服务编排系统的结构图。
33.图2是本发明实施例中drm-dql算法执行的流程图。
34.图3是本发明实施例中采用drm-dql算法与传统dql算法得到的平均奖励随着episode增加的对比图。
35.图4是本发明实施例中受网络带宽的影响,采用drm-dql算法与采用传统的dql算法或贪心算法最终应用的完成时间在不同网络带宽下的对比图。
具体实施方式
36.为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
37.本实施例针对传统dql训练过程中存在的延迟奖励问题,设计了一种新的“延迟奖励策略”,通过从环境中获取完整的经验来增强deepq-learning(dql)。然后考虑到微服务之间复杂的依赖关系,结合“延迟奖励策略”,提出一种改进的基于强化学习的延迟奖励匹配深度q学习算法(delayedrewardmatcheddeep q-learningalgorithm,drm-dql),以实现容器化微服务的高效编排,即本发明的实施例提供了一种基于深度强化学习的容器化微服务编排系统及方法,可以在高动态性容器化微服务场景下提供高效编排服务。
38.请参考图1,图1是本发明实施例中一种基于经验匹配机制的深度强化学习的容器化微服务编排系统的结构图,具体包括:信息获取模块,奖励生成模块,延迟奖励匹配模块,强化学习训练模块,决策模块,临时经验缓存和全局经验缓存,以及全局经验缓存和临时经验缓存两个缓存。
39.系统信息获取模块,用于获取决策模块做出相应动作后边缘节点环境前后的状态
信息;
40.奖励生成模块,用于计算智能体做出动作后得到的延迟奖励r,并将延迟奖励r传输至延迟奖励匹配模块;
41.延迟奖励匹配模块,用于解决延迟奖励r和已存在于临时经验缓存中的《s,a,s'》的匹配问题,其中,s表示当前的状态,a表示当前智能体做出的动作,s'表示智能体做出动作后将要更新到的下一个状态;
42.强化学习训练模块,用于通过全局经验缓存中的完全经验来训练深度q网络(deepq-network,dqn);
43.决策模块,用于控制智能体做出相应的动作;
44.临时经验缓存,用于存储智能体做出动作后立即得到的三元组《s,a,s'》;
45.全局经验缓存,用于存储延迟奖励匹配模块匹配成功的四元组《s,a,r,s'》。
46.相较于传统的dql算法,本发明做了优化措施,为了陷入局部最优,本发明采用了厄普西隆贪婪策略epsilon-greedy策略来做出相应的动作,采用延迟奖励匹配策略(delayedrewardmatched,drm)来解决微服务的延迟问题。将强化学习所需的基本元素表示为一个四元组《s,a,r,s'》,但是由于微服务的存在一定的执行时间,会导致无法立即获得奖励r,这就使得传统的强化学习无法很好的工作,最大的改进便是结合了延迟奖励策略。引入了两个缓存来解决此问题。首先将做出动作后立即得到的元组《s,a,s'》存到临时经验缓存a,然后在得到相应的延迟奖励r后,通过“延迟奖励匹配模块”去匹配存在于临时经验缓存a中的《s,a,s'》,“延迟奖励匹配模块”的核心思想是通过将《s,a,s'》和延迟奖励r加上当前正在编排的微服务的标识符来确保完成匹配,再将得到的四元组《s,a,r,s'》存在全局经验缓存b中,然后利用全局经验缓存b中的四元组来训练deepq-network。
47.drm-dql算法执行的流程图如图2所示,具体包括如下步骤:
48.s1:首先随机初始化deepq-network,然后初始化α,γ,ε等超参数和全局经验缓存b,通过合理的设置α,γ,ε等超参数可以使神经网络更高效的收敛;
49.s2:初始化阶段完成后,开始训练过程,如图3所示,在每个训练集中,判断是否还有episode没有训练,若是,则重置全局经验缓存b(即图2中的经验缓冲区b)和临时经验缓存a,并重置环境,获得初始的状态s,若否,则直接结束;本发明中,一次episode就是一套完整的决策过程;
50.s3:判断是否存在微服务未编排,若是,则使用epsilon-greedy策略来选择智能体的动作,这样可以避免陷入局部最优,以探索更多更好的动作,若否,则直接结束;
51.s4:在环境中执行了步骤s3中的动作后,得到下一个状态,进而获得三元组《s,a,s'》,并将该三元组存储到临时经验缓存中,然后获得当前微服务器的完成时间和延迟奖励r;考虑到奖励r的延迟性,应该使用该三元组和奖励r立即训练deepq-network。因此,本发明将使用延迟奖励策略来生成正确的经验。
52.s5:判断局部缓冲区a是否遍历完毕,若是,则直接结束,若否,则通过三元组《s,a,s'》和延迟奖励r的标识符的一致性来完成二者的匹配,为了使奖励r与相应的《s,a,s'》匹配,本实施例通过“延迟奖励匹配模块”来完成元组《s,a,s'》与奖励r匹配,“延迟奖励匹配模块”的核心思想是通过《s,a,s'》和延迟奖励的标识符的一致性来完成匹配,而这个保证一致性的标识符就是当前正在编排的微服务的标识符,然后将匹配成功的四元组《s,a,r,
s'》存储到全局经验缓存b,其中,s表示当前的状态,a表示当前智能体做出的动作,s'表示智能体做出动作后将要更新到的下一个状态;
53.s6:最后利用存储在全局经验缓存b中的四元组来训练deepq-network。
54.如图3和图4所示,本实施例在一个具有20个边缘节点并存在高动态性微服务需要编排的环境中部署了系统,由图3的结果可以明显看出,通过检查训练过程中超过6000个训练轮次的奖励,drm-dql算法在2100个训练轮次后就已经收敛,而传统的dql及时在4000个训练轮次后仍然没有收敛,本发明提出的drm-dql和传统的dql相比具有更快的收敛速度。由图4可知,在网络带宽的影响下,本发明提出的方法可以实现最小应用的完成时间,应用的完成时间比使用传统的dql和贪心(greedy)方法分别减少了9.7%和32.5%。图3-4中的dqn即为本发明中的dql。
55.本发明的有益效果是:本发明提出的drm-dql算法和延迟奖励匹配策略很好的解决了传统微服务编排平台对于高动态性微服务编排的局限性并且可以高效的编排边缘计算中的容器化微服务。
56.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种基于深度强化学习的容器化微服务编排系统,其特征在于:包括:系统信息获取模块,奖励生成模块,延迟奖励匹配模块,强化学习训练模块和决策模块,以及全局经验缓存和临时经验缓存两个缓存;系统信息获取模块,用于获取决策模块做出相应动作后边缘节点环境前后的状态信息;奖励生成模块,用于计算智能体做出动作后得到的延迟奖励r,并将延迟奖励r传输至延迟奖励匹配模块;延迟奖励匹配模块,用于解决延迟奖励r和已存在于临时经验缓存中的<s,a,s'>的匹配问题,其中,s表示当前的状态,a表示当前智能体做出的动作,s'表示智能体做出动作后将要更新到的下一个状态;强化学习训练模块,用于通过全局经验缓存中的完全经验来训练deep q-network;决策模块,用于控制智能体做出相应的动作;临时经验缓存,用于存储智能体做出动作后立即得到的三元组<s,a,s'>;全局经验缓存,用于存储延迟奖励匹配模块匹配成功的四元组<s,a,r,s'>。2.如权利要求1所述的一种基于深度强化学习的容器化微服务编排系统,其特征在于:系统信息获取模块中,将边缘节点环境状态描述为一个向量s={q1,q2,...,q
n
,...,q
|n|
},其中,q
n
表示第n个节点上已经运行的微服务的数量,n表示节点的总数,并将获取到的信息描述为一个三元组<s,a,s'>,s表示当前的状态,a表示当前智能体做出的动作,s'表示智能体做出动作后将要更新到的下一个状态。3.如权利要求1所述的一种基于深度强化学习的容器化微服务编排系统,其特征在于:延迟奖励r=-t
f
(
·
),其中,t
f
(
·
)表示为微服务的完成时间。4.如权利要求1所述的一种基于深度强化学习的容器化微服务编排系统,其特征在于:在延迟奖励匹配模块中,通过给三元组<s,a,s'>和延迟奖励r都分配正在编排的微服务的标记微服务的唯一标识符,进而确保在得到延迟奖励后遍历临时经验缓存中的三元组来完成匹配。5.如权利要求1所述的一种基于深度强化学习的容器化微服务编排系统,其特征在于:在决策模块中,将做出的动作信息表示为一个向量a={a1,a2,...,a
n
,...,a
|n|
},其中a
n
表示将微服务调度到节点n,并将相应的动作信息发送给系统信息获取模块,n表示节点的总数。6.一种基于深度强化学习的容器化微服务编排方法,其特征在于:包括:s1:随机初始化deep q-network,然后初始化超参数和全局经验缓存,所述超参数包括α,γ,ε;s2:判断是否还有episode没有训练,若是,则重置“全局经验缓存”和“临时经验缓存”,并重置环境,获得初始状态,若否,则直接结束;s3:判断是否存在微服务未编排,若是,则使用epsilon-greedy策略来选择智能体的动作,若否,则直接结束;s4:在环境中执行了步骤s3中的动作后,得到下一个状态,进而获得三元组<s,a,s'>,并将该三元组存储到临时经验缓存中,然后获得当前微服务器的完成时间和延迟奖励r;s5:判断局部缓冲区是否遍历完毕,若是,则直接结束,若否,则通过三元组<s,a,s'>和
延迟奖励r的标识符的一致性来完成二者的匹配,一致性的标识符是指当前正在编排的微服务的标识符,然后将匹配成功的四元组<s,a,r,s'>存储到全局经验缓存,其中,s表示当前的状态,a表示当前智能体做出的动作,s'表示智能体做出动作后将要更新到的下一个状态;s6:最后利用存储在全局经验缓存中的四元组来训练deep q-network。7.如权利要求6所述的一种基于经验匹配机制的深度强化学习的容器化微服务编排方法,其特征在于:步骤s5中,若是三元组<s,a,s'>和延迟奖励r没有成功匹配,则继续判断局部缓冲区是否遍历完毕。

技术总结
本发明提供了一种基于深度强化学习的容器化微服务编排系统及方法,基于本发明提出的“延迟奖励策略”和“延迟奖励匹配深度Q学习算法”构建的,一共包含五个模块,系统信息获取模块,奖励生成模块,延迟奖励匹配模块,强化学习训练模块,决策模块和两个缓存,临时经验缓存和全局经验缓存。系统信息获取模块用于获取边缘节点环境的状态信息,奖励生成模块用于计算延迟奖励,延迟奖励匹配模块用于解决经验的配对问题,强化学习训练模块用于训练Deep Q-NetWork,决策模块用于控制智能体做出决策。本发明的有益效果是:有效地解决了传统微服务编排平台对于高动态性微服务编排的局限性。排平台对于高动态性微服务编排的局限性。排平台对于高动态性微服务编排的局限性。


技术研发人员:曾德泽 李跃鹏 朱方帅 高丰
受保护的技术使用者:中国地质大学(武汉)
技术研发日:2023.04.11
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐