管理微服务的网络的制作方法

文档序号:22253045发布日期:2020-09-18 13:09阅读:99来源:国知局
管理微服务的网络的制作方法

本申请涉及网络,具体地,涉及管理微服务的网络。



背景技术:

微服务架构涉及将应用设计为一组可独立部署的小型模块化服务,这种服务通常被称为“微服务”。每个微服务执行一个独特的过程,并且通过良好定义的轻量级机制进行通信,以使用通信协议来服务商业目标。微服务架构已成为开发软件系统(尤其是操作在基于云的环境中的软件系统)的首选方式。

微服务可以被部署在由不同服务提供者提供的各种各样的云环境上。当将应用开发为多个粒度和可重用的微服务的集合时,部署将在消费者、微服务和服务提供者之间创建具有多个连接的“服务网格”。服务网格是从微服务之间的交互和应用开发的微服务的网络。

服务网格通常采用服务网格业务管理器,其监视和管理微服务的网格。服务网格业务管理器保护微服务之间的通信,监视业务,强制实施策略并且强制实施诸如发现、负载平衡、故障恢复、度量和监视之类的要求。存在的挑战是,随着服务网格在大小和复杂性方面的增加,服务网格业务管理器难以管理服务网格,从而导致通过服务网格的业务流未被优化。



技术实现要素:

根据本公开的一个实施例,提供了一种方案,其中信息处理系统捕获与通过被部署到云环境上的服务网格中的一组微服务的业务流相对应的一组性能度量。接着,信息处理系统基于针对与一组微服务相对应的一组应用需求,分析该组性能度量来识别对业务流的一个或多个修改。进而,信息处理系统基于识别的一个或多个修改来调整服务网格的业务路由策略。

上文是概述并且由此根据需要包含细节的简化、概括和省略;因此,本领域技术人员将理解,该概述仅是示例性的,而不是旨在进行任何限制。仅由权利要求书限定的本公开的其他方面、发明特征和优点在以下阐述的非限制性详细描述中将变得显而易见。

附图说明

通过参考附图,可以更好地理解本公开,并且使本公开的众多目的、特征和优点对本领域技术人员显而易见,其中:

图1是在其中可以实现本文所描述的方法的数据处理系统的框图;

图2提供了图1中所示的信息处理系统环境的扩展,以说明本文所描述的方法可以在联网环境中操作的各种信息处理系统上执行;

图3是描绘动态业务管理代理分析服务网格状况并且向服务网格控制器提供业务管理建议的示例图;

图4是描绘动态业务管理代理收集服务网格性能度量并且通知服务网格控制器调整其业务路由策略的示例图;

图5是示出了收集服务网格性能数据并且提供业务路由策略调整的步骤的示例性高级流程图;

图6是示出了学习服务网格业务流状况而采取的步骤的示例性流程图;

图7是示出了基于当前业务流状况以分析服务网格而采取的步骤的示例性流程图;

图8是示出了基于分析当前服务网格状况以调整服务网格中的业务流状况而采取的步骤的示例性流程图;以及

图9是示出了基于识别出的业务流调整建议而修改业务路由策略而采取的步骤的示例性流程图。

具体实施方式

本文中使用的术语仅出于描述特定实施例的目的,并且不旨在限制本公开。如本文所使用的,除非上下文另外明确指出,单数形式的“一”、“一个”和“该”还旨在包括复数形式。还将理解,在本说明书中被使用术语“包括”和/或“包含”时,指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。

以下权利要求书中的所有装置或步骤加上功能元件的对应结构、材料、动作和等同物旨在包括用于与具体要求保护的其他要求保护的元件组合地执行功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了本公开的描述,但是并不旨在穷举或将本公开局限于所公开的形式。在不脱离本公开的范围和精神的情况下,许多修改和变型对于本领域普通技术人员将是易见的。实施例被选择和描述是为了最好地解释本公开的原理和实际应用,并且使本领域的其他普通技术人员能够理解具有各种修改的各种实施例的公开内容,这些修改适合于预期的特定用途。

本发明可以是系统、方法和/或计算机程序产品。该计算机程序产品可以包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。

计算机可读存储介质可以是有形设备,其可以保留和存储由指令执行设备使用的指令。计算机可读存储介质可以例如是但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)、记忆棒、软盘、其上记录了指令的诸如打孔卡或凹槽中的凸起结构之类的机械编码设备以及前述的任何合适组合。如本文所使用的,计算机可读存储介质不应被理解为是瞬时信号本身,诸如无线电波或其他自由传播的电磁波、通过波导传播的电磁波或其他传输介质(例如,穿过光纤电缆的光脉冲)或通过电线传输的电信号。

本文所述的计算机可读程序指令可以从计算机可读存储介质被下载到相应的计算/处理设备,或者可以经由网络(例如,互联网、局域网、广域网和/或无线网络)而被下载到外部计算机或外部存储设备。网络可以包括铜传输线缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言(包括面向对象的编程语言诸如smalltalk、c++等)和常规过程编程语言(诸如“c”编程语言或类似编程语言)的任意组合编写的源代码或目标代码。可以完全在用户计算机上、部分在用户计算机上、作为独立软件包执行、部分在用户计算机上并且部分在远程计算机上或完全在远程计算机或服务器上执行计算机可读程序指令。在后一种情形下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以(例如通过使用互联网服务提供者的互联网)与外部计算机进行连接。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令,来将电子电路个性化,以便执行本发明的各方面。

参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图,在本文中描述了本发明的各方面。将理解的是,可以通过计算机可读程序指令来实现流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合。

可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得该指令经由计算机或其他可编程数据处理装置的处理器执行,创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以被存储在计算机可读存储介质中,该计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式起作用,从而使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。

附图中的流程图和框图示出了根据本发明的各个实施例的系统、方法和计算机程序产品的可能实现的架构、功能性和操作。就此方面,流程图或框图中的每个方框可以表示指令的模块、片段或部分,其包括用于实现所指定的(一个或多个)逻辑功能的一个或多个可执行指令。在一些替代实现中,框中指出的功能可以不按图中指出的顺序发生。例如,取决于所涉及的功能性,实际上可以基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行这些框。还应注意,框图和/或流程图的每个框以及框图和/或流程图的框组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。如上所述,以下详细描述将一般地遵循本公开的概述,并且根据需要进一步解释和扩展本公开的各个方面和实施例的定义。

图1图示了能够执行本文所述的计算操作的计算机系统的简化示例的信息处理系统100。信息处理系统100包括耦合到处理器接口总线112的一个或多个处理器110。处理器接口总线112将处理器110连接到北桥115,北桥115也被称为存储器控制器中枢(mch)。北桥115连接到系统存储器120,并且为(一个或多个)处理器110访问系统存储器提供手段。图形控制器125也连接到北桥115。在一个实施例中,外围组件互连(pci)高速总线118将北桥115连接到图形控制器125。图形控制器125连接到显示设备130,诸如计算机监视器。

北桥115和南桥135使用总线119彼此连接。在一些实施例中,总线是直接媒体接口(dmi)总线,其在北桥115和南桥135之间的每个方向上高速传输数据。在一些实施例中,pci总线连接北桥和南桥。南桥135也被称为输入/输出(i/o)控制器中枢(ich),是一种芯片,其通常实现以比北桥提供的能力慢的速度进行操作的能力。南桥135通常提供用于连接各种组件的各种总线。这些总线包括例如pci和pci高速总线、isa总线、系统管理总线(smbus或smb)和/或低引脚数(lpc)总线。lpc总线通常连接低带宽设备,诸如引导rom196和“传统”i/o设备(使用“超级i/o”芯片)。“传统”i/o设备(198)可以包括例如串行和并行端口、键盘、鼠标和/或软盘控制器。通常被包括在南桥135中的其他组件包括直接存储器访问(dma)控制器、可编程中断控制器(pic)和存储设备控制器,其使用总线184将南桥135连接到非易失性存储设备185,诸如硬盘驱动器。

高速卡(expresscard)155是将热插拔设备连接到信息处理系统的插槽。高速卡155同时使用usb和pci高速总线连接到南桥135时,支持pci高速和通用串行总线(usb)连接。南桥135包括usb控制器140,该usb控制器140为连接到usb的设备提供usb连接性。这些设备包括网络摄像头(摄像头)150、红外(ir)接收器148、键盘和触控板144、以及提供无线个人区域网(pan)的蓝牙设备146。usb控制器140还提供到其他各种usb连接设备142的usb连接性,其他各种usb连接设备142诸如鼠标、可移动非易失性存储设备145、调制解调器、网卡、综合业务数字网(isdn)连接器、传真、打印机、usb集线器以及许多其他类型的usb连接设备。尽管可移动非易失性存储设备145被示为usb连接设备,但是可移动非易失性存储设备145可以使用诸如火线接口等的不同接口来连接。

无线局域网(lan)设备175经由pci或pci高速总线172连接到南桥135。lan设备175通常实现无线调制技术的电气和电子工程师协会(ieee)802.11标准之一,这些标准全部使用相同的协议,在信息处理系统100和另一个计算机系统或设备之间进行无线通信。光学存储设备190使用串行模拟电话适配器(ata)(sata)总线188连接到南桥135。串行ata适配器和设备通过高速串行链路进行通信。串行ata总线还将南桥135连接到其他形式的存储设备,诸如硬盘驱动器。诸如声卡之类的音频电路160经由总线158连接到南桥135。音频电路160还提供与诸如音频输入和光学数字音频入口162、光学数字输出和耳机插孔164、内置扬声器166和内置麦克风168之类的音频硬件相关联的功能性。以太网控制器170使用诸如pci或pci高速总线之类的总线连接至南桥135。以太网控制器170将信息处理系统100连接到计算机网络,诸如局域网(lan)、互联网以及其他公共和专用计算机网络。

尽管图1示出了一个信息处理系统,但是信息处理系统可以采取多种形式。例如,信息处理系统可以采取台式机、服务器、便携式计算机、膝上型计算机、笔记本计算机或其他形式因素的计算机或数据处理系统的形式。此外,信息处理系统可以采取其他形式因素,诸如个人数字助理(pda)、游戏设备、自动柜员机(atm)、便携式电话设备、通信设备或其他包括处理器和存储器的设备。

图2提供了图1中所示的信息处理系统环境的扩展,以说明可以在联网环境中操作的各种各样的信息处理系统上执行本文所述的方法。信息处理系统的类型范围从诸如手持计算机/移动电话210的小型手持设备到诸如大型计算机270的大型主机系统。手持计算机210的示例包括个人数字助理(pda)、个人娱乐设备(诸如运动图像专家组第3层音频(mp3)播放器)、便携式电视和光盘播放器。信息处理系统的其他示例包括笔或平板计算机、计算机220、膝上型计算机或笔记本计算机、计算机230、工作站240、个人计算机系统250和服务器260。图2中未单独示出的其他类型的信息处理系统由信息处理系统280表示。如图所示,可以使用计算机网络200将各种信息处理系统联网在一起。可以被用来对各种信息处理系统进行互连的计算机网络的类型包括:局域网(lan)、无线局域网网络(wlan)、互联网、公共电话交换网(pstn)、其他无线网络以及可以被用来对信息处理系统进行互连的任何其他网络拓扑。许多信息处理系统包括非易失性数据存储,诸如硬盘驱动器和/或非易失性存储器。图2中所示的信息处理系统的实施例包括分开的非易失性数据存储(更具体地,服务器260利用非易失性数据存储265,大型计算机270利用非易失性数据存储275,而信息处理系统280利用非易失性数据存储285)。非易失性数据存储可以是各种信息处理系统外部的组件,或者可以是信息处理系统之一的内部组件。另外,可移动非易失性存储设备145可以使用各种技术在两个或更多信息处理系统之间进行共享,各种技术诸如将可移动非易失性存储设备145连接到信息处理系统的usb端口或其他连接器。

如上所讨论,服务网格是多链接微服务的集合,并且随着服务网格在大小和复杂性方面增长,服务网格变得难以理解和管理。此外,每个微服务通常都具有它自己的开发测试发布生命周期,该生命周期其由一个独立的团队进行管理。例如,在稳定状态下,应用可能会同时运行一个以上版本的微服务,以迎合不同的用户(例如dev-test-ops用户、geo1-geo2用户等)。结果,服务网格中的微服务的改变在无需停机时间的情况下被实时引入应用中。由于各种原因,其中一些改变可能会影响由整个应用提供的服务的质量。转而,服务网格难以通过采取预防和纠正动作来自动调谐(优化)自身以及应对破坏性改变。

如本文中所使用的,术语“微服务”是指以下任何软件构造:(i)完全体现在软件程序的代码中(相反于被软件程序从没有包括在软件程序本身中的代码所调用的代码相反);以及(ii)在其结构和上下文中,在架构上类似于soa(面向服务的架构)中使用的传统服务(在本文中有时被称为“宏服务”)。尽管微服务通常比宏服务小,但对“微服务”的大小没有确定的大小限制。

图3至图9描绘了可以在信息处理系统上执行的方法,该信息处理系统基于收集对微服务性能度量的分析来优化服务网格中的业务流。该方法采用智能的、自主的业务管理代理,该业务管理代理识别服务网格中的业务流问题,并且通过动态调整业务管理策略来采取预防和纠正动作。业务管理代理学习服务网格业务流的特性,并且了解服务网格中引入的改变的性质,诸如微服务的新版本。转而,业务管理代理自动调谐服务网格中的业务路由策略。

图3是描绘动态业务管理代理分析服务网格状况并且将业务管理建议提供给服务网格控制器的示例性图示。动态业务管理代理300与服务网格控制器310进行接口以收集服务网格320的性能度量,诸如服务网格320中包括的每个微服务的请求率、错误率和响应率。

动态业务管理代理300连续地监视每个微服务以及针对整个应用的业务-状况-元组<请求率,响应时间,错误率>。对于应用(或外部api),动态业务管理代理300使用递归神经网络连续学习业务-状况-元组中的时间模式。对于每个微服务,通过使用多级序列学习器(更多细节参见图4以及对应的文本),动态业务管理代理300还使用递归神经网络连续学习微服务的业务-状况-元组中的模式,并且连续学习微服务的业务-状况-元组如何被相邻的微服务的业务-状况-元组中的模式(上游和下游)影响。

在一个实施例中,当微服务和/或其邻居正在经历管理员发起的改变(诸如添加/移除新的微服务、更新业务路由策略等等)时,动态业务管理代理300将微服务标记为污染节点,利用微服务版本号对该节点进行注释,并且重置针对污染节点的学习模型(使用历史数据连续学习)。

动态业务管理代理300分析性能度量,并且确定服务网格320中的业务流策略是否需要调整,诸如何时添加较新的微服务版本和/或业务流是否拥塞。图3示出了初始业务流(路径a)通过服务网格320前进通过微服务330,去往微服务340,去往微服务350,然后去往微服务360。动态业务管理代理300分析业务流性能并且确定业务流应从路径a转移到路径b,例如因为微服务370是微服务350的较新版本。在一个实施例中,istio侧车(side-car)部署对微服务的版本标记标签,以及动态业务管理代理300分析这些标签以确定新的微服务版本。

如此,动态业务管理代理300更新服务网格控制器310的业务路由策略,并且业务流(路径b)现在流动通过微服务330,去往微服务340,去往微服务370,并且去往微服务380。如下面详细讨论的那样,当动态业务管理代理300检测到服务网格320中的业务流问题时,动态业务管理代理300连续地监视服务网格320并且主动地调整业务路由策略(更多细节参见图5至图9以及对应的文本)。

图4是描绘动态业务管理代理收集服务网格性能度量并且通知服务网格控制器调整其业务路由策略的示例性示图。如本文所讨论的,服务网格性能度量是个体微服务性能度量的集合。

服务网格控制器310针对服务网格320中每个微服务450、455、460和465监视个体微服务性能度量。在一个实施例中,服务网格控制器310将个体微服务性能度量连续收集到性能度量440中。性能度量包括例如针对产品页面450的请求率、错误率和响应时间;针对细节455的请求率、错误率和响应时间;针对复查(review)v1460的请求率、错误率和响应时间;以及针对复查v2465的请求率、错误率和响应时间。

数据收集400收集性能度量440,并且将性能度量440存储在度量存储405中。继而,递归神经网络410加载性能度量以学习服务网格的业务模式。另外,多级序列学习器415学习关于每个节点的周围环境。

计算引擎420分析rnn410和多级序列学习器415的输出,并且计算路径压力、节点压力、可预测性得分和健康得分。然后,动态业务管理代理300基于计算来确定业务流策略是否需要调整。继而,当确定调整时,动态业务管理代理300调整或创建新的业务路由策略430,并且将业务路由策略430发送到服务网格控制器310,其相应地实现新的业务路由策略。例如,动态业务管理代理300可以确定复查v2465是复查v1460的较新版本,并且调整业务流策略以将业务从细节455路由到复查v2465。

图5是示出了收集服务网格性能数据并且提供业务路由策略调整的步骤的示例性高级流程图。图5的处理始于500,然后在预定义的过程520处,该过程使用来自相邻节点(微服务)的度量来学习服务网格中的业务状况,并且学习由每个节点的业务状况体验(处理细节参见图6以及对应的文本)。

在预定义的过程540处,该过程分析和计算针对服务网格中的微服务的节点压力、路径压力、可预测性得分和健康得分(处理细节参见图7以及对应的文本)。在预定义的过程560处,该过程基于在预定义的过程560处执行的微服务分析,来识别并且计划业务流调整(处理细节参见图8以及对应的文本)。

在预定义的过程580处,该过程基于来自预定义的过程560的业务流计划调整来修改服务网格的业务路由策略。在一个实施例中,业务流策略调整包括节点的水平/垂直缩放,对业务进行重新路由以隔离并且移除具有较低可预测性的节点,注入业务延迟,以及重启节点(处理细节参见图8以及对应的文本)。此后,图5的处理在595结束。

图6是示出了为学习服务网格业务流状况而采取的步骤的示例性流程图。图6的处理始于600,然后在步骤620处,该过程从服务网格控制器310收集针对每个微服务的业务状况度量,诸如元组“<请求率,响应时间,错误率>”,并且基于微服务度量计算针对整个应用(例如,服务网格320)的应用元组。

在步骤640处,该过程使用递归神经网络(rnn)410来学习针对整个应用的业务状况元组中的模式,并且(针对下一个时间间隔)预测业务状况元组。在一个实施例中,该过程使用长短期记忆(lstm)网络作为rnn410。

在步骤660处,该过程使用rnn410来连续学习针对节点的业务状况元组中的每个节点(微服务)的模式,并且使用多级序列学习器415连续学习节点的业务状况元组如何受到其相邻节点的业务状况元组中的模式(上游和下游)的影响,以学习各个节点的邻域。

在步骤680处,对于最近(ln*tm,其中ln是重新学习时间模式所需的估计迭代次数)经历过改变的每个节点/微服务(和/或其邻居),该过程将该节点标记为被污染,丢弃预测,并且重置相应节点的学习模型。在一个实施例中,如果部署中有任何改变,则该过程重置rnn410和多级序列学习器415两者的学习,并且再次开始学习过程。此后,图6的处理在695处返回到调用例程(参见图5)。

图7是示出了基于当前业务流状况来分析服务网格中的节点/路径压力而采取的步骤的示例性流程图。图7的处理始于700,随后在步骤710处,对于每个未污染节点,该过程使用rnn410来学习针对每个节点(微服务)的业务状况元组中的模式,并且(针对下一个时间间隔)预测业务状况元组。

在步骤720处,对于每个未污染节点,该过程使用多级序列学习器415从针对每个微服务的业务状况元组中的图的邻域模式中学习,并且预测(针对下一个时间间隔)业务状况元组。在步骤730处,该过程使用预测业务状况元组和由服务网格控制器310监视的实际业务状况元组,诸如在应用入口侧车处,计算整个应用中的业务压力(在本文中被称为“应用压力值”)。

在步骤740处,对于每个未污染节点,该过程使用预测响应时间和由服务网格控制器310针对每个微服务所监视的实际响应时间(在业务状况元组中),来计算针对每个未污染节点的业务压力(在本文中被称为“节点压力值”)。在步骤750,该过程基于实际响应时间与预测响应时间值的偏差,来更新关于节点的节点压力值。

在步骤760处,该过程基于请求率的正常值和预测值的偏差来计算关于节点的路径压力值。如果实际请求率度量显著偏离预测值(针对预定的时间段),并且所涉及的节点没有近期改变,则认为该节点潜在地处于异常业务路径上。

在步骤770处,对于每个未污染节点,该过程使用节点的当前业务状况元组以及计算的节点压力值和路径压力值,来计算节点可预测性得分。在步骤780处,对于每个未污染节点,该过程使用节点的当前业务状况元组以及计算的节点压力值和路径压力值,来计算节点健康得分。此后,图7的处理在795处返回到调用例程(参见图5)。

图8是示出了基于分析当前服务网格状况来计划服务网格中的业务流增强而采取的步骤的示例性流程图。图8的处理始于800,随后在步骤810处,该过程选择高压力路径中的第一节点。该过程确定该节点是否为高压力节点,诸如确定其节点压力值是否在90%之内(决策820)。如果该节点是高压力节点,那么决策820分支到“是”分支,该过程随后确定该节点是否驻留在高压力路径中,诸如确定其路径压力值是否在90%内(决策825)。

如果节点驻留于高压力路径中,那么决策825分支到“是”分支,随后在步骤830处,该过程计算与压力值成比例的、用于正在托管微服务的容器的水平缩放的计划规范。在一个实施例中,该过程通过增加微服务实例的复制来水平地缩放,以管理该微服务上的高业务负载。

另一方面,如果节点没有驻留在高压力路径中,那么决策825分支到“否”分支,随后在步骤840处,该过程计算与压力值成比例的、用于正在托管微服务的容器的垂直缩放的计划规范。例如,如果节点在压力之下,则这意味着节点的资源少于所需的资源,并且为节点提供更多资源,诸如cpu、存储器等(垂直缩放)。

返回到决策820,如果所选节点不是高压力节点,那么决策820分支到“否”分支,随后该过程确定该节点是否驻留在高压力路径中(决策850)。如果该节点驻留在高压力路径中,那么决策850分支到“是”分支,随后在步骤860处,该过程计算与压力值成比例的计划规范,用于将业务延迟注入到入口节点(或路径)以控制在入口点处请求的流入。此外,该过程用注入业务延迟计划规范对路径进行注释。另一方面,如果节点不在高压力路径中,那么决策850绕过步骤860而分支到“否”分支。

该过程确定是否还有更多的未污染节点要评估(决策870)。如果还有更多的未污染节点要评估,那么决策870分支到“是”分支,该分支循环返回以选择并且处理下一个节点。该循环继续进行,直到没有更多的未污染节点要评估为止,此时决策870分支到退出循环的“否”分支。

在步骤880处,对于在服务网格中运行的具有多个版本的节点,该过程比较其对应的节点可预测性得分,并且将具有较小可预测性的节点标记为准备退役。该过程使用节点可预测性得分来更新业务路由策略注释,其中具有有关如何将业务重新路由到高度可预测的节点或路径的细节。

在步骤890处,对于具有低节点健康得分的节点,由于节点不健康并且将不服务于请求,因此该过程将用重启节点的计划规范注释该节点。此后,图8的处理在895处返回到调用例程(参见图5)。

图9是示出了通过基于识别出的业务流调整建议来调整业务路由策略从而增强服务网格中的业务流而采取的步骤的示例性流程图。图9的处理始于900,随后在步骤910处,对于被标记为水平缩放的节点,该过程(例如,服务网格控制器310)确定路径中的所有节点,并且根据计划规范注释对它们进行水平缩放(例如,增加副本以管理微服务上的高业务负载)。该过程还将重置在这些节点中的其他计划规范注释。

在步骤920处,对于具有被标记为垂直缩放的计划规范的节点,该过程根据注释对它们进行垂直缩放,并且重置这些节点中的其他计划规范注释。在步骤930处,对于被标记为准备退役的节点,该过程使用节点注释将业务重新路由到高度可预测的节点或路径。此外,该过程水平缩放可预测节点以处理其他业务,并且重置不可预测的节点和对应的可预测节点中的其他计划规范注释。

在步骤940处,对于具有计划规范为注入业务延迟的节点,该过程使用路径注释在路径的入口节点中注入人工延迟。在步骤950处,对于具有计划规范为重启节点的节点,该过程为去往该节点的所有传入业务插入断路器,并且当微服务在不同节点或可用性区域中被重启时,在短暂时间段内以内部服务错误消息响应。一旦微服务被重启,该过程就将在微服务上运行烟雾测试,移除断路器,并且(在新的节点或可用性区域中)为传入业务打开微服务。此后,图9的处理在995处返回到调用例程(参见图5)。

虽然已经示出和描述了本公开的特定实施例,但是对于本领域技术人员而言易见的是,基于本文的教导,可以在不脱离本公开及其更广泛的方面的情况下进行改变和修改。因此,所附权利要求书将在本公开的真实精神和范围内的所有这些改变和修改都包含在它们的范围内。此外,应该理解,本公开仅由所附权利要求书限定。本领域技术人员将理解,如果特定数量的引入的权利要求元件是所意欲的,则将在权利要求中明确地陈述这种意图,并且在没有这种叙述的情况下则不存在这种限制。作为非限制性示例,为了帮助理解,以下所附权利要求包含使用引入性短语“至少一个”和“一个或多个”来引入权利要求元素。但是,此类短语的使用不应解释为暗示不定冠词“一”或“一个”对权利要求元素的引入将包含该引入的权利要求元素的任何特定权利要求限制为仅包含一个此类元素的公开——即使同一权利要求包括引入性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”之类的不定冠词;在定冠词的权利要求中的使用也是如此。

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