首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 群件 / 一种面向用户需求变化的微服务自适应方法及系统

一种面向用户需求变化的微服务自适应方法及系统

阅读:26发布:2020-05-08

专利汇可以提供一种面向用户需求变化的微服务自适应方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种面向用户需求变化的微服务自适应方法及系统,所述方法包括如下步骤:步骤S1、收集服务系统信息;步骤S2、分析、处理信息;步骤S3、计算系统演化方案;步骤S4、实施演化方案。所述系统包括中央控制程序模 块 、构建中心程序模块和集群 中间件 程序模块。本发明能够在系统运行时,监控用户的需求变化以及服务系统的服务 质量 变化,并针对这些变化计算出合适的系统演化方案,最后进行方案的自动化实施,以达到针对用户需求变化的自适应调整,从而满足用户的新需求以及确保稳定的服务质量。,下面是一种面向用户需求变化的微服务自适应方法及系统专利的具体信息内容。

1.一种面向用户需求变化的微服务自适应方法,其特征在于所述方法包括如下步骤:
步骤S1、收集服务系统信息:
(1)在每个用户可以直接发送请求服务器节点上,均部署一个 Gateway服务实例;
(2)对于在—边缘—端架构下的服务系统的运行监控,通过使用框架、Gateway以及相关的日志收集处理程序,进行服务系统运行时的用户需求、用户请求质量等相关信息进行收集;
步骤S2、分析、处理信息:
通过对步骤S1中收集到的服务系统信息的处理,分析出所需要进行调整的用户需求,判断是否需要进行服务系统的演化;
步骤S3、计算系统演化方案:
对整个服务系统进行建模,考量可能的基本演化操作,并计算出演化方案;
步骤S4、实施演化方案:
对步骤S3所得到的演化方案进行自动化实施。
2.根据权利要求1所述的面向用户需求变化的微服务自适应方法,其特征在于所述步骤S2的具体步骤如下:
(1)针对每个用户需求进行分析,如果用户需求在服务系统中没有对应的服务实例,或者对应的服务实例的服务等级协议不满足用户的预期,则将该需求标记为待调整;
(2)针对每个用户请求,通过计算其响应时间,并与上一轮的信息收集结果进行对比,如果响应时间上升程度超过了阈值,则将该请求对应的用户需求标记为待调整;
(3)统计所有待调整的用户需求的数量,如果没有数量为零,则不需要调整,直接返回步骤S1;否则进行步骤S3。
3.根据权利要求1所述的面向用户需求变化的微服务自适应方法,其特征在于所述步骤S3的具体步骤如下:
(1)利用步骤S1所获取到的收集到的服务系统信息,构建模型以对服务系统现状进行刻画;
(2)考虑可能的演化操作,并进行计算;
(3)考虑到性能问题,提出用于快速响应的minor演化以及用于调整全局的major演化操作,基本的演化操作有:服务实例的创建、删除、迁移和服务等级调整,服务的合并和拆分,用户需求的移动;
(4)对优化目标进行优化,最终得到演化方案,所述优化目标为:1)服务系统的平均相应时间最短;2)演化的时间代价最小;所述演化方案主要分为三类:1)服务相关:服务的合并,拆分;2)服务实例相关:服务实例的部署、删除、移动、服务等级调整;3)用户需求的重新分配。
4.根据权利要求3所述的面向用户需求变化的微服务自适应方法,其特征在于所述模型包括:
(1)服务:用来描述服务系统的每个服务的相关信息,包括服务所包含的所有接口,对应的请求路径,接口传入传出的数据量的大小,接口所提供的功能描述,接口所提供的服务等级,该服务的容器镜像地址,该服务的代码仓库地址,以及该服务正常运行所需要的资源大小;
(2)服务器节点:用来描述云—边缘—端中云端以及边缘端服务器的相关信息,包括服务器的地理位置,服务器所具备的资源能以及每个服务器对应的节点标识;
(3)服务实例:用来描述服务系统中所有服务的实例,包括该实例对应的服务名称,该实例所在服务器节点标识信息;
(4)用户需求:用来描述用户需求的分配情况,包括用户的唯一标识,所请求的功能名称,所请求的服务名称,所期望的服务等级,所对应的服务实例的唯一标识。
5.根据权利要求1所述的面向用户需求变化的微服务自适应方法,其特征在于所述步骤S3中,演化方案主要分为三类:1)服务相关:服务的合并,拆分;2)服务实例相关:服务实例的部署、删除、移动、服务等级调整;3)用户需求的重新分配。
6.一种实现权利要求1-5任一项所述面向用户需求变化的微服务自适应方法的系统,其特征在于所述系统包括中央控制程序模、构建中心程序模块和集群中间件程序模块,其中:
所述中央控制程序模块包括服务系统信息收集模块,分析、处理模块,演化方案计算模块和演化方案执行模块;
所述服务系统信息收集模块负责从整个服务系统中获取到相关的信息;
所述分析、处理模块负责对收集到的数据进行处理分析,并判断出是否需要演化以及哪些用户需求需要参与演化;
所述演化方案计算模块负责计算出合适的演化方案;
所述演化方案执行模块负责演化方案的自动化执行;
所述构建中心程序模块负责执行服务相关的演化操作,进行服务的自动修改、构建操作;
所述集群中间件程序模块负责和集群进行沟通,从中抽取相关信息以及执行服务实例以及用户需求相关的演化操作。

说明书全文

一种面向用户需求变化的微服务自适应方法及系统

技术领域

[0001] 本发明属于计算机服务技术领域,涉及一种面向用户需求变化的微服务自适应方法及系统,具体涉及一种基于MAPE-K模型的自适应方法及系统。

背景技术

[0002] 近些年来,随着边缘计算以及雾计算的迅速发展,—边缘—端的系统架构也越来越多的应用到了各种场景之中。在这种架构中,由于边缘服务器距离用户端较近,和云端相比,具有较低的延迟,能够对用户的请求做出快速的响应,将服务部署到边缘服务器上,能够显著降低延迟以及数据传输时间,从而提高服务质量。然而,由于边缘服务器的资源受限,边缘服务器只能承载有限的服务;同时,用户的需求是随着时间不断发生变化的,固定不变的服务系统将导致用户的需求得不到满足或不完全满足,降低了服务质量。因此,当用户需求发生变化时,服务系统也需要做出相应的调整以满足用户新的需求,从而确保整个系统具备较为稳定的服务质量。
[0003] 为了让服务系统能够进行快速调整,如何快速的进行服务的部署是不可或缺的。微服务是一种软件架构格,它是以专注于单一责任与功能的小型功能模基础,利用模块化的方式组合出复杂的大型应用程序,各个模块之间高度解耦,能够各自独立的进行开发、测试、部署、拓展等而不影响其它模块。微服务技术的使用,能够让服务系统可以针对用户需求,对特定的服务进行合理的调整,而不影响其它服务的正常运行,降低了服务系统调整的复杂性。容器是应用程序级别的虚拟化,允许单个内核上有多个独立的用户空间实例。它提供了将应用程序的代码、运行时、系统工具、系统库和配置打包到一个实体中的标准方法。相较于传统的虚拟机技术,容器在体积上十分轻量;能够快速启动;具备高弹性,能够更加有效的使用服务器中的资源;具备更高的性能。容器技术的应用,能够让服务在各种异构的服务器环境中,快速的启动和稳定的运行,进一步降低了服务系统调整的复杂性。
Kubernetes(K8S)是一个开源的,用于管理云平台中多个主机上的容器化的应用,它能够让部署容器化应用更加简单且高效,在该云—边缘—端的架构中,能够显著降低容器化应用的管理难度。
[0004] 目前已有的云—边缘—端下的服务管理方法或者系统,主要分为两类:一类是专注于算法的研究,另一类是专注于系统的构建。前者主要是研究如何在一定的资源约束下,将服务系统的服务质量提升到最高;后者主要是研究如何降低系统的人为参与,让系统能够针对流量、服务节点的内存等资源使用的情况,进行自动化的服务拓展。这些方法存在以下两个缺陷,一是没有考虑到用户的需求变化,仅仅是针对于流量、网络等引起的服务质量的变化;二是没有很好的将算法以及系统相结合起来,让系统能够在运行时监控用户的需求变化,从而针对这种变化做出自动化的调整。
[0005] 基于上述研究背景可以发现,微服务、容器以及K8S的使用,能够构建一个更加稳定高效的云—边缘—端架构下的服务系统。

发明内容

[0006] 为了解决现有技术中存在的以上问题,本发明对于面向用户需求变化的微服务系统的自适应问题,提供了一种面向用户需求变化的微服务自适应方法及系统。本发明能够在系统运行时,监控用户的需求变化以及服务系统的服务质量变化,并针对这些变化计算出合适的系统演化方案,最后进行方案的自动化实施,以达到针对用户需求变化的自适应调整,从而满足用户的新需求以及确保稳定的服务质量。
[0007] 本发明的目的是通过以下技术方案实现的:一种面向用户需求变化的微服务自适应方法,包括如下步骤:
步骤S1、收集服务系统信息:
(1)在每个用户可以直接发送请求的服务器节点上,均部署一个 Gateway服务实例;
(2)对于在云—边缘—端架构下的服务系统的运行监控,通过使用框架、Gateway以及相关的日志收集处理程序,进行服务系统运行时的用户需求、用户请求质量等相关信息进行收集;
步骤S2、分析、处理信息:
通过对步骤S1中收集到的服务系统信息的处理,分析出所需要进行调整的用户需求,判断是否需要进行服务系统的演化,具体步骤如下:
(1)针对每个用户需求进行分析,如果用户需求在服务系统中没有对应的服务实例,或者对应的服务实例的服务等级协议不满足用户的预期,则将该需求标记为待调整;
(2)针对每个用户请求,通过计算其响应时间,并与上一轮的信息收集结果进行对比,如果响应时间上升程度超过了阈值,则将该请求对应的用户需求标记为待调整;
(3)统计所有待调整的用户需求的数量,如果没有数量为零,则不需要调整,直接返回步骤S1;否则进行步骤S3;
步骤S3、计算系统演化方案:
对整个服务系统进行建模,考量可能的基本演化操作,并计算出演化方案,具体步骤如下:
(1)利用步骤S1所获取到的收集到的服务系统信息,构建模型以对服务系统现状进行刻画;
(2)考虑可能的演化操作,并进行计算;
(3)考虑到性能问题,提出用于快速响应的minor演化以及用于调整全局的major演化操作,基本的演化操作有:服务实例的创建、删除、迁移和服务等级调整,服务的合并和拆分,用户需求的移动;
(4)对优化目标进行优化,最终得到演化方案,所述优化目标为:1)服务系统的平均相应时间最短;2)演化的时间代价最小;所述演化方案主要分为三类:1)服务相关:服务的合并,拆分;2)服务实例相关:服务实例的部署、删除、移动、服务等级调整;3)用户需求的重新分配;
步骤S4、实施演化方案:
对步骤S3所得到的演化方案进行自动化实施。
[0008] 一种实现上述面向用户需求变化的微服务自适应方法的系统,包括中央控制程序模块、构建中心程序模块和集群中间件程序模块,其中:所述中央控制程序模块包括服务系统信息收集模块,分析、处理模块,演化方案计算模块和演化方案执行模块;
所述服务系统信息收集模块负责从整个服务系统中获取到用户需求及服务质量相关的信息;
所述分析、处理模块负责对收集到的数据进行处理分析,并判断出是否需要演化以及哪些用户需求需要参与演化;
所述演化方案计算模块负责计算出合适的演化方案;
所述演化方案执行模块负责演化方案的自动化执行;
所述构建中心程序模块负责执行服务相关的演化操作,进行服务的自动修改、构建等操作;
所述集群中间件程序模块负责和集群进行沟通,从中抽取相关信息以及执行服务实例以及用户需求相关的演化操作。
[0009] 相比于现有技术,本发明具有如下优点:1、本发明通过自编程框架的开发,让使用该框架的服务能够在请求的开始以及结束时,向指定位置打印包括请求来源的IP、Port、用户ID以及时间戳信息;利用容器目录的挂载功能,将一个服务器节点上的所有日志均写入到同一个目录下,通过指定目录下的文件监听的方法,将一个服务器节点上的所有新增的日志信息收集处理后入库。
[0010] 2、本发明通过自编程框架的开发,通过注解的方式,让使用该框架的函数能够在编译时自动重载,并具备不同服务接口之间连续链式调用,上一次的输出作为下一次的输入。结合构建中心,利用基于maven以及docker的编译打包构建方法,自动将若干个不同服务的不同接口在源码层面上结合在一起,形成链式调用,并打包成新的镜像文件。
[0011] 3、本发明通过自编程框架、日志监听、网关等组件的相互协同操作,利用请求时的日志解析、信息缓存等,自动获取上一个时间窗口整个服务系统的服务质量,并从中发现用户的需求变化。
[0012] 4、本发明通过基于MAPE-K模型的自适应结构与自编程框架、自动构建中心等的协同,能够在服务系统中用户需求发生变化、服务质量发生下降的时候,自动判断进行minor或major演化并生成演化方案,然后自动化进行方案的执行。
[0013] 5、本发明充分考虑到了用户需求的变化以及系统的服务质量的变化,并根据用户的需求、边缘以及云端服务器的资源限制、服务系统中所提供服务的功能以及资源消耗、服务器之间的延迟以及带宽等因素,通过利用开发出来的框架,来为系统提供各个服务的运行时信息,同时考量了多种的演化手段,包括服务实例的部署、删除、迁移、服务的合并、拆分等操作,计算出合理的系统演化方案,并进行自动化的实施。附图说明
[0014] 图1为本发明的面向用户需求变化的微服务自适应方法流程图;图2为服务系统信息收集结构示意图;
图3为分析、处理信息流程图;
图4为系统组件图。

具体实施方式

[0015] 下面结合附图对本发明的技术方案作进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的保护范围中。
[0016] 本发明提供一种面向用户需求的微服务自适应方法,如图1所示,所述方法包括以下几个步骤:步骤S1、收集服务系统信息。
[0017] 本步骤主要是针对系统的所有用户需求,以及各个用户请求的执行情况进行收集。为了收集用户需求,需要使用Gateway组件来确保所有的用户请求均通过该组件进入系统。为了确保系统的正常运行,需要在每个用户可以直接发送请求的服务器节点上,均部署一个 Gateway服务实例。在Gateway中,会对用户的需求进行记录,包括用户ID、所需要的功能、所需要的服务以及预期的服务质量。为了收集服务运行状态,需要开发相应的框架,然后在系统中的所有服务中,均加入该框架的支持,该框架会在服务处理用户请求时,将请求时间、响应时间等关键信息写入到系统的指定位置中;其次通过实现日志文件的收集程序,对日志文件夹进行监听,将写入的日志及时发送到统一的日志数据库中进行统一存储和获取,具体结构如图2所示。然后从日志数据库中,查询出指定时间范围内的日志信息即可。
[0018] 步骤S2、分析、处理信息。
[0019] 本步骤需要针对步骤S1中收集到的数据,进行分析以及处理。系统收集到指定的信息之后,首先会针对每个用户需求进行分析,如果用户需求在服务系统中,没有对应的服务实例,或者对应的服务实例的服务等级协议不满足用户的预期,则将该需求标记为待调整。接着针对每个用户请求,通过计算其响应时间,并与上一轮的信息收集结果进行对比,如果响应时间上升程度超过了阈值,则将该请求对应的用户需求标记为待调整。最后统计所有待调整的用户需求的数量,如果没有数量为零,则不需要调整,直接返回步骤S1;否则进行步骤S3。具体的流程图如图3所示。
[0020] 步骤S3、计算系统演化方案。
[0021] 首先需要针对服务系统进行建模,以进行相关的演化计算。基本的模型包括:(1)服务:用来描述服务系统的每个服务的相关信息,包括服务所包含的所有接口,对应的请求路径,接口传入传出的数据量的大小,接口所提供的功能描述,接口所提供的服务等级,该服务的容器镜像地址,该服务的代码仓库地址,以及该服务正常运行所需要的资源大小。
[0022] (2)服务器节点:用来描述云—边缘—端中云端以及边缘端服务器的相关信息,包括服务器的地理位置,服务器所具备的资源能以及每个服务器对应的节点标识。
[0023] (3)服务实例:用来描述服务系统中所有服务的实例,包括该实例对应的服务名称,该实例所在服务器节点标识等信息。
[0024] (4)用户需求:用来描述用户需求的分配情况,包括用户的唯一标识,所请求的功能名称,所请求的服务名称,所期望的服务等级,所对应的服务实例的唯一标识。
[0025] 利用步骤S1所获取到的相关信息,构建出上述的模型以对系统现状进行刻画。接着通过考虑可能的演化操作,并进行计算。同时考虑到性能问题,提出了用于快速响应的minor演化以及用于调整全局的major演化操作。基本的演化操作有:服务实例的创建、删除、迁移和服务等级调整,服务的合并和拆分,用户需求的移动。由于这些操作都是有相应的时间代价,因此需要:1)服务系统的平均相应时间最短;2)演化的时间代价最小。通过对这两个优化目标进行优化,最终得到演化方案。
[0026] 步骤S4、实施演化方案。
[0027] 本步骤主要是对步骤S3所得到的演化方案进行自动化实施。从步骤S3所得到的演化方案主要分为三类:1)服务相关:服务的合并,拆分;2)服务实例相关:服务实例的部署、删除、移动、服务等级调整;3)用户需求的重新分配。
[0028] 为了实现服务相关的演化操作,需要借助Jenkins等相关自动化构建工具。通过开发构建中心模块,在接收到服务组合、拆分所需要的相关信息后,通过对相关代码的自动获取、自动修改、自动组合、自动提交操作,将相关的服务在代码层面上实现合并和拆分;然后将相关信息发送到Jenkins来进行程序的自动构建以及容器的自动打包和推送。Jenkins完成相关工作后,发送任务完成信息给该构建中心模块,该模块处理完剩余工作后,发送任务完成信息给中央控制程序。
[0029] 为了实现服务实例相关的演化操作,需要使用K8S等集群中的容器管理工具。通过开发K8S集群中间件,提供在指定的节点上部署指定的服务实例,删除指定节点上指定的服务实例,限制指定服务实例的资源使用等操作。中央控制程序将相关任务分发给该中间件进行执行,执行完毕后,中间件发送任务完成信息给中央控制程序。
[0030] 为了实现用户需求重新分配的演化操作,需要使用步骤S1中Gateway程序。通过向集群中的所有Gateway实例发送相关的任务信息,Gateway对每个用户需求对应的服务实例的唯一IP地址进行记录,维护一个路由表。用户需求进入Gateway时,进行查表操作,已获取目标服务实例的IP以及相关信息。如果查询失败,则请求失败,否则将请求转发至对应的服务实例。
[0031] 需要注意的是,为了统筹步骤S1、S2、S3以及S4,需要中央控制模块。该模块主要使用MAPE-K模型对上述各个步骤进行组织,同时在步骤S4中,承担任务分发任务以确保整个演化方案的顺利执行。具体如图4所示。
[0032] 需要说明的是,本发明中的各个模块(或单元)是逻辑意义上的,具体实现时,多个模块(或单元)可以合并成一个模块(或单元),一个模块(或单元)也可拆分成多个模块(或单元)。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈