首页> 中国专利> 使用数据中心网络结构作为代理的应用层服务流量通信

使用数据中心网络结构作为代理的应用层服务流量通信

摘要

本文描述了一种用于为微服务应用提供服务的系统。在一实施例中,系统包括多个容器环境,每个容器环境包括主机节点。虚拟结构边缘实例在每个主机节点上执行。主机节点通过多个交换机被互连。结构控制器管理该多个交换机,并通过在每个主机节点上执行的虚拟结构边缘实例来实现策略。结构控制器还通过以下方式来通过虚拟结构边缘实例为应用实例提供服务:通过虚拟结构边缘实例将流量、数据、查询从应用或代理实例路由到容器环境中的另一应用或代理实例。

著录项

  • 公开/公告号CN113243004A

    专利类型发明专利

  • 公开/公告日2021-08-10

    原文格式PDF

  • 申请/专利权人 思科技术公司;

    申请/专利号CN202080006468.5

  • 发明设计人 所罗伯·帕特沃德罕;

    申请日2020-01-03

  • 分类号G06F9/455(20060101);H04L12/46(20060101);H04L12/24(20060101);H04L12/26(20060101);H04L12/713(20060101);H04L12/715(20060101);H04L12/931(20060101);H04L29/08(20060101);

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人董越

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 12:10:19

说明书

本申请于2020年01月03日作为PCT国际专利申请被提交,并要求享有2019年1月9日提交的序列号为62/243,945的美国临时专利申请的优先权权益,该美国临时专利申请的全部公开内容通过引用以其整体合并于此。

技术领域

本公开的一个技术领域是数据中心结构的部署。另一技术领域是实现用于在数据中心中部署的微服务的服务网格。

背景技术

本章节中描述的途径是可以采用的途径,但不一定是先前已经设想或采用的途径。因此,除非另有说明,否则不应假定在本章节中描述的任何途径仅由于其被包括在本章节中而被认为是现有技术。

在现代面向服务的结构化范例中,越来越关注使用服务网格来针对微服务应用提供第7层服务。例如,在数据中心中的不同主机节点上执行的微服务应用可能需要对该应用进行健康状况检查、针对该应用进行服务发现、或针对该应用进行全局速率限制。

边车(sidecar)代理经常用于针对应用提供普遍需要的第7层服务。边车代理是专用于特定应用实例的代理实例,并与在不同节点上执行的其他边车代理通信以获取有关该应用的信息。

边车代理由于在提供所需服务方面的实用性和可靠性而经常被使用。例如,中间代理与工作负载的距离不够近,而无法在不向每个节点发送查询的情况下获取有关应用实例的信息。另外,中间代理可能是多个节点中有故障的单个点。边车代理通过如下操作来解决这些问题:与应用实例协同执行并提供分布式信息源,使得一个点的故障不会拖累整个系统。

边车代理还通过针对每个应用实例提供单独的边车代理,来允许微服务被多方租借(multi-tenanted)。如果需要端到端加密,则边车代理可以代表微服务应用执行加密或解密。

边车代理的主要问题在于它们在获取有关(在其他节点上执行的)应用实例的信息方面效率低下。由于没有用于应用信息的中央存储库,因此,边车代理必须与针对微服务应用执行应用实例的每个节点上的边车代理进行通信,以获取有关如下各项的信息:全局速率限制、服务发现、或已发现服务的整体健康状况。

因此,需要一种有效地针对第7层应用提供服务的系统,该系统靠近工作负载,避免单点故障,针对多方租借提供功能,并提供应用流量方面的端到端加密。

发明内容

所附权利要求可作为本发明的发明内容。

附图说明

在附图中:

图1描绘了用于针对数据中心部署中的容器化微服务的服务网格提供中间代理的示例系统。

图2描绘了用于针对数据中心部署中的容器化微服务的服务网格提供中间代理的方法。

图3是示出了可以用来实现实施例的示例计算机系统的框图。

具体实施方式

在以下的描述中,出于解释的目的,阐述了许多具体的细节以便提供对本发明的透彻理解。然而将显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其他实例中,为了避免不必要地使本发明晦涩难懂,以框图的形式示出了公知的结构和设备。

1.总体概述

本文描述了通过利用数据中心结构来改进对服务网格的实现的方法。根据一实施例,数据中心结构是通过结构控制器来被管理的,该结构控制器与在数据中心中的主机节点上执行的虚拟结构边缘进行通信。来自微服务应用实例的应用流量被路由通过虚拟结构边缘,从而使结构控制器在所执行的服务和流量流方面具有全局可见性。结构控制器能够提供策略或统计信息,以供服务网格代理通过虚拟结构边缘进行实施。端到端加密可以通过结构控制器和容器编排器之间的API交互来被执行。多方租借可以通过在路由传出流量时使用虚拟结构边缘所提供的VxLAN覆盖来被提供。

在一实施例中,一种系统包括多个容器环境,每个容器环境包括主机节点;多个交换机,被配置为使多个容器环境互连;结构控制器,被配置为管理所述多个交换机并通过在每个主机节点上执行的虚拟结构边缘实例实现策略;结构控制器还被配置为通过以下方式来通过虚拟结构边缘实现应用功能:将来自容器环境中的应用实例的应用流量通过虚拟结构边缘实例进行路由。

在一实施例中,应用功能包括服务发现功能或应用健康状况检查功能中的一项或多项。

在一实施例中,该系统还包括在多个容器环境中的每个容器环境中执行的服务网格代理,每个容器环境中的服务网格代理被配置为向虚拟结构边缘实例查询关于应用功能的数据。在一实施例中,结构控制器被配置为:响应于服务网格代理向虚拟结构边缘实例查询关于应用功能的数据,而将关于应用功能的数据下载到交换机中,该交换机被连接到包含服务网格代理的容器环境。

在一实施例中,虚拟结构边缘实例被配置为使用VxLAN覆盖来在容器环境中的不同应用实例之间提供隔离。

在一实施例中,结构控制器还被配置为从容器编排器获得用于应用实例的加密密钥,并将该加密密钥安全地分发给虚拟结构边缘实例。

在一实施例中,结构控制器被配置为存储针对应用定义速率限制策略的数据,并通过虚拟结构边缘实例实施速率限制策略。

在一实施例中,一种方法包括:在虚拟容器环境中的主机节点上存储虚拟结构边缘实例,该虚拟结构边缘实例被配置为实现结构控制器所接收的数据中心策略;在虚拟容器环境中执行应用的应用实例;将来自容器环境中的应用实例的应用流量通过虚拟结构边缘实例路由到一个或多个交换机。

在一实施例中,该方法还包括:从虚拟结构边缘实例向结构控制器发送对所路由的应用实例流量进行描述的数据;在虚拟结构边缘实例处,从容器环境中的应用实例代理接收对关于该应用实例的数据的查询;将查询从虚拟结构实例通过一个或多个交换机进行路由;将对查询的响应从结构控制器下载到一个或多个交换机中;在虚拟结构实例处缓存对查询的响应。在一实施例中,查询包括对关于以下各项中的一项或多项的数据的请求:服务发现,或应用健康状况检查。

在一实施例中,该方法还包括在结构控制器上存储针对该应用的速率限制策略;使用被存储在结构控制器上的针对应用的速率限制策略,通过虚拟结构边缘实例限制应用实例的应用流量。

在一实施例中,该方法还包括:在虚拟结构边缘处接收针对应用实例的经加密应用流量;使用结构控制器,向容器编排器请求加密密钥;在结构控制器处接收加密密钥,并将该加密密钥发送到虚拟结构边缘以解密应用流量。

在一实施例中,该方法还包括使用VxLAN覆盖在应用实例和第二应用实例之间提供隔离。

2.结构和功能示例

图1描绘了用于针对数据中心部署中的容器化微服务的服务网格提供中间代理的示例系统。图1的各种元件使用网络交换机在网络上通信,比如,通过叶脊架构(例如,CLOS网络拓扑),但是实施例不限于此示例,并且可适用于由结构控制器监视的任何数据中心结构。

主机节点102可以是被配置为在数据中心中进行通信的任何计算机系统。主机节点102可以托管一个或多个容器环境,例如Docker或Kubernetes容器。例如,Docker或Kubernetes容器可以被托管在服务器计算机上。每个容器环境是提供特定服务的独立可执行软件包,其包括运行该软件包所需的一切,包括代码、运行时、系统库、设置等。容器环境可以实现容器网络接口(CNI)联网模型或容器网络模型(CNM),该CNI联网模型或CNM被流行的容器编排器用来执行本地编程。

主机节点102执行一个或多个应用实例104。应用实例104包括微服务,该微服务在容器环境中被执行。不同的主机节点可以执行各种微服务的应用实例。为了提供网络拓扑的清晰示例,每个主机节点102被描绘为执行应用实例104,但是在各种主机节点上执行的应用实例可以在配置和/或应用类型上有所不同。应用实例可以作为服务网格的一部分被执行,例如可在GitHub上商业购买的Istio/Envoy服务网格。服务网格包括用于一个或多个微服务应用的可配置基础设施层。

主机节点102各自包括在主机节点上执行的虚拟结构边缘实例(VFE)106。VFE 106包括可执行软件,该可执行软件被配置为使主机节点进行以下操作:识别并认证端点,以及将端点标识信息登记在结构主机跟踪数据库中。VFE可以在每个容器豆荚(pod)名称空间中包含端口,并充当主机节点102与架顶式(top of rack,ToR)交换机108之间的桥梁。

在一实施例中,VFE被配置为通过架顶式(ToR)交换机108路由网络流量。ToR交换机108包括被配置为使数据中心中的主机节点互连的网络交换机。ToR交换机108可以连接到基于诸如CLOS网络拓扑之类的叶/脊数据中心结构的脊110。

结构控制器112包括中央实体,该中央实体被配置为例如通过提供覆盖可达性信息和端点到路由位置映射来管理网络结构的操作。结构控制器的一种示例是思科(Cisco)应用策略基础设施控制器(APIC),它是思科以应用为中心基础设施(ACI)结构的自动化及管理统一点。结构控制器112可以在如下计算系统上被实现:该计算系统通过网络结构架构通信地耦合到主机节点。

容器编排器114包括中央实体,该中央实体针对在主机节点上操作的容器环境充当资源管理器。容器编排器可被配置为向容器环境分配并提供资源,向执行容器环境的系统指令提供指令,获得并分发关于容器环境的属性数据,以及以其他方式管理容器环境的部署和实现。示例容器编排器114包括但不限于:由Docker提供的Docker Swarm、由Google提供的Kubernetes容器编排工具、以及由Apache提供的Marathon容器编排框架。

3.将数据中心结构用作中间代理

图2描绘了用于为数据中心部署中的容器化微服务的服务网格提供中间代理的方法。

在一实施例中,在作为用于微服务应用的服务网格的一部分的容器环境中执行应用实例。尽管图2描绘了单个应用实例,但是可以利用对应于不同应用的多个应用实例来执行实施例。

在一实施例中,应用代理204附加地在容器环境中执行。应用代理204可以被配置为实现对与应用实例有关的策略的实施。作为示例,可另外地执行使者(Envoy)边车代理以实施针对Envoy服务网格的策略。应用代理204可以进一步被配置为与VFE 106通信以获得关于应用的信息。例如,通过允许VFE 106向应用实例104或应用代理204中任一者提供关键服务,可以将数据中心结构与服务网格集成在一起。

在一实施例中,VFE 106被用于监视与应用实例104有关的应用数据。例如,在图2中的步骤210,在主机节点上的容器环境中执行的应用实例将传出流量发送到VFE 106。在一实施例中,VFE 106针对如下的任何第7层服务充当代理:在该第7层服务处,网络结构提供供实施的策略或统计信息。因此,微服务应用可以被预先标识为委托服务或未委托服务,使得在服务已经被预先标识为委托服务的情况下,主机节点可以确定是否通过VFE 106路由传出流量。

在步骤212,VFE 106将传出流量路由到ToR交换机108。例如,VFE可以通过下一跳代理路由传出流量。在CLOS架构中,ToR交换机连接到多个脊,从而确保了与微服务应用有关的数据的多级冗余。

在步骤214,VFE 106将流量更新发送到结构控制器112。例如,结构控制器可以从VFE主机节点直接接收或通过数据中心结构架构间接接收有关被路由流量的数据。通过允许结构控制器监视VFE所路由的应用流量,系统在利用靠近微服务工作负载的VFE的同时,通过数据中心架构的脊来提供多级冗余。

通过在每个容器环境上通过VFE路由所有的传出应用流量,系统能够提供使边车代理靠近工作负载的好处。通过利用数据中心结构,系统能够提供多级冗余并消除中间代理的单点故障。另外,通过利用网络结构,来自其他节点的应用实例数据是可容易获得的并且可以更有效地被提供,而无需将查询发送到多个不同的主机节点。

在一实施例中,系统将数据中心结构与容器编排器集成。数据中心结构具有对被执行服务的全局可见性,同时容器编排器存储关于所部署服务的信息。因此,结构控制器112可以通过与容器编排器的API事务来请求应用数据,以请求关于所部署服务的信息来用于响应来自VFE的请求。

3.1.结构和应用代理之间的合作

在一实施例中,VFE与应用代理一起工作以提供供实施的策略或统计信息,同时将实际实施留给应用代理。例如,在步骤220,应用代理将查询发送到VFE 106。该查询包括对与微服务应用的实现有关的信息的请求。例如,该查询可以是服务发现查询和/或对辅助各种已发现服务的健康状况检查的请求。

在步骤222,VFE 106向结构控制器112请求对查询的响应。例如,VFE可以将查询路由到下一跳ToR交换机,以路由到结构控制器。尽管使用应用代理描述了实施例,但是在其他实施例中,VFE可以直接与应用实例通信。

在一实施例中,在主机节点上执行的VFE执行端点发现并将端点报告给结构控制器。结构控制器使用端点学习、查询和时效处理(aging)来辅助执行服务发现和健康状况检查。

在一实施例中,查询包括对微服务应用执行全局速率限制的请求。附加地或可替代地,结构控制器可以促进全局速率限制,而无需从VFE接收查询。在一实施例中,速率限制数据被定义在结构控制器中的应用策略中。结构控制器可以将速率限制策略发送到针对微服务应用路由流量的VFE。VFE可以将速率限制策略传送给应用代理,该应用代理实施这些速率限制策略。

在步骤224,结构控制器在VFE级别缓存查询响应。例如,如果查询是对于执行服务发现的请求,则结构控制器可以将如下数据通过ToR交换机路由到VFE:该数据包括标识已发现服务的数据。如果查询是对于执行健康状况检查的请求,则结构控制器可以将包括如下内容的数据通过ToR交换机路由到VFE:基于与来自在不同主机节点上执行的VFE的微服务应用进行的其他交互来描述微服务应用的健康状况的数据。

在步骤226,VFE 106将响应发送到应用代理。例如,VFE可以使用所缓存的响应来向应用代理做出响应。尽管实施例描述了VFE响应于应用代理的查询而请求数据,但是在实施例中,结构控制器可以利用已发现的服务、健康状况检查数据、或速率限制策略来周期性地更新VFE。VFE可以缓存从结构控制器接收的数据,并使用所缓存的数据对来自应用代理的查询做出响应。

3.2.提供加密

在一实施例中,数据中心结构可以被用于为微服务提供端到端加密。例如,在步骤230,VFE 106可以识别针对应用实例的经加密流量。尽管关于解密流量描述了步骤230-236,但是可以执行类似的方法来对流量进行加密以发送到不同节点。例如,步骤230可以包括识别针对要被加密的应用的流量。识别经加密流量可以包括:确定被指定为使用端到端加密的微服务应用已经通过VFE发送了数据。识别针对要被加密的应用的流量可以类似地包括:确定被指定为使用端到端加密的微服务应用正在请求通过VFE发送传出数据。

在步骤232,结构控制器112向容器编排器206请求加密密钥。例如,容器编排器206可以存储用于每个微服务应用的加密密钥。结构控制器112可以通过API交互与容器编排器进行通信以请求用于微服务应用的加密密钥,该微服务应用具有正通过VFE被路由的流量。在步骤234,容器编排器206例如通过所描述的API交互将加密密钥提供给结构控制器112。

在步骤236,结构控制器112将加密密钥安全地分发给VFE 106。例如,结构控制器可以将加密密钥通过ToR交换机直接路由到VFE。然后,VFE可以使用加密密钥来加密传出流量或解密传入流量。以此方式,VFE在路由经加密流量时仅存储和使用加密密钥。这允许通过VFE执行端到端加密,而无需在每个主机节点上存储用于每个微服务应用的加密密钥。

3.3.提供多方租借

在一实施例中,数据中心结构可以被用于针对应用提供多方租借。按节点的代理不允许微服务被多方租借。另一方面,VFE可以通过在不同的微服务实例之间进行隔离来针对应用提供多方租借。

在一实施例中,VFE使用VxLAN覆盖来提供不同微服务实例之间的隔离。例如,VFE可以针对每个微服务实例指定VxLAN标识号。然后,VFE可以使用VxLAN覆盖、与结构控制器和容器编排器协作地将流量路由到其他主机节点,这些其他主机节点然后使用VxLAN标识号来标识微服务实例。

将数据中心结构与用于微服务的服务网格集成在一起,提供了许多使用边车代理模型的好处。VFE能够在靠近每个节点上的微服务的工作负载的同时提供应用信息。对叶/脊架构的使用消除了中间代理的单点故障问题。对VxLAN覆盖的使用允许VFE针对微服务提供多方租借。另外,VFE可以通过结构控制器和容器编排器之间的协作来提供端到端加密。

另外,由于结构控制器具有对被执行服务和流量流的全局可见性,因此对结构控制器的使用允许更有效的服务发现、健康状况检查、和全局速率限制。对结构控制器的使用允许通过移除边车代理来简化服务网格的实现。另外,对结构控制器的使用允许在网络结构级别有效使用端点学习,以避免在服务网格级别的冗余数据收集,从而节省了用于第7层应用的网络带宽。

4.实现方式示例-硬件概述

根据一个实施例,本文描述的技术由至少一个计算设备实现。可以使用至少一个服务器计算机和/或其他计算设备的组合(使用诸如分组数据网络之类的网络被耦合的)来全部或部分地实现这些技术。计算设备可以硬连线以执行这些技术;或者可以包括数字电子设备,例如至少一个专用集成电路(ASIC)或被永久编程为执行这些技术的现场可编程门阵列(FPGA);或者可以包括至少一个通用硬件处理器,该通用硬件处理器被编程为根据固件、存储器、其他存储装置或组合中的程序指令来执行这些技术。这样的计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制的编程相结合,以实现所描述的技术。计算设备可以是服务器计算机、工作站、个人计算机、便携式计算机系统、手持设备、移动计算设备、可穿戴设备、身体安装或可植入设备、智能电话、智能电器、网络互连设备、自主或半自主设备(例如机器人或无人驾驶的地面载具或飞行器)、结合硬连线和/或程序逻辑以实现所描述技术的任何其他电子设备、数据中心中的一个或多个虚拟计算机器或实例、和/或服务器计算机和/或个人计算机的网络。

图3是示出了可以用来实现实施例的示例计算机系统的框图。在图3的示例中,计算机系统300和用于以硬件、软件或硬件和软件的组合来实现所公开技术的指令被示意性地表示为例如方框和圆圈,以本公开所属领域的普通技术人员通常用来就计算机架构和计算机系统实现方式进行传达的相同细节程度。

计算机系统300包括输入/输出(I/O)子系统302,其可以包括总线和/或(一个或多个)其他通信机构,用于通过电子信号路径在计算机系统300的组件之间传达信息和/或指令。I/O子系统302可以包括I/O控制器,存储器控制器和至少一个I/O端口。电子信号路径在附图中示意性地表示为例如,线、单向箭头、或双向箭头。

至少一个硬件处理器304耦合到I/O子系统302,用于处理信息和指令。硬件处理器304可以包括例如通用微处理器或微控制器和/或专用微处理器,比如,嵌入式系统或图形处理单元(GPU)或数字信号处理器或ARM处理器。处理器304可以包括集成算术逻辑单元(ALU),或者可以耦合到单独的ALU。

计算机系统300包括一个或多个存储器306的单元(例如主存储器),其耦合到I/O子系统302,用于以电子方式数字地存储要由处理器304执行的数据和指令。存储器306可以包括易失性存储器,比如,各种形式的随机存取存储器(RAM)或其他动态存储设备。存储器306还可以用于在要由处理器304执行的指令的执行期间存储临时变量或其他中间信息。当被存储在处理器304可访问的非暂态计算机可读存储介质中时,这些指令可以使计算机系统300呈现为经定制以执行指令中指定的操作的专用机器。

计算机系统300还包括非易失性存储器(例如,只读存储器(ROM)308或耦合到I/O子系统302的其他静态存储设备),用于存储用于处理器304的信息和指令。ROM 308可以包括各种形式的可编程ROM(PROM),例如可擦除PROM(EPROM)或电可擦除PROM(EEPROM)。永久性存储装置310的单元可以包括各种形式的非易失性RAM(NVRAM),例如闪速存储器,或者固态存储装置、磁盘或光盘(例如CD-ROM或DVD-ROM),并且可以耦合到I/O子系统302以用于存储信息和指令。存储装置310是非暂态计算机可读介质的示例,其可以用于存储指令和数据,这些指令和数据在由处理器304执行时使得执行由计算机实现的方法来执行本文中的技术。

存储器306、ROM 308或存储装置310中的指令可以包括一组或多组指令,这些指令被组织为模块、方法、对象、函数、例程或调用。这些指令可被组织为一个或多个计算机程序、操作系统服务、或包括移动app的应用程序。指令可以包括操作系统和/或系统软件;一个或多个用于支持多媒体、编程或其他功能的库;数据协议指令或栈以实现TCP/IP、HTTP或其他通信协议;用于解析或呈现使用HTML、XML、JPEG、MPEG或PNG编码的文件的文件格式处理指令;用于呈现或解释针对图形用户界面(GUI)、命令行界面或文本用户界面的命令的用户界面指令;应用软件,例如办公套件、互联网访问应用、设计和制造应用、图形应用、音频应用、软件工程应用、教育应用、游戏或其他应用。这些指令可以实现web服务器、web应用服务器或web客户端。指令可以被组织为表示层、应用层和数据存储层,例如使用结构化查询语言(SQL)或不使用SQL的关系数据库系统、对象存储、图形数据库、平面文件系统或其他数据存储装置。

计算机系统300可以经由I/O子系统302耦合到至少一个输出设备312。在一个实施例中,输出设备312是数字计算机显示器。可以在各种实施例中使用的显示器的示例包括触摸屏显示器或发光二极管(LED)显示器或液晶显示器(LCD)或电子纸显示器。作为显示设备的替代或补充,计算机系统300可以包括(一个或多个)其他类型的输出设备312。其他输出设备312的示例包括打印机、票证打印机、绘图仪、投影仪、声卡或视频卡、扬声器、蜂鸣器或压电设备或其他可听设备、灯或LED或LCD指示器、触觉设备、致动器或伺服器。

至少一个输入设备314耦合到I/O子系统302,用于将信号、数据、命令选择或手势传达给处理器304。输入设备314的示例包括:触摸屏、麦克风、静态和视频数字相机、字母数字键和其他键、小键盘、键盘、图形输入板、图像扫描仪、操纵杆、时钟、开关、按钮、拨盘、滑块和/或各种类型的传感器(例如,力传感器、运动传感器、热传感器、加速度计、陀螺仪和惯性测量单元(IMU)传感器)和/或各种类型的收发器(例如,无线(如蜂窝或Wi-Fi)、射频(RF)或红外(IR)收发器和全球定位系统(GPS)收发器)。

另一类型的输入设备是控制设备316,该控制设备316可以替代输入功能或除了输入功能之外还执行光标控制或其他自动控制功能,例如在显示屏上的图形界面中进行导航。控制设备316可以是触摸板、鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传达给处理器304并且用于控制显示器312上的光标移动。输入设备可以在两个轴(第一轴(例如,x)和第二轴(例如,y))上具有至少两个自由度,这允许该设备指定平面中的位置。另一类型的输入设备是有线、无线或光学控制设备,例如操纵杆、棒、控制台、方向盘、踏板、变速机构或其他类型的控制设备。输入设备314可以包括多个不同输入设备(例如,摄像机和深度传感器)的组合。

在另一实施例中,计算机系统300可以包括物联网(loT)设备,其中省略了输出设备312、输入设备314和控制设备316中的一个或多个。或者,在这样的实施例中,输入设备314可以包括一个或多个相机、运动检测器、温度计、麦克风、地震检测器、其他传感器或检测器、测量设备或编码器,并且输出设备312可以包括专用显示器(例如,单行LED或LCD显示器)、一个或多个指示器、显示面板、仪表、阀门、螺线管、致动器或伺服器。

当计算机系统300是移动计算设备时,输入设备314可以包括耦合至全球定位系统(GPS)模块的GPS接收器,该GPS模块能够对多个GPS卫星进行三角测量,确定并生成地理位置或定位数据,例如计算机系统300的地球物理位置的纬度-经度值。输出设备312可以包括硬件、软件、固件和接口,用于生成定位报告分组、通知、脉冲或心跳信号、或指定计算机系统300的定位的其他循环数据传输,它们单独或与其他特定于应用的数据结合地指向主机324或服务器330。

计算机系统300可以使用以下项来实现本文所描述的技术:定制的硬连线逻辑、至少一个ASIC或FPGA、固件和/或程序指令或逻辑,它们当与计算机系统结合地被加载和使用或执行时使得计算机系统或编程计算机系统来作为专用机器进行操作。根据一个实施例,本文的技术是由计算机系统300响应于处理器304执行被包含在主存储器306中的至少一个指令的至少一个序列而被执行的。可以从诸如存储装置310之类的另一存储介质将这样的指令读入主存储器306。执行被包含在主存储器306中的指令序列使处理器304执行本文描述的处理步骤。在可替代的实施例中,硬连线电路系统可以被用来替代软件指令或与软件指令相结合。

本文所使用的术语“存储介质”是指对使机器以特定方式进行操作的数据和/或指令进行存储的任何非暂态介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,例如存储装置310。易失性介质包括动态存储器,例如存储器306。存储介质的常见形式包括,例如,硬盘、固态驱动、闪速驱动、磁数据存储介质、任何光学或物理数据存储介质、存储器芯片等。

存储介质与传输介质不同,但可以与传输介质结合使用。传输介质参与存储介质之间的信息传递。例如,传输介质包括同轴线缆、铜线和光纤,包括构成I/O子系统302的总线的线。传输介质可采取诸如在无线电波和红外数据通信期间生成的那些声波或光波之类的声波或光波的形式。

在将至少一个指令的至少一个序列载送到处理器304以供执行时,可以涉及各种形式的介质。例如,指令最初可以被承载在远程计算机的磁盘或固态驱动上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过通信链路(例如,光纤或同轴线缆或电话线)发送指令。相对于计算机系统300而本地的调制解调器或路由器可以在通信链路上接收数据,并将数据转换为计算机系统300可以读取的格式。例如,诸如射频天线或红外检测器之类的接收器可以接收无线或光信号中携带的数据,并且适当的电路系统可以将数据提供给I/O子系统302,例如将数据放置在总线上。I/O子系统302将数据载送到存储器306,其中处理器304从存储器306取回并执行指令。由存储器306接收的指令可以可选地(在由处理器304执行之前或之后)被存储在存储装置310上。

计算机系统300还包括耦合到总线302的通信接口318。通信接口318提供耦合到(一个或多个)网络链路320的双向数据通信,其中该(一个或多个)网络链路320直接或间接地连接到至少一个通信网络,例如网络322或互联网上的公共云或私有云。例如,通信接口318可以是以太网联网接口、综合业务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器、或用于提供到对应类型的通信线路(例如,以太网线缆或任何种类的金属线缆或光纤线路或电话线路)的数据通信连接的调制解调器。网络322广义上表示局域网(LAN)、广域网(WAN)、校园网、互联网络或它们的任何组合。通信接口318可以包括LAN卡,以提供到兼容LAN的数据通信连接;或者可以包括蜂窝无线电话接口,其被连线以根据蜂窝无线电话无线联网标准发送或接收蜂窝数据;或者可以包括卫星无线电接口,其被连线以根据卫星无线联网标准发送或接收数字数据。在任何这样的实现方式中,通信接口318在信号路径上发送和接收电、电磁或光信号,这些信号路径携带表示各种类型的信息的数字数据流。

网络链路320通常使用例如卫星、蜂窝、Wi-Fi或蓝牙(BLUETOOTH)技术提供直接到其他数据设备或者通过至少一个网络到其他数据设备的电、电磁或光数据通信。例如,网络链路320可以提供通过网络322到主机计算机324的连接。

此外,网络链路320可以经由网络互连设备和/或由互联网服务提供商(ISP)326操作的计算机,提供通过网络322的连接或到其他计算设备的连接。ISP 326通过被表示为互联网328的全球分组数据通信网络提供数据通信服务。服务器计算机330可以耦合到互联网328。服务器330广义上表示任何计算机、数据中心、具有或不具有管理程序的虚拟机或虚拟计算实例、或执行诸如DOCKER或KUBERNETES之类的容器化程序系统的计算机。服务器330可以表示一种电子数字服务,该电子数字服务使用不止一台计算机或实例来被实现,并且可以通过如下操作来被访问和使用:发送web服务请求、具有HTTP有效负载中的参数的统一资源定位符(URL)字符串、API调用、app服务调用、或其他服务调用。计算机系统300和服务器330可以形成分布式计算系统的元件,该分布式计算系统包括协作执行任务或执行应用或服务的其他计算机、处理集群、服务器群、或其他计算机组织。服务器330可以包含一组或多组指令,这些指令被组织为模块、方法、对象、函数、例程或调用。指令可以被组织为一个或多个计算机程序、操作系统服务、或包括移动app的应用程序。指令可以包括操作系统和/或系统软件;一个或多个用于支持多媒体、编程或其他功能的库;数据协议指令或栈,用于实现TCP/IP、HTTP或其他通信协议;文件格式处理指令,用于解析或呈现使用HTML、XML、JPEG、MPEG或PNG编码的文件;用户界面指令,用于呈现或解释针对图形用户界面(GUI)、命令行界面或文本用户界面的命令;应用软件,例如办公套件、互联网访问应用、设计和制造应用、图形应用、音频应用、软件工程应用、教育应用、游戏或其他应用。服务器330可以包括web应用服务器,该web应用服务器托管表示层、应用层和数据存储层,例如使用结构化查询语言(SQL)或不使用SQL的关系数据库系统、对象存储、图形数据库、平面文件系统或其他数据存储装置。

计算机系统300可以通过(一个或多个)网络、网络链路320和通信接口318发送消息并接收数据和指令(包括程序代码)。在互联网示例中,服务器330可以通过互联网328、ISP 326、本地网络322和通信接口318发送针对应用程序的所请求代码。接收到的代码可以在其被接收到时由处理器304执行,和/或可以被存储在存储装置310或其他非易失性存储装置中以供以后执行。

本章节中描述的指令的执行可以以正被执行的计算机程序实例的形式来实现进程,该进程由程序代码及其当前活动组成。取决于操作系统(OS),进程可以由同时执行指令的多个线程的执行组成。在这种情况下,计算机程序是指令的无源(passive)集合,而进程可以是这些指令的实际执行。若干进程可以与同一程序相关联;例如,打开同一程序的若干实例经常意味着正在执行不止一个进程。可以实现多任务以允许多个进程共享处理器304。当每个处理器304或处理器核心一次执行单个任务时,计算机系统300可以被编程为实现多任务以允许每个处理器在正被执行的任务之间切换,而不必等待每个任务完成。在一实施例中,切换可以在如下情况下被执行:当任务执行输入/输出操作时、当任务指示它可以被切换时,或在硬件中断时。可以通过如下操作来实现分时以允许对交互式用户应用的快速响应:快速执行上下文切换,以同时提供对多个进程的并发执行的呈现。在一实施例中,为了安全性和可靠性,操作系统可以防止独立进程之间的直接通信,以提供受到严格调解和控制的进程间通信功能。

总而言之,本文描述了一种用于为微服务应用提供服务的系统。在一实施例中,系统包括多个容器环境,每个容器环境包括主机节点。虚拟结构边缘实例在每个主机节点上执行。主机节点通过多个交换机被互连。结构控制器管理该多个交换机,并通过在每个主机节点上执行的虚拟结构边缘实例来实现策略。结构控制器还通过以下方式来通过虚拟结构边缘实例针对应用实例提供服务:通过虚拟结构边缘实例将流量、数据、查询从应用或代理实例路由到容器环境中的另一应用或代理实例。

在前述说明书中,已经参考可能随实现方式而变化的许多具体细节描述了本发明的实施例。因此,说明书和附图被认为具有说明性意义而不是限制性意义。申请人希望作为本发明范围的、本发明范围的唯一且排他的指示,是本申请提出的权利要求集合的字面和等同范围(按照提出这样的权利要求的具体形式),包括任何后续更正。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号