应用于边缘计算的服务实例部署方法和装置与流程

文档序号:21360330发布日期:2020-07-04 04:33阅读:411来源:国知局
应用于边缘计算的服务实例部署方法和装置与流程

本申请涉及计算机技术领域,特别是涉及一种应用于边缘计算的服务实例部署方法和装置



背景技术:

微服务架构作为当前最流行的软件开发架构,由于其具备的易伸缩,模块化,灵活性高等特点,越来越多的应用于边缘计算中,采用分布式的服务部署方式,在数据中心与边缘计算节点,按需向用户提供服务。如图1所示,在实践中通常将服务部署于“容器(docker)”中,将各个服务运行所需的环境和资源进行隔离,从而进一步实现了微服务的按需部署和灵活运维。为了方便起见,下文将服务与承载它的容器合称为“服务实例”。

如图1所示,为了向位于不同位置的用户提供服务,需要将服务实例分布式地部署于边缘计算节点中,在当前的微服务治理框架中,主要根据边缘节点的资源消耗情况和服务的计算需求进行服务实例的部署,从而实现各个计算节点的负载均衡,最大化整个系统的可用性。但是,这种服务部署模式并未考虑服务实例位于不同边缘计算节点时,对用户响应时延的影响,而这一指标直接关系到用户调用服务时的用户体验和经济收益,是各种服务和应用最关心的指标之一。因此,当前的服务部署和使用方式,需要依托可靠的网络连接和强劲的服务器来确保用户的服务质量。然而,近年来随着智能驾驶、物联网(iot)、虚拟(增强)现实(vr/ar)等新型技术的发展,网络终端由传统的移动电话,pc等延伸到汽车、传感器、无人机等,导致节点的移动性大大增加,同时,由于器件功耗限制、基站切换速率等因素的影响,网络弱连接和间歇性连接的问题也逐渐涌现。因此,在这些应用场景和环境条件下,采用当前的服务部署模式可能无法像在可靠网络环境中那样,保证用户具有较短的响应时延,同时,由于缺失灵活的服务调度和迁移手段,也无法根据用户响应时延进行最优化的服务部署和调整。

在传统的服务部署方法中,服务部署和业务分配往往是两个独立的过程,缺少全局性优化,以确定每个边缘节点上部署的服务实例数量,以及其需要处理的用户服务请求数量,然而,一个服务的用户响应时延往往是由服务实例部署的位置,以及其处理的业务量共同决定的,因此,仅仅实现最优的服务部署可能无法实现最优的用户响应时延。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够解决边缘计算中服务实例部署无法全局优化问题的应用于边缘计算的服务实例部署方法和装置。

一种应用于边缘计算的服务实例部署方法,所述方法包括:

在边缘网络动态变化的情况下,获取服务调用对象与边缘计算节点的往返时延、所述边缘计算节点中服务实例的服务速率、所述边缘计算节点上所述服务调用对象发送的服务请求的到达率以及所述边缘计算节点的所述服务实例数量;

根据所述往返时延、所述服务速率、所述到达率以及所述服务实例数量,得到各个所述服务请求的平均往返时延;

根据所述平均往返时延、所述边缘计算节点中实际服务实例数量以及所述边缘计算节点中所述服务请求数量,得到各个所述服务请求的响应时延;

根据所述响应时延以及所述边缘计算节点的性能参数,构建部署模型;

根据所述部署模型输出所述边缘计算节点中服务实例的部署数据。

在其中一个实施例中,还包括:判断是否进行服务实例的部署优化;当所述服务请求产生sla违例时,则确定进行服务实例的部署优化;或,所述响应时延大于阈值时,则确定进行服务实例的部署优化。

在其中一个实施例中,还包括:根据所述往返时延、所述服务速率、所述到达率以及所述服务实例数量,得到各个所述服务请求的平均往返时延为:

其中,tsc表示平均往返时延,下标sc表示服务调用对象和边缘计算节点的调用关系;μc表示服务速率;λcs表示到达率,到达率为连续变量;xcs表示服务实例数量,服务实例数量为变量;lcs表示往返时延。

在其中一个实施例中,还包括:根据所述平均往返时延、所述边缘计算节点中实际服务实例数量以及所述边缘计算节点中所述服务请求数量,得到各个所述服务请求的响应时延为:

其中t表示响应时延,s表示边缘计算节点中所述服务请求数量,c表示边缘计算节点中实际服务实例数量,s、c均为已知常数。

在其中一个实施例中,还包括:根据所述响应时延以及所述边缘计算节点的性能参数,构建部署模型为:

λcs≤xcs·μc

其中,min表示对响应时延计算最小值,s.t表示约束函数,λc表示所述服务请求总数;rc表示部署服务实例所需资源;rs表示边缘计算节点的可用资源总量。

在其中一个实施例中,还包括:根据所述部署数据,进行所述服务实例在各个边缘计算节点之间的迁移、生成与更新。

一种应用于边缘计算的服务实例部署装置,所述装置包括:

数据获取模块,用于在边缘网络动态变化的情况下,获取服务调用对象与边缘计算节点的往返时延、所述边缘计算节点中服务实例的服务速率、所述边缘计算节点上所述服务调用对象发送的服务请求的到达率以及所述边缘计算节点的所述服务实例数量;

时延计算模块,用于根据所述往返时延、所述服务速率、所述到达率以及所述服务实例数量,得到各个所述服务请求的平均往返时延;根据所述平均往返时延、所述边缘计算节点中实际服务实例数量以及所述边缘计算节点中所述服务请求数量,得到各个所述服务请求的响应时延;

部署模块,用于根据所述响应时延以及所述边缘计算节点的性能参数,构建部署模型;根据所述部署模型输出所述边缘计算节点中服务实例的部署数据。

在其中一个实施例中,还包括判断模块;判断模块用于判断是否进行服务实例的部署优化;判断模块用于当所述服务请求产生sla违例时,则确定进行服务实例的部署优化;或,所述响应时延大于阈值时,则确定进行服务实例的部署优化。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

在边缘网络动态变化的情况下,获取服务调用对象与边缘计算节点的往返时延、所述边缘计算节点中服务实例的服务速率、所述边缘计算节点上所述服务调用对象发送的服务请求的到达率以及所述边缘计算节点的所述服务实例数量;

根据所述往返时延、所述服务速率、所述到达率以及所述服务实例数量,得到各个所述服务请求的平均往返时延;

根据所述平均往返时延、所述边缘计算节点中实际服务实例数量以及所述边缘计算节点中所述服务请求数量,得到各个所述服务请求的响应时延;

根据所述响应时延以及所述边缘计算节点的性能参数,构建部署模型;

根据所述部署模型输出所述边缘计算节点中服务实例的部署数据。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

在边缘网络动态变化的情况下,获取服务调用对象与边缘计算节点的往返时延、所述边缘计算节点中服务实例的服务速率、所述边缘计算节点上所述服务调用对象发送的服务请求的到达率以及所述边缘计算节点的所述服务实例数量;

根据所述往返时延、所述服务速率、所述到达率以及所述服务实例数量,得到各个所述服务请求的平均往返时延;

根据所述平均往返时延、所述边缘计算节点中实际服务实例数量以及所述边缘计算节点中所述服务请求数量,得到各个所述服务请求的响应时延;

根据所述响应时延以及所述边缘计算节点的性能参数,构建部署模型;

根据所述部署模型输出所述边缘计算节点中服务实例的部署数据。

上述应用于边缘计算的服务实例部署方法、装置、计算机设备和存储介质,通过获取到往返时延、服务速率、到达率以及服务实例数量,可以计算到服务请求的平均往返时间,然后考虑全局信息,计算得到各个服务请求的响应时延,一般而言,对于微服务架构而言,响应时延越小,则系统性能越好,从而,根据响应时延和边缘计算节点的性能参数,构建部署模型,模数模型是一个优化函数,通过求解部署模型,可以输出边缘计算节点中服务实例的部署数据,从而全局对边缘计算节点进行部署。

附图说明

图1为传统技术中边缘计算架构的结构示意图;

图2为一个实施例中边缘计算框架的结构示意图;

图3为一个实施例中应用于边缘计算的服务实例部署方法的流程示意图;

图4为一个实施例中应用于边缘计算的服务实例部署装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的应用于边缘计算的服务实例部署方法,可以应用于服务器中。其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

具体的,如图2所示,本发明的服务器中主要由三个部分组成:数据中心,边缘计算节点,服务调用对象。其中数据中心具有全局视图,能够获取各个边缘计算节点的剩余计算资源,服务实例部署情况,以及各个服务实例当前的处理时延;边缘计算节点作为承载容器和服务实例的服务器或集群,是向用户提供服务的实体,由于服务调用对象的移动性和网络的不可靠性,消息的往返时延可能会随时变化,因此也是用户响应时延的重要组成部分;服务调用对象是服务的实际使用者,通过http、ftp、samba等协议获取边缘计算节点提供的各种服务,需要的注意的是,服务调用对象不仅仅可以是个人用户、移动计算机、设备等,也可以是其他边缘计算节点或其他服务。

本发明提供的应用于边缘计算的服务实例部署方法主要工作在以下6个功能模块,具体为:

服务调用记录模块,工作在服务实例的容器中,记录服务调用次数对象等,用于计算服务请求的到达率。

信道时延记录模块,工作在边缘计算节点中,用于记录服务调用对象与边缘计算节点的往返时延,往返时延包括传输时延和传播时延,但不包括排队时延。

信息收集模块,工作在数据中心,负责与边缘计算节点的交互,并收集边缘计算节点与当前网络状况信息

优化计算模块,存储实例部署的核心算法,工作在数据中,根据信息收集模块收集的各种参数,变量和数据,计算当前网络和系统状态下,服务实例的最优部署位置。

服务负载均衡模块,分为两个部分,一部分在数据中心中,其根据优化计算模块计算的业务分配方案,将负载均衡参数下发到服务网关或各个服务调用者,另一部分工作在服务网关或各个服务调用者中,根据下发的参数控制服务请求的对象,实现特定的服务业务分配方案。

服务实例调度与迁移模块,责按照服务实例最优部署方案,对服务实例进行跨节点的调度和节点,使之符合当前的最优状态。

在一个实施例中,如图3所示,提供了一种应用于边缘计算的服务实例部署方法,以该方法应用于服务器为例进行说明,包括以下步骤:

步骤302,在边缘网络动态变化的情况下,获取服务调用对象与边缘计算节点的往返时延、边缘计算节点中服务实例的服务速率、边缘计算节点上服务调用对象发送的服务请求的到达率以及边缘计算节点的所述服务实例数量。

往返时延包括传输时延和传播时延,用于量化服务调用对象与边缘计算节点之间的访问速度。服务速率指的是服务实例处理服务请求的能力,到达率通过记录服务请求访问服务实例的频率得到的,对于确定的框架中,边缘计算节点中的服务实例数量是确定的,在优化过程中,由于服务实例的新增删减等操作,服务实例数量是变动的。

步骤304,根据往返时延、服务速率、到达率以及服务实例数量,得到各个服务请求的平均往返时延。

平均往返试验指的是服务请求从发出到返回所需的平均时间,其与当前网络状况,边缘计算节点的处理能力有关。

步骤306,根据平均往返时延、边缘计算节点中实际服务实例数量以及边缘计算节点中服务请求数量,得到各个所述服务请求的响应时延。

响应时延指的是每个服务请求的平均往返时延进行叠加得到,通过响应时延可以得到时延的全局信息,从而更好的全局部署做铺垫。

步骤308,根据响应时延以及边缘计算节点的性能参数,构建部署模型。

边缘计算节点的性能参数指的是所能处理的服务请求总数、服务实例的计算资源等,部署模型是一种优化模型,优化模型包括一个优化函数,该优化函数基于响应时延,然后通过边缘计算节点的性能参数作为约束。

步骤310,根据部署模型输出边缘计算节点中服务实例的部署数据。

通过对部署模型进行求解,可以得到个边缘计算节点所需部署的服务实例数量。

上述应用于边缘计算的服务实例部署方法中,通过获取到往返时延、服务速率、到达率以及服务实例数量,可以计算到服务请求的平均往返时间,然后考虑全局信息,计算得到各个服务请求的响应时延,一般而言,对于微服务架构而言,响应时延越小,则系统性能越好,从而,根据响应时延和边缘计算节点的性能参数,构建部署模型,模数模型是一个优化函数,通过求解部署模型,可以输出边缘计算节点中服务实例的部署数据,从而全局对边缘计算节点进行部署。

在其中一个实施例中,还需要判断是否进行服务实例的部署优化。具体的判断过程包括:当服务请求产生sla违例时,则确定进行服务实例的部署优化;或,响应时延大于阈值时,则确定进行服务实例的部署优化。本实施例中,slaservice-levelagreement)违例指的是服务等级协议违例,通过判断可以自动监控边缘计算框架是否需要重新部署,从而使边缘计算框架可以趋于最佳状态。

在其中一个实施例中,计算平均往返时延包括:各个服务请求的平均往返时延为:

其中,tsc表示平均往返时延,下标sc表示服务调用对象和边缘计算节点的调用关系;μc表示服务速率;λcs表示到达率,到达率为连续变量;xcs表示服务实例数量,服务实例数量为变量;lcs表示往返时延。本实施例中,将均往返时延和服务实例数量设置为变量,便于进行优化决策。

在其中一个实施例中,计算响应时延的步骤包括:根据平均往返时延、边缘计算节点中实际服务实例数量以及边缘计算节点中所述服务请求数量,得到各个服务请求的响应时延为:

其中t表示响应时延,s表示边缘计算节点中服务请求数量,c表示边缘计算节点中实际服务实例数量,s、c均为已知常数。本实施例中,通过计算响应时延,可以确定边缘计算框架的全局信息,便于进行全局的决策部署。

在其中一个实施例中,构建部署模型的步骤包括:根据响应时延以及边缘计算节点的性能参数,构建部署模型为:

λcs≤xcs·μc

其中,min表示对响应时延计算最小值,s.t表示约束函数,λc表示服务请求总数;rc表示部署服务实例所需资源;rs表示边缘计算节点的可用资源总量。

本实施例中,其中目标函数的意义是优化本模型,用于在各个服务实例部署完毕之后,能够最小化所有服务请求的总调用响应时延。第一个约束条件保证了分配给各个边缘计算节点的服务请求,等于该服务请求的总请求数量,用服务请求的到达率表示,也就是各个边缘节点的服务到达率等于该服务的总请求到达率。所有边缘计算节点上部署的服务实例个数等于整个系统中单位时间内的服务到达速率。第二个约束条件保证了,对于每个服务请求来说,在每个边缘计算节点上,服务强度总大于服务请求的到达率,也就是说分配的服务实例总能够满足用户的调用需求。第三个约束条件保证了,缘计算节点的计算资源必须能够满足部署在该节点上所有服务实例的资源需求。

在其中一个实施例中,在确定部署数据之后,还需要判断是否动态调整服务实例的部署,若是,则根据部署数据,进行服务实例在各个边缘计算节点之间的迁移、生成与更新。若否,则通过负载均衡的方式,向服务调用对象或者服务网关下发负载均衡参数。

具体的,根据上述部署模型可知,到达率λcs为连续变量,xcs表示整数变量,该模型为混合整数规划问题,不存在解析解。可以采用计算机辅助计算工具yalmip求解该问题,其求解步骤如下:

(1)、创建决策变量:

创建整型变量xcs;

>>x=intvar(|c|,|s|)://其中|c|为服务的数量,|s|为边缘计算节点的数量;

创建连续型变量λcs,用变量y表示:

(2)、添加约束;

令y(c,0)+y(c,1)+……+y(c,|s|)=k(c)

>>f=set(k(1)+k(2)+……+k(n)=lamda,”arrivalrate”);//添加约束1

>>f=f+set(y(c,s)<=x(c,s)*u(c),”processrate”);//添加约束2,共|c|*|s|个约束

>>f=f+set(x(0,s)*o(0)+x(1,s)*o(1)+……+x(|c|,s)*o(|c|)<=r(s),”resourceconstraint”);//添加约束3,共|s|个约束。

(3)、参数配置;

>>ops=sdpsettings('solver','lpsolve','verbose',2);

'solver'参数指定程序用lpsolve求解器;'verbose'指定显示冗余度(冗余度越大,你就可以看到越详细的求解过程信息)。

(4)求解模型;

>>result=solvesdp(f,f,ops)

求解一个数学规划(最小化)问题,该问题的目标函数由f指定,约束由f指定,ops指定求解参数,最后的结果存储在result结构体中。

应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种应用于边缘计算的服务实例部署装置,包括:数据获取模块402、时延计算模块404和部署模块406,其中:

数据获取模块402,用于在边缘网络动态变化的情况下,获取服务调用对象与边缘计算节点的往返时延、所述边缘计算节点中服务实例的服务速率、所述边缘计算节点上所述服务调用对象发送的服务请求的到达率以及所述边缘计算节点的所述服务实例数量;

时延计算模块404,用于根据所述往返时延、所述服务速率、所述到达率以及所述服务实例数量,得到各个所述服务请求的平均往返时延;根据所述平均往返时延、所述边缘计算节点中实际服务实例数量以及所述边缘计算节点中所述服务请求数量,得到各个所述服务请求的响应时延;

部署模块406,用于根据所述响应时延以及所述边缘计算节点的性能参数,构建部署模型;根据所述部署模型输出所述边缘计算节点中服务实例的部署数据。

在其中一个实施例中,还包括:判断模块;判断模块用于判断是否进行服务实例的部署优化;判断模块用于当所述服务请求产生sla违例时,则确定进行服务实例的部署优化;或,所述响应时延大于阈值时,则确定进行服务实例的部署优化。

在其中一个实施例中,时延计算模块404还用于根据所述往返时延、所述服务速率、所述到达率以及所述服务实例数量,得到各个所述服务请求的平均往返时延为:

其中,tsc表示平均往返时延,下标sc表示服务调用对象和边缘计算节点的调用关系;μc表示服务速率;λcs表示到达率,到达率为连续变量;xcs表示服务实例数量,服务实例数量为变量;lcs表示往返时延。

在其中一个实施例中,时延计算模块404还用于根据所述平均往返时延、所述边缘计算节点中实际服务实例数量以及所述边缘计算节点中所述服务请求数量,得到各个所述服务请求的响应时延为:

其中t表示响应时延,s表示边缘计算节点中所述服务请求数量,c表示边缘计算节点中实际服务实例数量,s、c均为已知常数。

在其中一个实施例中,部署模块406还用于根据所述响应时延以及所述边缘计算节点的性能参数,构建部署模型为:

λcs≤xcs·μc

其中,min表示对响应时延计算最小值,s.t表示约束函数,λc表示所述服务请求总数;rc表示部署服务实例所需资源;rs表示边缘计算节点的可用资源总量。

在其中一个实施例中,部署模块406还用于根据所述部署数据,进行所述服务实例在各个边缘计算节点之间的迁移、生成与更新。

关于应用于边缘计算的服务实例部署装置的具体限定可以参见上文中对于应用于边缘计算的服务实例部署方法的限定,在此不再赘述。上述应用于边缘计算的服务实例部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储服务实例数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用于边缘计算的服务实例部署方法。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1