首页> 中国专利> 用于分布式计算系统内的遥测数据收集的可缩放控制平面

用于分布式计算系统内的遥测数据收集的可缩放控制平面

摘要

提供了用于分布式计算系统内的遥测数据收集的可缩放控制平面。在分布式计算系统中的一个或多个处理器上执行的示例控制平面被配置为接收将节点装载到分布式计算系统中的指示,其中该节点包括计算节点或网络设备节点中的一个,以发现与所述节点相关联的一个或多个计算资源或网络设备资源,以及基于所述发现将所述节点分配给在所述分布式计算系统中执行的收集器,其中所述收集器被配置为在所述节点的操作期间收集所述节点的实时遥测数据。所述控制平面还被配置为从所述收集器接收由所述收集器收集的所述节点的实时遥测数据,并输出用于显示的所述节点的实时遥测数据的可视化表示。

著录项

说明书

技术领域

本公开总体涉及一种计算机网络。

背景技术

在典型的数据中心或其他分布式计算系统中,提供用于执行各种应用的计算和/或存储容量的大量互连设备。例如,数据中心可以包括为数据中心的订户或客户托管应用和服务的一个或多个设施。数据中心可以例如托管基础设施设备,诸如联网和存储系统、冗余电源和环境控制。在一些数据中心中,存储系统和应用服务器的集群经由由诸如交换机和路由器等一个或多个网络设备层提供的高速网络架构互连。某些复杂的企业和服务提供商可以采用具有遍布全世界的基础设施的多个数据中心,其中订户支持设备位于各种物理托管设施中。

数据中心和其他分布式计算系统正成为现代信息技术(IT)基础设施的核心基础。例如,现代数据中心已经广泛地利用其中在由物理计算设备组成的基础平台上部署并执行诸如计算节点、网络设备节点和存储节点等各种实体的环境。

发明内容

一般而言,本公开描述了用于实现分布式计算系统内的遥测数据收集的可缩放控制平面的技术,其跨分布式计算系统的不同服务提供公共控制平面。结果,分布式计算系统内的各种不同类型的遥测收集器(例如,计算节点收集器、网络设备节点收集器)的能力可以由单个控制平面来控制。因此,该单个控制平面被配置为将计算节点和网络设备节点两者装载在分布式计算系统上,并且将这些计算节点和网络设备节点分配给相应的计算节点收集器和网络设备节点收集器。该实现导致弹性的、高度可缩放的设计,该设计还可以利用编排平台(例如,容器编排平台)来为控制平面创建单集群服务。利用这种设计,控制平面的部署模型以及用户与控制平面的交互变得更简单,因为存在跨分布式计算系统内的所有类型的数据收集的、由控制平面提供的单个虚拟“玻璃窗格”(pane of glass)。

在一个示例中,一种方法包括由在分布式计算系统中的一个或多个处理器上执行的控制平面接收将节点装载到分布式计算系统中的指示,其中控制平面被配置为将计算节点和网络设备节点两者装载到分布式计算系统中,并且其中节点包括计算节点或网络设备节点中的一个,由控制平面发现与节点相关联的一个或多个计算资源或网络设备资源,以及由所述控制平面将所述节点分配给在所述分布式计算系统中执行的收集器,其中所述收集器被配置为在所述节点的操作期间收集所述节点的实时遥测数据,并且其中所述控制平面被配置为将所述分布式计算系统的所述计算节点和所述网络设备节点分配给相应的计算节点收集器或网络设备节点收集器。示例方法还包括由控制平面从收集器接收由收集器收集的节点的实时遥测数据,和由控制平面输出用于显示的节点的实时遥测数据的可视化表示。

在另一示例中,计算系统包括一个或多个处理器和至少一个计算机可读存储设备。至少一个计算机可读存储设备存储指令,所述指令在被执行时使得所述一个或多个处理器:由控制平面接收将节点装载到分布式计算系统中的指示,其中所述控制平面被配置为将计算节点和网络设备节点两者装载到所述分布式计算系统中,并且其中所述节点包括计算节点或网络设备节点中的一个;由控制平面发现与节点相关联的一个或多个计算资源或网络设备资源;由所述控制平面将所述节点分配给在所述分布式计算系统中执行的收集器,其中所述收集器被配置为在所述节点的操作期间收集所述节点的实时遥测数据,并且其中所述控制平面被配置为将所述分布式计算系统的所述计算节点和所述网络设备节点分配给相应的计算节点收集器或网络设备节点收集器;由控制平面从收集器接收由收集器收集的节点的实时遥测数据;和由控制平面输出用于显示的节点的实时遥测数据的可视化表示。

在另一示例中,一种计算机可读存储装置存储指令,所述指令可由至少一个处理器执行以:由控制平面接收将节点装载到分布式计算系统中的指示,其中所述控制平面被配置为将计算节点和网络设备节点两者装载到所述分布式计算系统中,并且其中所述节点包括计算节点或网络设备节点中的一个;由控制平面发现与节点相关联的一个或多个计算资源或网络设备资源;由所述控制平面将所述节点分配给在所述分布式计算系统中执行的收集器,其中所述收集器被配置为在所述节点的操作期间收集所述节点的实时遥测数据,并且其中所述控制平面被配置为将所述分布式计算系统的所述计算节点和所述网络设备节点分配给相应的计算节点收集器或网络设备节点收集器;由控制平面从收集器接收由收集器收集的节点的实时遥测数据;和由控制平面输出用于显示的节点的实时遥测数据的可视化表示。

在附图和下面的描述中阐述了一个或多个示例的细节。其它特征、目的和优点从说明书和附图以及权利要求中将是显而易见的。

附图说明

图1A是示出根据本公开的一个或多个方面的示例网络的框图,该示例网络包括实现可缩放遥测控制平面的示例分布式计算系统。

图1B是示出根据本公开的一个或多个方面的分布式计算系统内的示例可缩放遥测控制平面的框图。

图2是示出根据本公开的一个或多个方面的用于单节点部署的可缩放遥测控制平面的一个示例的框图。

图3是示出根据本公开的一个或多个方面的用于高可用性(HA)部署的可缩放遥测控制平面的一个示例的框图。

图4是示出根据本公开的一个或多个方面的图3所示的可缩放遥测控制平面的一个特定示例的框图。

图5是示出根据本公开的一个或多个方面的图4所示的可缩放遥测控制平面的一个示例的进一步细节的框图。

图6是示出根据本公开的一个或多个方面的包括或实现可缩放遥测控制平面的示例计算系统的框图。

图7是示出根据本公开的一个或多个方面的由可缩放遥测控制平面执行的示例过程的流程图。

具体实施方式

如上所述,分布式计算系统正成为现代信息技术(IT)基础设施的核心基础。在一些分布式计算系统中,大量互连节点(例如,物理或虚拟设备)可以提供用于执行各种应用的计算和/或存储容量。例如,分布式计算系统可以包括为客户托管应用和服务的设施,并且该系统可以包括本地和/或远程资源。现代分布式系统已经广泛地利用了虚拟化环境,其中在由物理计算设备组成的基础计算平台上部署并执行诸如虚拟机或容器等虚拟主机。如这里所使用的,术语分布式计算系统可以指系统的物理位置或框架,和/或包括在系统中或由系统提供的计算基础设施(例如,计算和/或存储资源)。分布式计算系统可以包括一个或多个节点集群(例如,裸机服务器、虚拟机),如以下更详细描述的。

分布式计算系统可以包括在地理上共同位于一个地理位置中或者分散在多个不同位置上的计算设备或服务器。分布式计算系统可提供可由一个或多个应用使用的一个或多个计算资源和/或存储资源(例如,虚拟和/或物理资源)。例如,计算资源可以包括一个或多个计算节点,这些计算节点是提供计算能力和/或功能的虚拟或物理节点。作为一个示例,计算节点可以包括被配置为提供其中执行应用的一个或多个应用容器的虚拟机。

分布式系统内的虚拟化可提供若干优点。一个优点是虚拟化可以提供对效率的显著改进。随着每个物理处理单元具有大量核的多核微处理器架构的出现,底层物理计算设备(例如,服务器)已经变得日益强大,虚拟化变得更容易和更有效。第二个优点是虚拟化提供了对计算基础设施的重要控制。随着物理计算资源变成可替代资源,诸如在基于云的计算环境中,计算基础设施的供应和管理变得更容易。

一般而言,本公开描述了用于利用分布式计算系统实现用于遥测数据收集的可缩放控制平面的技术,该分布式计算系统提供跨分布式计算系统的不同服务的公共控制平面。结果,分布式计算系统内的所有遥测收集器(例如,计算节点收集器、网络设备节点收集器)的能力可由单个控制平面来控制。因此,该单个控制平面被配置为将计算节点和网络设备节点两者装载在分布式计算系统上,并且将这些计算节点和网络设备节点分配给分布式计算系统内的相应计算节点收集器和网络设备节点收集器。这种实现产生了一种弹性的、高度可缩放的设计,该设计还可以利用编排平台来为控制平面创建单集群服务。通过这种设计,部署模型以及用户与其的交互变得更简单,因为存在由控制平面提供的跨所有类型的数据收集的单个虚拟“玻璃窗格”。

根据所公开的技术,控制平面的集合服务可以负责将节点装载和分布到分布式计算系统内的各种不同类型的遥测收集器。一旦节点已经装载,控制平面的服务可以发现节点的通信接口和连接信息,并且可以基于所发现的信息将节点与特定收集器相关联。然后,收集器可以适当地配置节点,并开始从节点收集数据。该数据然后可以流到控制平面,该控制平面可以将其提供给仪表板用于数据可视化,如图1A-1B中介绍的并且在下面进一步详细描述的。

图1A是示出根据本公开的一个或多个方面的示例网络的框图,该示例网络包括实现可缩放遥测控制平面的示例分布式计算系统。图1A示出了托管一个或多个基于云的计算网络、计算域或项目的网络105和数据中心100的一个示例实现,在此一般被称为云计算集群。数据中心100可以是分布式计算系统的一个示例,或者可以包括分布式计算系统。基于云的计算集群可以共同位于公共的总体计算环境中,诸如单个数据中心,或者跨环境分布,诸如跨不同的数据中心。基于云的计算集群例如可以是不同的云环境,诸如OpenStack云环境、Kubernetes云环境或其他计算集群、域、网络等的各种组合。网络105和数据中心100的其它实现在其它情况下可能是合适的。这样的实现可以包括图1A的示例中包括的组件的子集和/或可以包括图1A中未示出的附加组件。

在图1A的示例中,数据中心100为通过服务提供商网络107耦合到数据中心100的客户103的应用和服务提供操作环境。尽管结合图1A的网络105描述的功能和操作可以被图示为分布在图1A中的多个设备上,但是在其他示例中,可以由一个或多个这样的设备的本地组件在内部执行属于图1A中的一个或多个设备的特征和技术。类似地,一个或多个这样的设备可包括某些组件并执行各种技术,这些技术在本文的描述中可另外归因于一个或多个其他设备。此外,某些操作、技术、特征和/或功能可以结合图1A来描述,或者由特定组件、设备和/或模块来执行。在其它实例中,此类操作、技术、特征和/或功能可由其它组件、设备或模块执行。因此,即使没有在此以这种方式具体描述,属于一个或多个组件、设备或模块的一些操作、技术、特征和/或功能也可以属于其他组件、设备和/或模块。

数据中心100托管基础设施设备,诸如联网和存储系统、冗余电源和环境控制。服务提供商网络107可以耦合到由其他提供商管理的一个或多个网络,并且因此可以形成例如因特网的大规模公共网络基础设施的一部分。

在一些示例中,数据中心100可以表示许多地理上分布式的网络数据中心中的一个。如图1A的示例所示,数据中心100是为客户103提供网络服务的设施。客户103可以是集体实体,例如企业和政府或个人。例如,网络数据中心可以为若干企业和终端用户托管web服务。其它示例性服务可包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学计算或超级计算等。在一些示例中,数据中心100是单独的网络服务器、网络对等体或其它。

在图1A的示例中,数据中心100包括一组存储系统和设备,包括经由由一层或多层物理网络交换机和路由器提供的高速交换架构115互连的设备117A到设备117N(统称为“设备117”)。在一些情况下,设备117可以包括用作数据中心的物理计算节点的服务器。例如,设备117可以各自提供用于执行一个或多个客户专用虚拟机119(图1A中的“VM”)或其他虚拟化实例(例如容器)的操作环境。一个或多个设备117可以可选地各自包括主机计算设备,或者更简单地,作为主机。设备117可以执行一个或多个虚拟化实例,例如虚拟机、容器,或用于运行一个或多个服务的其他虚拟执行环境,例如虚拟化网络功能(VNF)。在一些示例中,一个或多个设备117可以包括数据中心100内的一个或多个网络设备(例如,交换机、路由器、集线器、网关、防火墙等)。

虽然未示出,但是交换架构115可以包括耦合到机架交换机的分布层的机顶(TOR)交换机,并且数据中心100可以包括一个或多个非边缘交换机、路由器、集线器、网关、安全设备(诸如防火墙、入侵检测和/或入侵防止设备)、服务器、计算机终端、膝上型计算机、打印机、数据库、无线移动设备(例如蜂窝电话或个人数字助理)、无线接入点、网桥、电缆调制解调器、应用加速器或其它网络设备。交换架构115可以执行第3层路由,以通过服务提供商网络107在数据中心100和客户103之间路由网络流量。网关113用于在交换架构115和服务提供商网络107之间转发和接收分组。

根据本公开的一个或多个示例,软件定义的联网(“SDN”)控制器127提供逻辑上和在一些情况下物理上集中式的控制器,用于促进数据中心100内的一个或多个虚拟网络的操作。术语SDN控制器和虚拟网络控制器(“VNC”)在本公开中可以互换使用。在一些示例中,SDN控制器127响应于经由北向应用编程接口(API)131从编排引擎129接收的配置输入而操作,其又响应于从与一个或多个客户端设备101交互和/或操作一个或多个客户端设备101的管理员125接收的配置输入而操作。关于与数据中心100的其他设备或其他软件定义的网络结合操作的SDN控制器127的附加信息可以在2013年6月5日提交的题为“虚拟网络分组流的物理路径确定(PHYSICAL PATH DETERMINATION FOR VIRTUAL NETWORK PACKET FLOWS)”的国际申请号PCT/US 2013/044378中找到,其全部内容通过引用整体并入本文。

客户端设备101可以被实现为用于交互呈现输出和/或接受用户输入的任何合适的设备。例如,客户端设备101可以包括显示器。客户端设备101可以是计算系统,诸如由用户和/或管理员125操作的移动或非移动计算设备。客户端设备101例如可以表示工作站、膝上型或笔记本计算机、台式计算机、平板计算机或者可以由用户操作和/或呈现根据本公开的一个或多个方面的用户接口的任何其他计算设备。

在一些示例中,客户端设备101可以与可缩放遥测控制平面102物理分离和/或位于与可缩放遥测控制平面102不同的位置。在这样的示例中,客户端设备101可以通过网络或其他通信手段与控制平面102通信。在其他示例中,客户端设备101可以是控制平面102的本地外围设备,或者可以集成到控制平面102中。

如下面将更详细地描述的,包括图1B的描述,本公开描述了用于实现可缩放控制平面102的技术,该可缩放控制平面102用于利用分布式计算系统(诸如数据中心100)进行遥测数据收集,该分布式计算系统提供跨分布式计算系统的不同服务的公共控制平面。结果,所有遥测收集器123(例如,与诸如计算节点或网络设备节点等设备117相关联的收集器)的能力可由单个控制平面102控制。该实现导致弹性的、高度可缩放的设计,其可以为控制平面102创建单个服务集群,如下面参考图1B更详细地描述的。

在一些示例中,编排引擎129管理数据中心100的功能,诸如计算、存储、联网和应用资源。例如,编排引擎129可以为数据中心100内或跨数据中心的租户创建虚拟网络。编排引擎129可以将虚拟机(VM)附接到租户的虚拟网络。编排引擎129可以将租户的虚拟网络连接到外部网络,例如因特网或虚拟专用网络(VPN)。编排引擎129可以跨VM组或到租户网络的边界来实现安全策略。编排引擎129可以在租户的虚拟网络中部署网络服务(例如负载平衡器)。如将在下面进一步详细描述的,编排引擎129可以包括其管理数据中心100内的容器容器组(pods)和/或容器的实例化和/或部署的容器编排平台。在一些示例中,编排引擎129可以被实现为作为控制平面102的一部分的一个或多个编排平台服务(例如,图1B中所示的编排平台服务108)。

在一些示例中,SDN控制器127管理网络和联网服务,诸如负载平衡、安全性,并且经由南向API 133将来自设备117的资源分配给各种应用。即,南向API 133表示由SDN控制器127用来使网络的实际状态等于由编排引擎129指定的期望状态的一组通信协议。例如,SDN控制器127通过配置以下来实现来自编排引擎129的高级请求:物理交换机,例如TOR交换机、机架交换机和交换架构115;物理路由器;物理服务节点,例如防火墙和负载均衡器;以及虚拟服务,例如VM中的虚拟防火墙。SDN控制器127在状态数据库内维护路由、联网和配置信息。在某些示例中,在此参考SDN控制器127和控制平面102描述的功能可以在数据中心100内的一个或多个控制器内组合。

通常,任何两个网络设备之间的流量,例如在交换架构115内的网络设备(未示出)之间,或者在设备117和客户103之间,或者在设备117之间,可以使用许多不同的路径穿过物理网络。例如,在两个网络设备之间可以存在多个相等成本的不同路径。在一些情况下,属于从一个网络设备到另一个网络设备的网络流量的分组可以使用在每个网络交换节点处被称为多路径路由的路由策略而被分布在各种可能的路径之间。例如,因特网工程任务组(IETF)RFC 2992,“等价多路径算法分析”描述了用于沿等价的多路径来路由分组的路由技术。RFC 2992的技术分析了一种特定的多路径路由策略,该策略涉及通过对分组报头字段进行散列来将流分配到仓,该分组报头字段通过单个确定性路径发送来自特定网络流的所有分组。

例如,“流”可以由在分组的报头中使用的五个值或“五元组’来定义,即,用于通过物理网络路由分组的协议、源IP地址、目的地IP地址、源端口和目的地端口。例如,协议指定通信协议,如TCP或UDP,源端口和目的端口指连接的源端口和目的端口。与特定流条目匹配的一个或多个分组数据单元(PDU)的集合表示流。可以使用PDU的任何参数对流进行广义分类,所述参数例如源和目的地数据链路(例如MAC)和网络(例如IP)地址、虚拟局域网(VLAN)标签、传输层信息、多协议标签交换(MPLS)或通用MPLS(GMPLS)标签以及接收流的网络设备的入口端口。例如,流可以是在传输控制协议(TCP)连接中发送的所有PDU、由特定MAC地址或IP地址发起的所有PDU、具有相同VLAN标签的所有PDU,或者在同一交换机端口接收的所有PDU。

虚拟路由器121(虚拟路由器121A到虚拟路由器121N,在图1A中统称为“虚拟路由器121”)为数据中心100内的相应虚拟网络执行多个路由实例,并将分组路由到在由设备117提供的操作环境内执行的适当虚拟机。每个设备117可以包括虚拟路由器。例如,由设备117A的虚拟路由器121A从底层物理网络架构接收的分组可以包括外部报头,以允许物理网络架构将有效载荷或“内部分组”隧道传送到设备117A的网络接口的物理网络地址。该外部报头不仅可以包括该服务器的网络接口的物理网络地址,而且可以包括一个虚拟网络标识符,例如VxLAN标签或多协议标签交换(MPLS)标签,该标签标识这些虚拟网络之一以及由该虚拟路由器执行的对应路由实例。内部分组包括具有目的地网络地址的内部报头,该目的地网络地址符合由虚拟网络标识符标识的虚拟网络的虚拟网络寻址空间。

在一些方面,虚拟路由器在将从底层物理网络架构接收到的多个隧道化分组递送到用于这些分组的适当路由实例之前缓冲并聚集这些分组。即,在设备117之一上执行的虚拟路由器可以从交换架构115内的一个或多个TOR交换机接收分组流的入站隧道分组,并且在将隧道分组路由到本地执行的虚拟机之前,处理隧道分组以构造用于转发到虚拟机的单个聚集隧道分组。即,虚拟路由器可以缓冲多个入站隧道分组,并构造单个隧道分组,其中多个隧道分组的有效载荷被组合成单个有效载荷,并且隧道分组上的外部/覆盖报头被移除并用单个报头虚拟网络标识符替换。这样,聚集隧道分组可以由虚拟路由器转发到虚拟机,就好像从虚拟网络接收到单个入站隧道分组一样。此外,为了执行聚集操作,虚拟路由器可以利用基于内核的卸载引擎,该卸载引擎无缝地并且自动地引导隧道分组的聚集。在2017年5月2日公布的题为“虚拟网络的分组分段卸载(PACKET SEGMENTATION OFFLOAD FORVIRTUAL NETWORKS)”的美国专利第9,641,435号中描述了虚拟路由器将流量转发到在设备117上执行的客户专用虚拟机的其它示例技术,其全部内容通过引用整体并入本文。

在一些示例实现中,当处理分组以路由到一个或多个虚拟和/或物理机器时,在设备117上执行的虚拟路由器121在多个处理器核心之间导引所接收的入站隧道分组,以促进核心之间的分组处理负载平衡。作为一个示例,设备117A可以包括多个网络接口卡和多个处理器核心,以执行虚拟路由器121A并在多个处理器核心之间导引所接收的分组,以便于核心之间的分组处理负载平衡。例如,设备117A的特定网络接口卡可以与网络接口卡将所有接收到的分组定向到的指定处理器核心相关联。各个处理器核心不是处理每个接收到的分组,而是根据应用于内部和外部分组报头中的至少一个的散列函数将流卸载到一个或多个其他处理器核心,以便处理来利用其他处理器核心的可用工作周期。

如上所述,并且如下所述,并且还参考图1B更详细地描述,数据中心100还包括控制平面102。如下面将进一步详细描述的,控制平面102与监控代理123A-123N(统称为“代理123”,其在此也可被称为“收集器”)交互。收集器123,其部署在相应设备117中的至少一些内或耦合到相应设备117中的至少一些,用于监测物理计算节点或网络设备节点以及在物理主机上执行的任何虚拟化主机(诸如VM 119)的资源使用。这样,收集器123提供用于收集由控制平面102使用的各种使用度量的分布式机制。在示例实现中,收集器123在数据中心100的底层设施的最低级别计算节点上运行,该计算节点提供计算资源以执行应用工作负载。计算节点例如可以是设备117A/117N的裸机主机、虚拟机119、容器等。在一些情况下,收集器123可以收集它们所执行的计算节点的遥测数据。在一些情况下,收集器123可以收集数据中心100中的网络设备节点的遥测数据,其通信地耦合到所述数据中心100。如下面进一步详细描述的,控制平面102可以在收集器123被装载到数据中心100中时将它们分配给各个节点。在各种情况下,收集器123可以作为相应系统管理程序的一部分来执行,或者可以在内核空间内或作为内核的一部分来执行。

在一些示例中,控制平面102从收集器123获得使用度量并构造仪表板(例如,一组用户接口)以提供对数据中心100的操作性能和底层设施资源的可见性。控制平面102可以例如将仪表板传送到客户端设备101以显示给管理员125。此外,控制平面102可以将分析和机器学习应用于所收集的度量,以提供接近或看起来接近实时和历史的监测、性能可见性和动态优化,从而改进数据中心100内的编排、安全、会计和规划。

在一些示例中,控制平面102可以被配置为确定和/或标识在设备117中的每一个上执行的虚拟机、容器、服务和/或应用的形式的元素。如这里所使用的,资源通常指虚拟化底层设施的可消耗组件,即,由底层设施使用的组件,诸如中央处理单元(CPU)、存储器、磁盘、磁盘I/O、网络I/O、虚拟CPU等。资源可以具有一个或多个特性,每个特性与由控制平面分析的度量相关联。一般而言,底层设施元件(在此也称为元件)是包括可消耗资源或消耗可消耗资源以便操作的底层设施的组件。示例元素包括主机、物理或虚拟网络设备、实例(例如,虚拟机、容器或其他虚拟操作环境实例)、聚集、项目和服务。在一些情况下,实体可以是另一实体的资源。虚拟网络设备例如可以包括虚拟路由器和交换机、虚拟路由器(vRouter)、虚拟交换机(vSwitch)、开放虚拟交换机和虚拟隧道转发器(VTF)。度量是测量资源的特性的资源的量的值,资源的特性由元素消耗。

控制平面102还可以分析从收集器123接收的内部处理器度量,并且基于每个虚拟机使用设备117的共享资源的程度来分类一个或多个虚拟机119(例如,分类可以是CPU绑定、高速缓存绑定、存储器绑定)。控制平面102可以与编排引擎129交互以使得编排引擎129基于在设备117上执行的虚拟机119的分类来调整一个或多个虚拟机119在设备117上的部署。

控制平面102可被实现为任何合适的计算设备或在任何合适的计算设备内,或跨多个计算设备。控制平面102或控制平面102的组件可以在数据中心100的控制器计算节点上实现,或者在数据中心100的一个或多个计算节点上实现(例如,作为SDN控制器127或单独的控制器127的一部分)。在一些示例中,控制平面102可以包括在数据中心100内包括的一类计算节点(例如,“底层设施节点”)上执行的多个模块。这样的节点可以是OpenStack底层设施服务节点或Kubernetes主节点,和/或可以实现为虚拟机。在一些示例中,控制平面102可以具有到数据中心100内的一些或所有其他计算节点的网络连接性,并且还可以具有到管理数据中心100的其他底层设施服务的网络连接性。

在一些情况下,由控制平面102输出的仪表板可以包括图形视图,该图形视图通过例如使用直方图来提供资源利用的快速、可视化概观。这样的直方图的仓可以表示使用给定百分比的资源(例如CPU利用率)的实例的数量。通过使用直方图来呈现数据,仪表板以允许管理员125(如果仪表板被呈现在客户端设备101处)快速标识指示供应不足或供应过度的实例的模式的方式来呈现信息。在一些示例中,仪表板可突出特定项目或主机上的实例的资源利用,或所有主机或项目上的总资源利用,使得管理员125可理解整个底层设施的上下文中的资源利用。

例如,这些仪表板可以包括与使用计算、网络和/或存储资源的成本以及由项目引起的成本有关的信息。仪表板还可以呈现关于数据中心100内的一个或多个虚拟机119或其他资源的健康和风险的信息。在一些示例中,“健康”可对应于反映一个或多个虚拟机119的当前状态的指示符。例如,呈现健康问题的示例虚拟机当前可能在用户指定的性能策略之外操作。可以基于所监测的度量和/或对应于这些度量的警报来确定健康和风险指示符。

收集器123可以在一个或多个设备117上执行,以监测与设备117和/或在设备117上执行的虚拟机119相关联的一些或全部性能度量。收集器123和/或控制平面102可分析所监测的信息和/或度量,并生成与设备117和/或在这些设备117上执行的一个或多个虚拟机119的操作状态相关联的操作信息和/或智能。收集器123可与操作一个或多个设备117的内核交互以确定、提取或接收与在设备117处执行的一个或多个进程和/或虚拟机119对共享资源的使用相关联的内部处理器度量。收集器123可以在每个设备117本地执行监测和分析。在一些示例中,收集器123可以以接近和/或看起来是实时的方式执行监测和/或分析。

控制平面102可以配置收集器123以监测触发警报的条件。例如,控制平面102可以检测来自客户端设备101的输入(控制平面102确定对应于用户输入)。控制平面102还可确定用户输入对应于足以配置基于一个或多个度量的值的用户指定的警报的信息。收集器123可以针对警报所基于的条件来监视设备117(如从控制平面102接收的策略所指定的)。在一些示例中,控制平面102可在没有用户输入的情况下生成策略并建立警报条件。例如,控制平面102可以将分析和机器学习应用于由收集器123收集的度量。控制平面102可以分析由收集器123在各个时间段收集的度量。控制平面102可以基于这样的分析来确定足以配置针对一个或多个度量的警报的信息。控制平面102可处理该信息并生成实现警报设置的一个或多个策略。控制平面102可以将关于策略的信息传送到在设备117上执行的收集器123。此后,收集器123中的每一个可以监测条件并且响应于根据在没有用户输入的情况下生成的对应策略而触发警报的条件。

图1A中所示的和/或在本公开中的其他地方所示或描述的各种组件、功能单元和/或模块(例如,客户端设备101、编排引擎129、SDN控制器127、控制平面102、收集器123)可以执行使用驻留在一个或多个计算设备中和/或在一个或多个计算设备处执行的软件、硬件、固件或硬件、软件和固件的混合所描述的操作。例如,计算设备可以执行具有多个处理器或多个设备的一个或多个这样的模块。计算设备可执行诸如在底层硬件上执行的虚拟机等一个或多个这样的模块。一个或多个这样的模块可以作为操作系统或计算平台的一个或多个服务来执行。一个或多个这样的模块可以作为一个或多个可执行程序在计算平台的应用层执行。在其它实例中,由模块提供的功能性可由专用硬件设备实现。尽管可以单独地示出包括在一个或多个存储设备内的某些模块、数据存储、组件、程序、可执行文件、数据项、功能单元和/或其它项,但是这些项中的一个或多个可以被组合并且作为单个模块、组件、程序、可执行文件、数据项或功能单元来操作。例如,一个或多个模块或数据存储可被组合或部分组合,使得它们作为单个模块操作或提供功能。

此外,一个或多个模块可以彼此结合地操作,使得例如一个模块充当另一模块的服务或扩展。此外,存储设备内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其它项可以包括未示出的多个组件、子组件、模块、子模块、数据存储和/或其它组件或模块或数据存储。此外,可以以各种方式来实现存储设备内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其它项。例如,存储设备内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其它项可以被实现为在计算设备上执行的操作系统的一部分。

在2020年6月2日发布的题为“具有多方面利用可视化的网络仪表板(NETWORKDASHBOARD WITH MULTIFACETED UTILIZATION VISUALIZATIONS)”的美国专利第10,673,714号中描述了控制平面102与数据中心100内的设备117和收集器123交互的其他示例技术,其全部内容通过引用整体并入本文。

图1B是示出根据本公开的一个或多个方面的分布式计算系统内的示例可缩放遥测控制平面102的框图。图1A所示的数据中心100可以是分布式计算系统的一个示例,或者可以包括分布式计算系统。在图1B中,图1A中所示的数据中心100被称为分布式计算系统100。如图1B所示,分布式计算系统100包括任何两个或多个节点的集群,例如节点132、140和148。这些节点包括至少一个控制器节点(例如,节点132)以及一个或多个其他节点(例如,节点140、148)。在各种示例中,分布式计算系统100的节点132、140、148可以包括任何数量的计算节点、网络设备节点和/或存储节点,并且这些节点中的每一个在一些情况下可以包括:例如,裸机服务器(例如,图1A中的设备117之一)或虚拟机(例如,图1A中的VM 119之一)。分布式计算系统100的节点132、140、148可以物理上位于一个地理位置或者分布在不同的地理位置之间。

通常,节点132、140、148中的一个或多个可以为包括在相应节点中或耦合到相应节点的计算、网络设备和/或存储资源的应用和服务提供操作环境。节点132、140、148中的一个或多个可以例如托管底层设施设备,诸如计算系统、联网和存储系统、冗余电源和环境控制。在一些示例中,将资源耦合到节点132、140、148中的一个或多个的服务提供商网络可以耦合到由其他提供商管理的一个或多个网络,并且因此可以形成例如因特网的大型公共网络底层设施的一部分。在图1B的示例中,节点132、140、148可以包括一个或多个物理或虚拟资源(例如,计算机资源、网络设备资源、存储资源等)。

在一些示例中,分布式计算系统100可以表示地理上的分布式系统。分布式计算系统100可以包括为客户设备(例如,一个或多个客户端设备101)提供网络服务的设施,客户设备可以是例如企业和政府或个人等实体的设备。例如,分布式计算系统100可以为若干企业和终端用户托管web服务。其它示例性服务可包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些情况下,包括节点132、140、148的分布式计算系统100可包括单独的网络服务器、网络对等体或其它。

在各种示例中,包括节点132、140、148的分布式计算系统100可以包括或提供一组存储系统和应用服务器(例如,图1A中所示的设备117中的一个或多个),其经由互联网协议(IP)架构互连,并且其可以包括由一层或多层物理网络设备提供的架构,所述物理网络设备诸如例如路由器、网关、交换机、集线器、调制解调器、网桥、中继器、复用器、服务器、在一个或多个相同的和其他示例网络设备上运行的虚拟机。图1A示出了一个示例织物115。IP架构可以是分布式计算系统100所提供的一个或多个网络资源的一部分。在某些示例中,IP架构可以包括三层设备:一个或多个主干设备、一个或多个聚集设备,以及一个或多个叶设备。在其他示例中可以使用其他拓扑。服务器可以为与客户设备相关联的应用和数据提供执行和存储环境,并且可以是物理服务器、虚拟机或其组合。

一个或多个客户端设备101可以通信地耦合分布式计算系统100,诸如经由可缩放遥测控制平面102(例如,经由仪表板服务104和/或控制器服务112,如下面进一步详细描述的)。可缩放遥测控制平面102(在此称为“控制平面102”)包括可在一个或多个节点132、140、148上实现或以其它方式提供的各种服务。例如,如果节点132包括控制器节点,则控制平面102的一个或多个服务可由节点132提供。然而,在某些情况下,这些服务中的一个或多个也可由分布式计算系统100中的其它节点提供,诸如节点140、148。如前所述,节点132、140、148中的每一个可以包括一个或多个物理设备(例如,计算设备、服务器设备、客户端设备)、虚拟设备(例如,虚拟机)或其他实体。尽管在图1B中示出了节点132、140、148,但分布式计算系统100可包括集群中任何数量的节点以及任何数量的收集器。

如图1B所示,节点132、140、148中的每一个通信地耦合到相应的收集器138、146、154。例如,收集器138通信地耦合到节点132,收集器146通信地耦合到节点140,并且收集器154通信地耦合到节点148。收集器138、146、154可以是图1A所示的收集器123的示例。在一些情况下,任何给定的收集器138、146、154可以是相应节点132、140、148的一部分或以其他方式包括在相应节点132、140、148中。在其他情况下,任何给定的收集器138、146、154可以在相应的节点132、140、148的外部,但通信地耦合到相应的节点。在这些情况下,收集器可被包括在分布式计算系统100内的任何其它节点(例如,计算节点)中。

在各种示例中,收集器138、146、154可以包括可执行以收集、聚集和/或关联从相应节点132、140、148接收到的数据(例如,业务流数据)的软件代理或应用,诸如当这些节点中的一个或多个包括网络设备节点时。这里可以使用短语“业务流数据”来描述包括所收集的业务流数据或所聚集的业务流数据的数据。收集器138、146、154可以被配置为接收或以其他方式捕获例如来自一条或多条链路的进入单个节点(例如,网络设备节点)的分组,并且计算指示一条或多条链路上的分组流的流统计。例如,收集器138、146、154中的一个或多个的业务流模块可以针对每个分组流维护与例如分组计数、字节计数、源互联网协议(IP)地址、目的地IP地址、下一跳IP地址、输入接口信息、输出接口信息、发送的总八位字节、流开始时间、流结束时间、源和目的地端口号、TCP标记、IP服务类型、发起自治系统(AS)、源地址前缀掩码位、目的地地址前缀掩码位等相关联的业务流数据。在一些示例中,收集器138、146、154可以提供用于维持由收集器接收的所有分组的准确流统计的记账能力。可以将特定分组流的统计保持在包括业务流数据的聚集的有效流量分析所期望的粒度级别。

如图1B所示,控制平面102包括在平台级别提供的各种不同服务。如图1B所示,控制平面102包括一个或多个仪表板服务104、可选的编排平台服务108、一个或多个控制器服务112、数据管理器服务116、数据库服务120、一个或多个适配器服务124和消息服务128。在一些情况下,可选的编排平台服务108可以是另一引擎的一部分或包括在另一引擎中,例如图1A中所示的编排引擎129。

图1B所示的这些服务中的每一个可以包括一个或多个容器组(pod)或与一个或多个容器组相关联,其中每个容器组能够执行相应容器组内的一个或多个对应的应用或功能。在某些情况下,容器组可封装或包括与在节点上执行的应用程序的特定实例相关联的一个或多个应用程序容器。

例如,并且如下面进一步详细描述的,仪表板服务104包括提供相应的仪表板应用或功能的一个或多个容器组106;编排平台服务108包括提供相应编排应用或功能的一个或多个容器组110;控制器服务112包括提供相应的控制器应用或功能的一个或多个容器组114;数据管理器服务116包括提供相应的数据管理应用或功能的一个或多个容器组116;数据库服务120包括提供相应的数据库应用或功能的一个或多个容器组120;适配器服务124包括提供相应适配器应用或功能的一个或多个容器组126;以及消息服务128包括提供对应的消息传递应用或功能的一个或多个容器组130。

如前所述,节点132、140、148中的一个可以用作主节点或控制器节点,并且控制平面102的服务104、108、112、116、120、124、128中的一个或多个的相应容器组可以被提供或实现在该控制节点上。此外,在某些情况下,控制平面102的服务104、108、112、116、120、124、128中的一个或多个的相应容器组可以在分布式计算系统100的其它节点上提供或实现。

例如,如图1B所示,节点132提供一个或多个服务134,其包括一个或多个对应的容器组136。如果节点132包括控制器节点,则服务134可以包括控制平面102的服务104、108、112、116、120、124、128中的一个或多个,并且容器组136可以包括对应于这些服务的一个或多个容器组。例如,由节点132提供的服务134可以包括控制平面102的仪表板服务104,使得节点132上的容器组136包括为这些仪表板服务提供对应的应用或功能的一个或多个容器组106。类似地,节点132的服务134可以包括编排平台服务108、控制器服务112、数据管理器服务116、数据库服务120、适配器服务124和/或消息服务128中的任何一个或多个,而节点132的容器组可以包括容器组110、114、118、122、126和/或130中的任何一个或多个对应的容器组。

如上所述,如果节点132包括控制器节点,则分布式计算系统100内的任何其他节点,例如节点140和/或148,也可以可选地提供服务104、108、112、116、120、124、128或相应的容器组106、110、114、118、122、126中的一个或多个(例如,当控制平面102被部署在高可用性模式中时,如以下进一步详细描述的)。因此,如图1B所示,分布式计算系统100的节点140可以可选地包括具有一个或多个对应容器组144的一个或多个服务142。类似地,节点148可以可选地向一个或多个服务150提供一个或多个对应的容器组152。

根据各种示例,控制平面102可以位于由编排平台服务108提供的编排平台(例如,容器编排平台)之上,或者与该编排平台(例如,容器编排平台)结合操作。如上所述,在一些情况下,编排平台服务108可以由图1A所示的编排引擎129提供或包括在其中。控制平面102可包括用于通过实现服务104、108、112、116、120、124和128来在分布式计算系统100内配置和数据检索的单个窗格(single pane)。

在一些示例中,控制平面102可以以单节点模式部署。在该模式中,控制平面102的服务104、108、112、116、120、124和128可以全部被部署在单个控制器节点(例如,节点132)上,并且可以在操作期间彼此通信。然而,在其它示例中,控制平面102可被部署在高可用性模式中,其中每个服务中的容器组的数量可取决于相应服务的要求和/或分布式计算系统100中的节点的数量而按比例增加。在某些示例中,来自客户端设备101的输入可以选择或确定部署模式的类型。在一些示例中,编排平台服务108可以选择或确定部署模式的类型(例如,基于用于控制平面102的预先存在或配置的规则)。

这种高可用性部署模式为控制平面102创建了可缩放且更容错的设计。在该模式中,处于主动-被动模式的控制平面102的任何服务可以在分布式计算系统100的节点上具有单个主动容器组,如果主动容器组发生故障,则该主动容器组将被另一个容器组替换。处于主动-主动模式的服务可以在分布式计算系统100的每个节点上具有容器组,使得控制平面102将随着分布式计算系统100中所包括的节点集群中的任何新节点的添加而缩放(例如,水平地)。一个编排平台,例如由编排平台服务108提供的编排平台,作为容错设计的一部分,可以被杠杆作用以在任何容器组发生故障或被终止的情况下根据需要旋转或实例化容器组。服务104、108、112、116、120、124和128中的每一个的容器组数量可以取决于服务类型以及控制平面102的部署模式(例如,如上所述的单节点或高可用性)。根据某些示例,单个节点和高可用性部署模型可以是相同的,其中在部署中指定的节点的数量可以是可配置的。这种方法可以导致更简单的部署模型,因为与高可用性部署相比,单个节点没有单独的入口点。

在各种示例中,控制器服务112可以包括用于处理控制平面102内的控制操作的中央组件。例如,控制器服务112可以处理分布式计算系统100内的节点(例如,网络设备节点、计算节点)的装载和分布,以及警报配置。还可以经由控制器服务112在控制平面102的平台中创建主机(例如,节点)和实例(例如,容器组)。在一些情况下,控制器服务112可以提供客户端设备101和/或客户端设备101的用户可以与之交互的应用编程接口(API)或用户接口层。在其他情况下,客户端设备101可以经由一个或多个用户接口和/或API与仪表板服务104交互,并且仪表板服务104然后可以将客户端请求传送到控制器服务112。

控制器服务112还可以提供可视化件(例如,具有仪表板服务)以及外部应用的所有配置细节。除了控制操作之外,控制器服务112还可以为分布式计算系统100中发生的遥测收集提供附加的基线和/或分析(例如,使用来自收集器138、146、154的数据)。在一些情况下,该功能可以包括在控制平面102的平台中配置的资源的机器学习和预测分析。

例如,控制器服务112可以执行分析、机器学习和其他功能,并且可以基于这样的信息进一步生成报告、通知和警报。例如,控制器服务112可以分析接收到的和/或存储的信息,并且基于关于内部处理器度量的信息来标识一个或多个虚拟机或网络设备节点,其中,一个或多个虚拟机或网络设备节点以可能不利地影响在系统100中执行的其他虚拟机或网络设备节点的操作的方式操作。控制器服务112可以响应于标识以可能不利地影响其他虚拟机119的操作的方式操作的一个或多个虚拟机119,生成一个或多个报告和通知。控制器服务112可以替代地或另外地发出由仪表板服务104输出的警报。

在一些示例中,控制器服务112和/或收集器138、146、154可以连续地收集或分析节点的度量的测量。对于特定的警报,控制器服务112和/或收集器138、146、154可以根据用户指定的函数(平均值、标准偏差、最小值、最大值、总和)来聚集样本,并且针对每个用户指定的间隔产生单个测量。控制器服务112和/或收集器138、146、154可以将每个相同的测量和/或测量与阈值进行比较。在一些示例中,由警报或包括用于警报的条件的策略所评估的阈值可以是静态阈值或动态阈值。对于静态阈值,控制器服务112和/或收集器138、146、154可以将度量或对应于度量的原始数据与固定值进行比较。例如,控制器服务112和/或收集器138、146、154可以使用用户指定的比较函数(以上、以下、相等)将度量与固定值进行比较。对于动态阈值,控制器服务112和/或收集器138、146、154可以将度量或对应于度量的原始数据与一组资源的历史趋势值或历史基线进行比较。

如前所述,可以以单节点模式或高可用性模式部署控制平面102的任何服务。在单节点部署模式中,控制平面102的所有服务被部署在单个控制器节点上(例如,节点132)。在高可用性部署模式中,控制平面102的服务可以部署在多于一个节点上。控制器服务112可以具有部署在节点132、140和/或148上的一个或多个容器组114(例如,即,作为容器组136、144和/或152中的一个或多个)。根据各种示例,当以高可用性模式部署时,控制器服务112可以具有为服务112的每个控制器服务指定的单个容器组,因为控制器服务112在高可用性部署中以主动-被动模式执行。该单个主动容器组可被部署在分布式计算系统100中的控制器节点(例如,节点132)上或另一节点上。

例如,如果控制器服务112包括第一和第二控制器服务,如在上面的示例中所指出的,当第一控制器服务以主动-被动模式执行时,其可以具有其自己的指定的容器组114的容器组,并且当第二控制器服务以主动-被动模式执行时,其可以具有其自己的指定的容器组114的容器组。在主动容器组出现故障的情况下,控制器服务112和/或编排平台服务108可以确保另一个容器组出现在其位置中。例如,控制器服务112和/或编排平台服务108可以实例化用于作为节点132、140或148之一上的主动容器组执行的新容器组。在另一示例中,控制器服务112可在节点132、140、148的每一个上维护单个容器组,其中仅一个这样的容器组是主动的。如果该主动容器组停机,则控制器服务112和/或编排平台服务108可以以主动-被动模式激活先前不主动容器组中的一个。

控制平面102的消息服务128被配置为用于在控制平面102的服务104、108、112、116、120、124、128之间通信的主消息总线。消息服务128包括一个或多个对应的容器组130,并且使用用于共享或传送数据的一个或多个通信协议来实现服务间通信。当以高可用性模式部署时,消息服务128在以主动-被动模式操作时可以仅利用单个主动容器组(例如,在诸如节点132的控制器节点上)。

数据管理器服务116可以是控制平面102中用于处理关于实时数据的数据库操作的主要组件。所有收集器138、146、154被配置为将它们收集的数据报告给数据管理器服务116。该服务可以将所接收的数据写到数据库(例如,时间序列数据库)和/或数据库服务120,并且可以将该数据发布到用于控制平面102的服务之间的服务间通信的消息总线。数据管理器服务116可以是用于分布式计算系统100内的整个节点集群的实时数据写入和检索的主要服务。除了此功能之外,数据管理器服务116还执行高速缓存,用于实时数据的数据聚集以及经由消息总线将数据流传输到仪表板服务104。

在一些情况下,数据管理器服务116可以例如从收集器138、146、154中的一个或多个接收原始度量。在一些情况下,数据管理器服务116可替代地或另外地接收由收集器138、146、154对原始度量执行的分析的结果。

数据管理器服务116及其一个或多个容器组118被配置为在节点被添加到分布式计算系统100中时与节点水平地缩放。在各种示例中,数据管理器服务116可以以用于高可用性部署的主动-主动模式操作,并且数据管理器服务116的容器118可在分布式计算系统100内的每个节点上包括用于这种部署的主动容器组。例如,节点132的容器组136可以包括数据管理器服务的容器组118之一作为主动数据管理器容器组;节点140的容器组144可以包括容器组118中的一个容器组作为主动容器组;节点148的容器组152可以包括容器组118中的一个容器组作为主动容器组。

数据库服务120包括一个或多个容器组122,并且用作用于配置和存储控制平面数据库(例如,时间序列数据库588)中的实时数据的数据库和/或服务,诸如图5中所示。数据库服务120可以在操作期间与数据管理器服务116交互以处理配置和数据存储。根据部署模式,可能存在多个为该服务运行的容器组122,从而存在容错以及数据复制。例如,在一些示例中,并且类似于数据管理器服务116、数据库服务120可以以用于高可用性部署的主动-主动模式操作,并且数据库服务120的容器组122可以在分布式计算系统100内的每个节点上包括主动容器组以用于这种部署。在其它情况下,当数据库服务120以主动-被动、高可用性模式操作时,数据库服务120可以仅包括分布式计算系统100中的节点之一上的单个主动容器组。

适配器服务124包括一个或多个容器组126并且被配置为处理分布式计算系统100内的设备和/或与节点相关联的任何计算和/或网络设备资源的发现。例如,适配器服务124可以包括被配置为管理网络设备的发现的网络设备适配器。这样的网络设备适配器可以与一个或多个网络设备控制器服务(例如,网络设备控制器服务,其可以是或可以不是控制器服务112的一部分)通信以发现设备和配置细节,使得控制器服务112可以配置控制平面102中发现的资源。网络设备适配器可以发现设备的连接(例如,经由链路层发现协议,或LLDP),并且还可以发现用于装载设备的通信接口。

适配器服务124也可以包括其它类型的适配器组件。例如,适配器服务124可以包括管理特定类型资源的发现的适配器(例如,OpenStack适配器),所述资源包括主机(例如,节点)和实例(例如,容器组)。这种类型的适配器可以与控制器服务112或另一控制器(例如,OpenStack控制器)通信以发现可用资源,使得控制器服务112可以在控制平面102中配置发现的资源。该适配器还可以收集关于例如OpenStack或Kubernetes集群的度量。对于高可用性部署,当在主动-被动模式中操作时,适配器服务124中的每个服务可以包括容器组126的单个容器组。

如前所述,控制平面102还包括一个或多个仪表板服务104。仪表板服务104包括一个或多个对应的容器组106,并且用作分布式计算系统100中包括的节点132、140、148集群的用户接口。所有配置(例如,由控制器服务112和/或适配器服务124管理的配置)可经由仪表板服务104提供的一个或多个图形仪表板可见,并且这些图形仪表板可提供分布式计算系统100内的节点集群的可视化,以及任何给定节点的对应实时遥测数据和/或度量的可视化表示。数据管理器服务116可以对收集器138、146、154提供的实时数据执行高速缓存和/或数据聚集,并且可以通过消息服务128提供的消息总线将这样的数据流送到仪表板服务104。该数据可以由仪表板服务104输出,用于在一个或多个图形仪表板内可视化。

这些仪表板可以向在通信上耦合到控制平面102的仪表板服务104的客户端设备101处的用户显示。在一些情况下,仪表板服务104可以包括仪表板客户端和仪表板服务器。仪表板客户端可以在客户端设备101上被实例化以处理来自一个或多个用户的客户端请求,并在客户端设备101上输出仪表板信息和/或警报信息。仪表板服务器可以提供应用和功能来处理从仪表板客户端和/或控制平面102的其他服务接收的请求或数据,并且向用于客户端设备101的仪表板客户端提供对应的输出。客户端设备101的用户可以向仪表板服务104发送请求以执行诸如经由仪表板将节点装载到分布式计算系统100中、创建警报、查看仪表板的图表和/或评估资源(例如,节点132、140、148)的性能之类的任务。仪表板服务104可以将实况的实时数据流送到图表,并且利用仪表板查看警报和显示集群的最近计算的健康,并被输出到客户端设备101。当以高可用性模式部署时,在仪表板服务104的执行期间,容器组106可以包括单个容器组(例如,在节点132上的容器组136的单个容器组,诸如当节点132用作控制器节点110时)。

在一些情况下,由仪表板服务104输出的仪表板可提供关于分布式计算系统100内的资源分配的信息。资源分配例如可以包括资源的静态分配,诸如vCPU、浮动IP地址和/或存储卷,以列出几个示例。在一些示例中,对于项目中的每个实例,实际资源使用可以被显示在仪表板内,并且作为项目中的所有实例的使用的聚集。资源使用可以示出实例所消耗的实际物理资源,例如CPU使用百分比、存储器使用百分比、网络I/O和磁盘I/O。可以针对项目中的每个实例显示针对资源使用而收取的成本。此外,在某些示例中,可以针对作为整体的项目示出按风格类型和按资源类型(计算、网络、存储)的成本分解。

因此,控制平面102包括跨越分布式计算系统100内的多个不同服务的可缩放且共用的遥测控制平面。结果,分布式计算系统100内的所有遥测收集器138、146、154(例如,计算节点收集器、网络设备节点收集器)的能力可以由该单个控制平面102控制。控制平面102负责将节点(例如,网络装置)装载和分配到遥测收集器138、146、154。作为一个示例,用户可以使用客户端设备101经由用户接口(例如图形用户接口)或由仪表板服务104和/或控制器服务112提供的应用编程接口(API)向仪表板服务104或控制器服务112发送请求以在网络设备上装载。在一些情况下,用户可以经由仪表板服务104提供的图形用户接口在客户端设备101处手动地发起该请求。在其他情况下,用户可与在客户端设备101上执行的一个或多个应用交互,该应用经由由控制平面102定义的一个或多个API向仪表板服务104和/或控制器服务112向客户端设备101发送请求。

控制器服务112可以处理装载诸如网络设备节点或计算节点的新节点的请求。这些请求可以由仪表板服务104和/或客户端设备101经由一个或多个所定义的API来提供。诸如网络设备的新节点的装载通常将涉及获得设备的配置信息,诸如设备的证书,使得控制器服务112可以将新节点连接到分布式计算系统100,并且使得新节点可以与分布式计算系统100的其它组件/节点/服务/收集器等通信。在各种示例中,控制器服务112可以基于与适配器服务124的交互来管理装载过程的这一部分。

适配器服务124可以发现该节点及其配置细节,并将该节点标记为分段(staging)。例如,适配器服务124可以发现与节点相关联的计算和/或网络设备资源(例如,节点的接口和连接信息),使得控制器服务112可以配置新节点以装载到分布式计算系统100。控制平面102的任何服务,包括控制器服务112和适配器服务124,可以通过由消息系列128提供的消息总线进行通信。

如上所述,适配器服务124可以被配置为发现节点的一个或多个计算资源和/或网络设备资源(例如,连接、接口)。在一些情况下,基于所发现的该节点的资源,控制器服务112可以标识现有的遥测收集器或实例化新的遥测收集器,并且将收集器与节点分配或以其他方式将收集器与节点相关联。控制器服务112能够根据每个装载节点的类型和/或与这些节点中的每个节点相关联的资源,将分布式计算系统100中任意装载节点分配到相应的计算节点收集器或网络设备节点收集器。

例如,如上所述,新节点可以是计算节点或网络设备节点。如果新节点是计算节点,则基于由适配器服务124发现的一个或多个计算资源,控制器服务112可以将该节点分配给计算节点收集器。在一些示例中,控制器服务112可以标识在分布式计算系统100内的另一计算节点上执行的现有计算节点收集器,或者控制器服务112可以实例化新计算节点收集器以供在节点自身上执行。

然而,如果新节点是网络设备节点,则基于适配器服务124发现的一个或多个网络设备资源,控制器服务112可以将该节点分配给网络设备节点收集器。在一些示例中,控制器服务112可以标识在分布式计算系统100内的另一节点(例如,计算节点)上执行的现有网络设备节点收集器,或者控制器服务112可以实例化新的网络设备节点收集器以在分布式计算系统100内的另一节点(例如,计算节点)上执行。例如,控制器服务112可以标识在分布式计算系统100的一个或多个其它节点上执行的当前现有网络设备节点收集器的池。这些现有网络设备节点收集器中的每一个当前可被分配给分布式计算系统100中的一个或多个其它网络设备节点,并从分布式计算系统100中的一个或多个其它网络设备节点收集遥测数据。在一些情况下,控制器服务112可以从这个池中选择一个现有网络设备节点收集器,并将其分配给新节点。例如,控制器服务112可以实现规则或策略以选择现有网络设备节点收集器,该现有网络设备节点收集器是池中负载最小的收集器和/或当前被分配给分布式计算系统100中最少数量的其他网络设备节点。以这种方式,当将网络设备节点分配给现有池中的现有网络设备节点收集器时,控制器服务112可以提供负载平衡策略。

在一些情况下,控制器服务112可以向分配给该节点的收集器提供关于由适配器服务124发现的计算资源或网络资源的信息。所分配的收集器可以使用这样的信息来进一步配置所述节点以基于所发现的所述节点的资源和/或能力来发起对所述节点的遥测数据的收集,所述遥测数据可以由所述收集器收集。在一些情况下,控制器服务112也可以最初配置收集器以在分布式计算系统100中使用。例如,控制器服务112可以向收集器发送可由收集器在执行期间使用的一个或多个标识符(例如,分配给收集器的节点的标识符和/或分配给收集器用于在分布式计算系统100中执行期间使用的标识符)。控制器服务112还可以向收集器发送收集器在执行期间将与之交互的服务的一个或多个标识符(例如,控制器服务112、数据管理器服务116,或控制平面102的任何其他服务的标识符)。

在一个示例中,一旦控制器服务112已经配置了新节点(例如,新网络设备)并且存储了关于该节点的任何信息,控制器服务112就可以标识或实例化收集器,并且将该节点分布或以其他方式关联到该收集器。例如,在图1B中,如果节点140是由控制器服务112装载的新节点,则控制器服务112可以标识或实例化收集器146,并将新节点140分布或以其他方式关联到该收集器146。收集器146可以在分布式计算系统100内的任何节点上执行,因此可以直接在节点140上执行或不可以直接在节点140上执行。

然而,在任何情况下,收集器146在该示例中与节点140相关联,并且收集器146可适当地配置节点140,并开始从节点140收集实时遥测数据。收集器146可以将该实况的实时的遥测数据流送到数据管理器服务120。例如,数据管理器服务116可以是在节点140上执行的服务142之一,并且在节点140上执行的容器组144中的一个可以包括数据管理器服务116的容器组118之一。数据管理器服务116然后可以将实时遥测数据流送到仪表板服务104用于数据可视化。

一旦新节点(例如,节点140)设备已经经由控制平面102成功地装载,仪表板服务104被配置为提供所配置的节点的可视化,包括为该节点收集的实时遥测数据的可视化。仪表板的图表可以例如示出从与新装载节点相关联的收集器146收集的实况实时数据,并且在一些情况下,底层设施视图可以显示装载节点的计算的健康状况。还可以在仪表板输出上向客户端设备101显示所配置的警报。例如,用户可以使用客户端设备101来与仪表板系列104交互以经由仪表板服务104输出的仪表板来为新装载节点创建警报。

结果,本公开的技术提供了导致弹性的、高度可缩放的设计的实现框架,该设计还可以利用编排平台(例如编排平台服务108)来为控制平面102创建单组服务,如图1B所示。利用这种单个控制平面设计,部署模型以及与其的用户交互变得更简单,因为对于分布式计算系统100,在节点132、140、148的集群内的所有类型的数据收集,存在由控制平面102提供的单个虚拟“玻璃窗格”。

图2是示出根据本公开的一个或多个方面的用于分布式计算系统200内的单个节点部署的可缩放遥测控制平面202的一个示例的框图。控制平面202仅仅是图1A-1B中所示的控制平面102的一个示例。图2中所示的组件可以具有类似于图1A-图1B中具有类似附图标记的组件的功能。虽然未在图2中示出,但是控制平面202可以通信地耦合到一个或多个外部客户端设备(例如,图1A-1B中示出的客户端设备101)。

类似于控制平面102,图2的控制平面202包括一个或多个仪表板服务204、编排平台服务208、控制器服务212、数据管理器服务216、数据库服务220、适配器服务224和消息服务228。这些服务提供了类似于以上参考图1A-1B中的控制平面102所描述的功能。因此,仪表板服务204包括一个或多个容器组206,编排平台服务208包括一个或多个容器组210,控制器服务212包括一个或多个容器组214,数据管理器服务216包括一个或多个容器组218,数据库服务220包括一个或多个容器组222,适配器服务224包括一个或多个容器组226,消息服务228包括一个或多个容器组230。

类似于图1B的分布式计算系统100,分布式计算系统200包括一个或多个节点232、240和248。在图2的示例中,节点232包括收集器238或以其他方式通信地耦合到收集器238,节点240包括收集器246或以其他方式通信地耦合到收集器246,并且节点248包括收集器254或以其他方式耦合到收集器254。虽然在图2中仅示出了三个节点和三个对应的收集器,但是分布式计算系统200可以包括任何数量的这样的节点或收集器。

如上参考图1B所述,在诸如图2所示的一些示例中,控制平面202可以以单节点模式部署(例如,基于来自图1B所示的用户或客户端设备101的输入和/或基于根据用于控制平面202的预先存在或配置的规则来自编排平台服务208的输入)。在该模式中,控制平面202的服务204、208、212、216、220、224和228可以全部被部署在单个控制器节点(例如,节点232)上,并且可以在操作期间彼此通信。用于服务204、208、212、216、220、224和228中的每一个的容器组的数量可以取决于服务类型以及控制平面202的部署模式(例如,图2的示例中的单节点部署)。

对于单节点部署模型,图2的节点232可用作控制器节点。分布式计算系统200中的其它节点中的每一个可通信地耦合到节点232。在图2的单节点部署模型中,控制平面202的所有服务由节点232执行。因此,节点232的服务234包括仪表板服务204、编排平台服务208、控制器服务212、数据管理器服务216、数据库服务220、适配器服务224和消息服务228。因此,用于这些服务的相应容器组也在节点232上执行。

因此,容器组236包括仪表板服务204的一个或多个容器组206、编排平台服务208的一个或多个容器组210、控制器服务212的一个或多个容器组214、数据管理器服务216的一个或多个容器组218、数据库服务220的一个或多个容器组222、适配器服务224的一个或多个容器组226,以及消息服务228的一个或多个容器组230。如果任何容器组236在任何时间点发生故障(例如,被终止),则编排平台服务208能够为节点232上的对应服务实例化新容器组。然而,在替代示例中,可以以高可用性模式(例如,基于来自图1B中所示的用户或客户端设备101的输入)部署控制平面的服务,诸如图3中所示。

图3是示出根据本公开的一个或多个方面的用于高可用性(HA)部署的可缩放遥测控制平面的一个示例的框图。控制平面302仅仅是图1A-1B中所示的控制平面102的一个示例。图3中所示的组件可以具有类似于图1A-1B中具有类似附图标记的组件的功能。虽然未在图3中示出,但是控制平面302可以通信地耦合到一个或多个外部客户端设备(例如,图1A-1B中示出的客户端设备101)。

类似于控制平面102,图3的控制平面302包括一个或多个仪表板服务304、编排平台服务308、控制器服务312、数据管理器服务316、数据库服务320、适配器服务324和消息服务328。这些服务可以提供与以上参考图1B中的控制平面102所描述的功能类似的功能。因此,仪表板服务304包括一个或多个容器组306,编排平台服务308包括一个或多个容器组310,控制器服务312包括一个或多个容器组314,数据管理器服务316包括一个或多个容器组318,数据库服务320包括一个或多个容器组322,适配器服务324包括一个或多个容器组326,消息服务328包括一个或多个容器组330。

类似于图1B的分布式计算系统100,分布式计算系统300包括一个或多个节点332、340和348。在图3的示例中,节点332包括收集器338或以其他方式通信地耦合到收集器338,节点340包括收集器346或以其他方式通信地耦合到收集346,并且节点348包括收集器354或以其他方式耦合到收集器354。虽然在图3中仅示出了三个节点和三个对应的收集器,但是分布式计算系统300可以包括任何数量的这样的节点或收集器。

如以上参考图1B所述,在诸如图3所示的一些示例中,控制平面302可以高可用性模式部署。在一些情况下,控制平面302被配置为基于来自用户或客户端设备(例如,图1B中所示的客户端设备101)的输入以这种高可用性模式部署。在一些示例中,编排平台服务108可以选择或确定用于控制平面302的部署模式的类型(例如,基于用于控制平面102的预先存在或配置的规则)。

在高可用性模式中,每个服务中的容器组数量可以根据相应服务的要求和/或基于分布式计算系统300中当前存在的节点的数量而按比例增加。这种高可用性部署模式为控制平面302创建了可缩放且容错的设计。在该模式中,处于主动-被动模式的控制平面302的任何服务可以在分布式计算系统300中具有单个主动容器组,如果该主动容器组发生故障,则其将被另一个容器组替换(例如,通过编排平台服务308)。处于主动-主动模式的服务将具有分布式计算系统300的每个节点的容器组,使得当单个节点被添加到分布式计算系统300或从分布式计算系统300移除时,控制平面302将与节点集群一起缩放(例如,水平地)。

作为容错设计的一部分,可以利用诸如由编排平台服务308提供的编排平台来在任何现有容器组发生故障或被终止的情况下根据需要旋转或实例化新容器组。每个服务304、308、312、316、320、324和328的容器组数量可以取决于服务类型。根据某些示例,图3的高可用性部署可以与图2所示的单节点部署类似或相同;仅在部署中指定的节点数目是可配置的。

在图3的示例中说明的高可用性部署模式中,控制平面302的服务可部署在一个以上节点上。然而,某些服务一次可以仅包括单个主动容器组(例如,当这些服务在主动-被动模式下部署时)。例如,当控制平面302的给定服务以主动-被动模式部署时,该服务可以包括其在节点332、340、348中的每一个上的容器组中的一个,但是在任何给定时间这些容器组中只有一个是主动的。如果该容器组发生故障,另一个节点上的另一个容器组将从被动状态转换为主动状态。在其它示例中,该给定服务可包括分布式计算系统300的节点之一上的仅一个容器组,其是用于该服务的主动容器组。如果主动容器组发生故障,则服务和/或编排平台服务308可以即时(on the fly)实例化新的主动容器组。

关于图3所示的服务,根据各种示例,当控制平面302以高可用性模式被部署时,控制器服务312可以具有为服务的每个控制器服务312指定的单个主动容器组,因为控制器服务312在高可用性部署中以主动-被动模式执行。任何单个主动容器组可被部署在分布式计算系统300中的控制器节点(例如,节点132)上或另一节点上。

例如,如果控制器服务312包括第一和第二控制器服务,如在上面的示例中所指出的,当第一控制器服务以主动-被动模式执行时,其可以具有其自己的指定的容器组314的容器组,并且当第二控制器服务以主动-被动模式执行时,其可以具有其自己的指定的容器组314的容器组。在主动容器组发生故障的情况下,控制器服务312和/或编排平台服务308可以确保另一个容器组被激活和/或在其位置上出现。例如,控制器服务312和/或编排平台服务308可以实例化用于作为节点332、340、348之一上的主动容器组执行的新容器组。在另一示例中,并且如上所述,控制器服务312可以在节点332、340、348中的每一个上维护单个容器组,其中仅一个这样的节点容器组是主动的。如果该容器组停机,则控制器服务312和/或编排平台服务308可以在主动-被动模式下激活先前不主动的容器组中的一个。

当控制平面302被以高可用性模式部署时,控制平面302的一个或多个服务可以以主动-主动模式操作。例如,数据管理器服务316和/或数据库服务320可以以主动-主动模式操作。在这种情况下,每个相应的服务可以在分布式计算系统300中的每个节点上具有主动容器组。因此,如果数据管理器服务316以该主动-主动模式操作,则数据管理器服务316将在节点332、340和348中的每一个上执行并包括其容器组318中的一个的实例化。如图3所示,在节点332上执行的服务334可以包括数据管理器服务316,并且节点332的容器组336可以包括数据管理器服务容器组318之一。类似地,在节点340上执行的服务342可以包括数据管理器服务316,并且节点340的容器组344可以包括数据管理器服务容器组318之一。在节点348上执行的服务350还可以包括数据管理器服务316,并且节点348的容器组352可以包括数据管理器服务容器组318之一。作为该实现的结果,当部署是高可用性部署时,控制平面302的各种服务的容器组的数量可根据分布式计算系统300内的节点的大小或数量来缩放,从而创建可缩放且更容错的设计。

在一些情况下,当从分布式计算系统300中移除节点时,分布式计算系统300还可缩放其服务,诸如数据管理器服务316和/或数据库服务320。例如,用户可以使用客户端设备101来发送从分布式计算系统300中移除节点348的请求(例如,如果节点348已经被终止或者被关闭)。在这种情况下,仪表板服务304或控制器服务312可以接收该请求。关于节点348的信息可以从控制平面302的数据库(例如,图5中所示的控制平面数据库588)移除,并且仪表板服务304可以更新被输出用于显示的可视化显示信息(例如,仪表板),以指示节点348已经被移除。先前在节点348上执行的任何服务350和容器组352(例如,数据管理器容器组318之一和/或数据库容器组322之一)被终止。因此,控制平面302的设计还使得能够在向分布式计算系统300添加或从中移除不同节点时缩放其服务和容器组。

图4是示出根据本公开的一个或多个方面的图3所示的可缩放遥测控制平面的一个特定示例的框图。在图4中,为了说明的目的,示出了节点432、440、441、448和449的示例组。这些节点可以是分布式计算系统的一部分,例如图3所示的系统300。在图4的示例中,这些节点中的两个可以包括计算节点440、441,并且这些节点中的两个可以包括网络设备节点448、449。然而,在其他示例中,系统中可以包括任何数目的节点。

图4的控制平面以高可用性模式部署。实例化控制平面的各种服务以在节点432上执行,节点432包括控制器节点。因此,如图4所示,控制器节点432包括仪表板客户端和服务404、编排平台服务408、网络和计算控制器服务412、数据管理器服务416、数据库服务420、适配器服务424和消息服务428。

仪表板客户端和服务器服务404是图3所示的仪表板服务304的一个示例。仪表板客户端和服务器服务404包括仪表板客户端和仪表板服务器。仪表板客户端可以在客户端设备(例如,客户端设备101)上实例化或者以其他方式与客户端设备连接,以处理来自客户端设备的一个或多个用户的客户端请求。仪表板服务器可以提供应用和功能来处理从仪表板客户端或控制平面的其他服务接收的数据,并且为仪表板客户端提供对应的输出,诸如仪表板信息和/或警报信息。仪表板客户端和服务器服务包括一个或多个容器组406。在一些示例中,仪表板客户端和服务器服务404在以主动-被动模式操作时可以包括单个主动容器组(例如,其中容器组406仅包括单个主动容器组)。

编排平台服务408是编排平台服务308的一个示例。编排平台服务408包括一个或多个容器组410。在一些示例中,编排平台服务408包括在以主动-被动模式操作时的容器组410的单个主动容器组。

网络和计算控制器服务412是控制器服务312的一个示例。网络和计算控制器服务412可以包括网络控制器服务和计算控制器服务。网络控制器服务可提供以上关于图4的分布式计算系统内的装载网络设备节点(例如,网络设备节点448和449)的控制器服务312所描述的功能。计算控制器服务可以提供以上关于控制器服务312所描述的用于将计算节点(例如,计算节点440和计算节点441)装载到分布式计算系统的功能。在一些示例中,网络和计算控制器服务412包括用于网络控制器和计算控制器中的每一个的容器组414的单个主动容器组,同时以主动-被动模式操作。

数据管理器服务416是图3所示的数据管理器服务316的一个示例。数据管理器服务416包括一个或多个容器组418。在一些示例中,数据管理器服务416在以主动-主动模式操作时具有驻留在分布式计算系统中的其它节点中的每一个上的容器组418的主动容器组。数据库服务420是数据库服务320的一个示例,并且包括一个或多个容器组422。在一些示例中,当在主动-主动模式下操作时,数据库服务420将具有驻留在每个节点上的容器组422的主动容器组。

例如,在图4的示例中,分布式计算系统包括控制器节点432、第一计算节点440、第二计算节点441、第一网络设备节点448和第二网络设备节点449。假定网络和计算控制器服务412先前具有装载节点440、441、448和449,并且为它们中的每一个分配相应的遥测收集器。如图4所示,计算节点440被分配了收集器446(例如,图3中所示的收集器346的一个示例),计算节点441被分配了收集器447,网络设备节点448被分配了收集器454,并且网络设备节点449被分配了收集器455。在一些示例中,一个或多个收集器可以包括一个或多个软件代理。

因为数据管理器服务416和/或数据库服务420各自可以具有在以主动-主动模式操作时驻留在每个节点上的容器组418/容器组422的主动容器组,所以计算节点440包括一个或多个包括容器组444的数据管理器/数据库服务442。数据管理器/数据库服务442可以包括将数据管理器服务416和数据库服务420实例化到计算节点440上。容器组444可以包括容器组418和422在计算节点440上的实例化。容器组444包括用于在计算节点440上执行的数据管理器/数据库服务的主动数据管理器容器组和主动数据库容器组。类似于数据管理器服务316和数据库服务320,数据管理器/数据库服务442处理关于实时数据的数据库操作,并处理由收集器446收集和提供的遥测数据。

因为数据管理器和数据库服务在每个节点上提供主动容器组,所以计算节点441、网络设备节点448和网络设备节点449包括类似的服务和容器组。如图4所示,计算节点441包括数据管理器/数据库服务443,其包括容器组445,并处理由收集器447提供的分配给计算节点441的遥测数据。网络设备节点448包括数据管理器/数据库服务450,其包括容器组452,并处理由收集器454提供的遥测数据。网络设备节点449包括数据管理器/数据库服务451,其包括容器组453,并处理由收集器455提供的遥测数据。

类似于前面附图中的描述,适配器服务424可以被配置为发现节点的一个或多个计算资源和/或网络设备资源(例如,连接、接口)。在一些情况下,基于所发现的该节点的资源,控制器服务412可以标识现有的遥测收集器或实例化新的遥测收集器,并且将收集器与节点分配或以其他方式将收集器与节点相关联。控制器服务412能够根据每个装载节点的类型和/或与这些节点中的每个节点相关联的资源,将分布式计算系统中的任意装载节点分配到相应的计算节点收集器或网络设备节点收集器。

例如,新节点可以是计算节点或网络设备节点。如果新节点是计算节点,并且基于由适配器服务424发现的一个或多个计算资源,控制器服务412可以将该节点分配给计算节点收集器。在一些示例中,控制器服务412可以标识在系统内的另一计算节点上执行的现有计算节点收集器,或者控制器服务412可以实例化新计算节点收集器以供在节点自身上执行。

然而,如果新节点是网络设备节点,并且基于适配器服务424发现的一个或多个网络设备资源,控制器服务412可以将该节点分配给网络设备节点收集器。在一些示例中,控制器服务412可以标识在分布式计算系统内的另一节点(例如,计算节点)上执行的现有网络设备节点收集器,或者控制器服务412可以实例化新的网络设备节点收集器以在系统内的另一节点(例如,计算节点)上执行。例如,控制器服务412可以标识在系统的一个或多个其它节点上执行的当前现有网络设备节点收集器的池。这些现有网络设备节点收集器中的每一个当前可被分配给一个或多个其他网络设备节点,并从一个或多个其他网络设备节点收集遥测数据。在一些情况下,控制器服务412可以从这个池中选择一个现有网络设备节点收集器,并将其分配给新节点。例如,控制器服务412可以实现规则或策略以选择现有网络设备节点收集器,该现有网络设备节点收集器是池中负载最小的收集器和/或当前被分配给系统中的最少数量的其他网络设备节点。以这种方式,当将网络设备节点分配给现有池中的现有网络设备节点收集器时,控制器服务412可以提供负载平衡策略。

在一些情况下,控制器服务412可以向分配给该节点的收集器提供关于由适配器服务424发现的计算资源或网络资源的信息。所分配的收集器可以使用这样的信息来进一步配置所述节点以基于所发现的所述节点的资源和/或能力来发起对所述节点的遥测数据的收集,所述遥测数据可以由所述收集器收集。在一些情况下,控制器服务412也可以最初配置收集器以在系统中使用。例如,控制器服务412可以向收集器发送可由收集器在执行期间使用的一个或多个标识符(例如,分配给收集器的节点的标识符和/或分配给收集器用于执行期间使用的标识符)。控制器服务412还可以向收集器发送收集器在执行期间将与之交互的服务的一个或多个标识符(例如,控制器服务412、数据管理器服务416,或控制平面402的任何其他服务的标识符)。

如上所述,在一些情况下,分配给节点的收集器可以在该节点内执行。在其他情况下,分配给节点的收集器可以在单独的节点上执行(例如,在单独的计算节点上)并且从所分配的节点收集遥测数据。在图4的示例中,计算节点440和441执行或以其他方式包括相应的收集器446和447。然而,分别分配给网络设备节点448和449的收集器454和455在分开的节点上执行,并通过网络和计算控制器服务412与网络设备节点448和449相关联。因此,网络和计算控制器服务412分配收集器454以收集来自网络设备节点448的遥测数据,即使收集器454可以在单独的节点上被实例化。类似地,网络和计算控制器服务412分配收集器455以收集来自网络设备节点449的遥测数据。

如图4所示,适配器服务424是适配器服务324的一个示例。适配器服务424包括一个或多个容器组426。在一些示例中,适配器服务424包括当以主动-被动模式操作时的容器组426的单个主动容器组。

消息服务428是消息服务328的一个示例。消息服务428包括一个或多个容器组430。在一些示例中,消息服务428包括以主动-被动模式操作的容器组430的单个主动容器组。

图5是示出根据本公开的一个或多个方面的图4所示的可缩放遥测控制平面的一个示例的进一步细节的框图。例如,控制平面502是图1A-1B中所示的控制平面102的一个示例。图5所示的组件可以具有与具有相似附图标记的图1A-1B中的组件相似的功能。虽然未在图5中示出,但是控制平面502可以通信地耦合到一个或多个外部客户端设备(例如,图1A-1B中示出的客户端设备101)。

如前所述,控制平面502可以在单节点或以高可用性模式部署分布式计算系统500的一个或多个节点。控制平面502包括一个或多个服务504、508、512、516、520、524和528。如果控制平面502以高可用性模式部署,则这些服务中的每一个可以以主动-主动或主动-被动模式部署。类似于先前附图中所描述的,这些服务可以包括一个或多个仪表板服务504、编排平台服务508、一个或多个控制器服务512、数据管理器服务516、数据库服务520、一个或多个适配器服务524,以及消息服务528。这些服务中的每一个可以包括一个或多个容器组,如前所述。

控制平面502还可以包括一个或多个控制平面数据库588和一个或多个分析服务509。包括在控制平面502中的任何服务可以与控制平面数据库588交互以在执行期间读取和/或写入数据。例如,控制平面数据库可以存储一个或多个节点配置数据、实时遥测数据、警报配置数据、编排数据、节点发现数据、节点消息/通信数据等。分析服务509可以提供为分布式计算系统500中发生的任何遥测收集执行的基线和/或分析功能,例如,分布式计算系统500可以包括用于控制平面509中配置的资源的机器学习和/或预测分析。在一些情况下,分析服务509可提供由控制器服务112执行的先前参考图1B描述的一个或多个功能。类似于控制平面502中的其他服务,分析服务509可以包括一个或多个容器组。在一些示例中,分析服务509的功能可以包括在控制器服务512中。

图5还示出了分布式计算系统500中包括的各种其它组件。这些包括一个或多个收集器,例如收集器538和546、消息队列566、数据聚集单元568、一个或多个相关/导出引擎569,以及一个或多个时间序列数据库570。这些各种组件可以部署在分布式计算系统的一个或多个节点上,并且可以在执行期间通信地耦合到控制平面502。

类似于参照先前附图所示和所述的收集器,收集器538和546可被配置为从分布式计算系统500内的相应节点收集实时遥测数据。在一些情况下,一个或多个收集器,例如收集器538和546,可以在它们收集数据的相应节点上执行,而在其它情况下,它们可以在分开的节点上执行。

收集器可以各自包括消息队列、收集器单元和警报引擎。例如,如图5所示,收集器538包括消息队列560、收集器单元561和警报引擎562。收集器546包括消息队列563、收集器单元564和警报引擎565。

作为一个示例,收集单元561可被配置为从分布式计算系统500内的对应节点收集实时遥测数据。当收集数据准备好时,收集单元561可将一个或多个消息插入消息队列560以供收集器538处理。例如,当收集单元561已经收集了实时遥测数据时,它可以将包括该数据的一个或多个消息插入到消息队列560中。收集器538然后可以处理来自消息队列560的这些消息,并将它们发送到分布式计算系统500内的对应节点、服务和/或容器组(例如,到控制平面502的数据管理器服务516)。收集器538的警报引擎562还可接收来自收集器单元561和/或消息队列560的数据,以生成基于应用于所收集的遥测数据的现有规则而触发的一个或多个警报。这些规则可以包括默认的、预先存在的规则和/或可由用户定制的规则。消息队列、收集单元561和/或警报引擎562中的任一个可以将信息存储在时序数据库570中。在一些情况下,时间序列数据库570与控制平面数据库588分开,但是可以包括某些共享数据。在一些情况下,时间序列数据库570中的一个或多个可以包括在控制平面数据库588中。

在一些情况下,收集单元561还可以向外部消息队列566提供一个或多个消息。消息队列566可通信地耦合到分布式计算系统500中的一个或多个收集器,诸如收集器538和546。消息队列566包括一个或多个代理567,其可以处理将数据代理到消息队列566中(例如,从收集器538、546)和/或从消息队列566中代理出来(例如,到相关/导出引擎569)。类似于消息队列560,消息队列566可使用代理(broker)567来处理来自队列的消息并将其发送到系统500内的其它组件。

例如,消息队列566可以向数据聚集单元568发送包括由收集器538和/或546提供的遥测数据的消息。数据聚集单元568可以聚集例如来自分布式计算系统500中的一个或多个收集器的遥测数据,并将该聚集的数据存储在数据库570中。

消息队列566还可以向相关/导出引擎569发送一个或多个消息。相关/导出引擎569可被配置为从收集器538和546摄取包括在来自消息队列566的消息中的实时遥测数据。这些相关/导出引擎569可以执行关于从一组或多组收集器接收的遥测数据的相关和/或聚集功能,并计算导出的度量。相关/导出引擎569然后可以将这些导出的度量存储到时间序列数据库570中。

在一些情况下,当时间序列数据库570不包括在控制平面数据库588中时,收集器538/546、数据聚集单元568和/或相关/导出引擎569还可将存储在时间序列数据库570中的信息提供给控制平面502以供处理。在某些情况下,控制平面502的一个或多个服务(例如,控制器服务512、数据管理器服务516)可以访问包括在时间序列数据库570中的信息。

图6是示出根据本公开的一个或多个方面的可包括或实现可缩放遥测控制平面的示例计算系统674的框图。例如,计算系统674可包括或实现图1-5所示的控制平面(例如,控制平面102、202、302)中的任何一个或多个。图6仅示出了计算系统674的一个特定示例,并且计算系统674的许多其他示例可以在其他实例中使用,并且可以包括在图6中示出的组件的子集,或者可以包括未示出的附加组件。

如图6的示例所示,计算系统674包括一个或多个处理器676、一个或多个输入设备678、一个或多个通信设备680、一个或多个输出设备682以及一个或多个存储设备686。在一些示例中,计算系统674可以不包括输入设备678和/或输出设备682。通信信道684可以互连组件676、680、678、682和686中的每一个,用于组件间通信(物理地、通信地和/或可操作地)。在一些示例中,通信信道684可以包括系统总线、网络连接、进程间通信数据结构或用于在硬件和/或软件之间传送数据的任何其它方法。

计算系统674的一个或多个输入设备678可以接收输入。输入的示例是触觉、音频和视频输入。输入设备678的示例包括存在敏感屏幕、触摸敏感屏幕、鼠标、键盘、语音响应系统、摄像机、麦克风或用于检测来自人或机器的输入的任何其他类型的设备。

计算系统674的一个或多个输出设备682可以生成输出。输出的示例是触觉、音频和视频输出。输出设备682的示例包含存在敏感屏幕、声卡、视频图形适配卡、扬声器、阴极射线管(CRT)监测器、液晶显示器(LCD)或用于产生到人或机器的输出的任何其它类型的设备。输出设备682可以包括显示设备,例如阴极射线管(CRT)监测器、液晶显示器(LCD显示器)或用于产生触觉、音频和/或可视化输出的任何其他类型的设备。

计算系统674的一个或多个通信设备680可以通过在一个或多个网络上发送和/或接收网络信号,经由一个或多个网络与一个或多个其他计算系统或设备通信。通信设备680的示例包括网络接口卡(例如以太网卡)、光学收发器、射频收发器或可(例如)通过有线或无线网络发送和/或接收信息的任何其它类型的设备。通信装置680的其它示例可包含短波无线电、蜂窝式数据无线电、无线以太网网络无线电以及通用串行总线(USB)控制器。

计算系统674内的一个或多个存储设备686可以存储用于在计算系统674的操作期间进行处理的信息(例如,计算系统674可以存储在计算系统674处执行期间由一个或多个模块、进程、应用、服务、节点、应用程序容器等访问的数据)。在一些实例中,计算系统674上的存储设备686可经配置以将信息短期存储为易失性存储器,且因此在断电时不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM),以及本领域已知的其他形式的易失性存储器。在一些情况下,存储设备686可以包括独立磁盘冗余阵列(RAID)配置和一个或多个固态驱动器(SSD)。

在一些示例中,存储设备686还包括一个或多个计算机可读存储介质。存储装置686可经配置以存储比易失性存储器更大量的信息。存储装置686可进一步经配置以将信息长期存储为非易失性存储器空间且在通电/断电循环之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪存,或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。存储装置686可存储与一个或多个软件/固件元件或模块相关联的程序指令和/或数据。

例如,存储设备686可以存储各种模块、应用和/或服务,诸如仪表板服务604、编排平台服务608、控制器服务612、数据管理器服务616、数据库服务620、适配器服务624和消息服务628。存储在存储设备686中的组件可以是图1-5中的任一个所示的类似命名的组件的示例。仪表板服务604包括一个或多个容器组606;编排平台服务608包括一个或多个容器组610;控制器服务612包括一个或多个容器组614;数据管理器服务616包括一个或多个容器组618;数据库服务620包括一个或多个容器组622;适配器服务624包括一个或多个容器组626;消息服务628包括一个或多个容器组630。如图6所示,存储设备686还包括一个或多个控制平面数据库688。控制平面数据库688可以存储与一个或多个控制平面服务或相应容器组中的任何一个相关联的任何输入、配置和/或输出数据。在一些示例中,控制平面数据库688可以包括一个或多个时间序列数据存储。

计算系统674还包括可以实现计算系统674内的功能和/或执行指令的一个或多个处理器676。例如,处理器676可以接收并执行由存储设备686存储的指令,所述存储设备686执行本文描述的节点、元件、服务和/或模块的功能。由处理器676执行的这些指令可以使计算系统674在程序执行期间将信息存储在存储设备686中。处理器676还可执行操作系统的指令以执行本文所述的一个或多个操作。

在一些示例中,处理器676可包括用于执行指令的一个或多个内部处理器核心,一个或多个内部高速缓存或高速缓存设备、存储器控制器和/或输入/输出控制器。在一些示例中,计算系统674为管理程序提供执行环境,该管理程序是提供轻量内核并操作以为虚拟机、容器和/或其它类型的虚拟主机提供虚拟化操作环境的软件和/或固件层。

图7是示出根据本公开的一个或多个方面的由可缩放遥测控制平面执行的示例过程的流程图。图7中所示的示例过程可以由一个或多个计算系统来执行,例如图6中所示的计算系统674,该计算系统674可以包括或实现在此描述并在图1-5中的任一个中示出的控制平面。

如图7的示例中所示,示例过程包括由在分布式计算系统(例如,分布式计算系统100)中的一个或多个处理器(例如,处理器676)上执行的控制平面(例如,控制平面102)接收(790)要被装载到分布式计算系统中的节点(例如,节点148)的指示,其中该节点包括计算节点(例如,计算节点440)或网络设备节点(例如,网络设备节点448)中的一个。所述控制平面被配置为将计算节点和网络设备节点两者装载到所述分布式计算系统中。该过程还包括由控制平面发现(792)与节点相关联的一个或多个计算资源或网络设备资源。

图7的过程还包括由控制平面将节点分配(794)给在分布式计算系统中执行的收集器(例如收集器154),其中收集器被配置为在节点操作期间收集节点的实时遥测数据。所述控制平面被配置为将所述分布式计算系统的计算节点和网络设备节点分配给相应的计算节点收集器或网络设备节点收集器。

在一些情况下,控制平面的适配器服务(例如,适配器服务124)可以被配置为发现用于节点的一个或多个计算资源和/或网络设备资源(例如,连接、接口)。在一些情况下,基于所发现的节点资源,控制平面的控制器服务(例如,收集器服务112)可以标识现有的遥测收集器或实例化新的遥测收集器,并且将收集器分配给节点或者将收集器与节点相关联。控制器服务412能够根据每个装载节点的类型和/或与这些节点中的每个节点相关联的资源,将分布式计算系统中的任意装载节点分配到相应的计算节点收集器或网络设备节点收集器。在一些情况下,控制器服务可以向分配给节点的收集器提供关于由适配器服务发现的计算资源或网络资源的信息。所分配的收集器可以使用这样的信息来进一步配置所述节点以基于所发现的所述节点的资源和/或能力来发起对所述节点的遥测数据的收集,所述遥测数据可以由所述收集器收集。

图7的过程还包括由控制平面从收集器接收(796)由收集器收集的节点的实时遥测数据。该过程还包括由控制平面输出(798)用于显示(例如,在客户端设备101处)节点的实时遥测数据的可视化表示。

本公开中所描述的技术可至少部分地以硬件、软件、固件或其任何组合来实施。例如,所描述的技术的各个方面可以在一个或多个处理器中实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等效的集成或分立逻辑电路,以及这些组件的任何组合。术语“处理器”或“处理电路”一般可指前述逻辑电路中的任一个,单独或与其它逻辑电路或任何其它等效电路组合。包括硬件的控制单元也可以执行本公开的一个或多个技术。

此类硬件、软件和固件可在同一设备内或在单独设备内实现以支持本公开中所描述的各种操作和功能。另外,所描述的单元、模块或组件中的任一者可一起或单独实现为离散但可互操作的逻辑装置。对作为模块或单元的不同特征的描述旨在突出不同的功能方面,而不必暗示这样的模块或单元必须由单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件来执行,或者集成在公共或单独的硬件或软件组件内。

在本公开中所描述的技术还可在包含指令的计算机可读介质(例如计算机可读存储介质)中实施或编码。嵌入或编码在计算机可读介质中的指令可以使得可编程处理器或其他处理器例如在执行指令时执行该方法。计算机可读介质可以包括非暂时性计算机可读存储介质和瞬态通信介质。计算机可读存储介质,其是有形的和非暂时性的,可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质,或其他计算机可读存储介质。术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其它瞬态介质。

已经描述了各种示例。这些和其他示例在所附权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号