在微服务环境中缩放服务发现制造技术

技术编号:21176240 阅读:23 留言:0更新日期:2019-05-22 12:04
公开了用于在微服务环境中缩放服务发现的系统、方法和计算机可读存储介质。一种控制器可以在主计算设备上实例化第一容器实例,该第一容器实例提供应用程序的第一微服务。主计算设备可以包括服务发现代理。该控制器可以识别作为第一微服务的依赖项的一组微服务,并利用提供该作为第一微服务的依赖项的一组微服务的容器实例的路由数据来更新服务发现代理。服务发现代理可以使用该路由数据将来自第一容器实例的请求路由到提供该作为第一微服务的依赖项的一组微服务的容器实例。

Scaling service discovery in a microservice environment

Systems, methods and computer-readable storage media for scaling service discovery in a microservice environment are disclosed. A controller can instantiate a first container instance on the main computing device, which provides the first micro-service of the application. The primary computing device may include a service discovery agent. The controller can identify a set of micro services as a dependency of the first micro service and update the service discovery agent with routing data of a container instance of the set of micro services providing the dependency of the first micro service. The service discovery proxy can use the routing data to route requests from the first container instance to a container instance that provides a set of microservices as a dependency of the first microservice.

【技术实现步骤摘要】
【国外来华专利技术】在微服务环境中缩放服务发现
本公开总地涉及计算机网络领域,更具体地,涉及在微服务环境中缩放服务发现。
技术介绍
基于容器的微服务是一种正在数据中心/云产业中快速采用的架构。基于容器的微服务不是构建单个巨大的单片应用程序,而是将应用程序分成一组较小的互连微服务。在微服务架构中,服务发现起着非常重要的作用,因为容器实例具有动态指派的网络位置,并且由于自动缩放、故障和升级而动态地改变。当前系统利用服务器端发现负载平衡器,其充当将容器实例与提供微服务的其他容器实例连接的代理。然而,要使服务发现工作,代理需要跟踪每个微服务的所有容器实例。在某些情况下,单个应用程序可以包含数百个服务以及数百个提供各自的微服务的容器实例。因此,在部署多个应用程序的数据中心中,每个服务器端发现负载平衡器或代理可能必须跟踪数十万甚至数百万个容器实例。因此,需要改进。附图说明为了描述可以获得本公开的上述特征和其他优点的方式,将通过参考在附图中示出的其特定实施例来呈现上面简要描述的原理的更具体的描述。理解这些附图仅描绘了本公开的示例性实施例,因此将不被认为是限制其范围,通过使用附图用附加特征和细节来描述和解释本文的原理,其中:图1示出了根据主题技术的一些方面的示例网络设备;图2A和图2B示出了根据主题技术的一些方面的示例系统实施例;图3示出了网络结构的示例架构的示意性框图;图4示出了示例覆盖网络;图5A-图5D示出了被配置为在微服务环境中缩放服务发现的示例系统;以及图6示出了在微服务环境中缩放服务发现的示例方法。具体实施方式以下阐述的详细描述旨在作为主题技术的各种配置的描述,而非旨在表示可以实践主题技术的唯一配置。附图并入本文并构成详细描述的一部分。详细描述包括用于提供对主题技术的更透彻理解的目的的具体细节。然而,将会清楚且显而易见的是,主题技术不限于本文阐述的具体细节,并且可以在没有这些细节的情况下实践。在一些实例中,结构和组件以框图形式示出,以避免使主题技术的概念模糊。概述:在独立权利要求中阐述了本专利技术的各方面,并且在从属权利要求中阐述了优选特征。一个方面的特征可以单独应用于每个方面或者与其他方面组合应用。公开了用于在微服务环境中缩放服务发现的系统、方法、和计算机可读存储介质。一种控制器可以在主计算设备上实例化第一容器实例,该第一容器实例提供应用程序的第一微服务。主计算设备可以包括服务发现代理。该控制器可以识别作为第一微服务的依赖项的一组微服务,并利用提供该作为第一微服务的依赖项的一组微服务的容器实例的路由数据来更新服务发现代理。服务发现代理可以使用该路由数据将来自第一容器实例的请求路由到提供该作为第一微服务的依赖项的一组微服务的容器实例。详细描述:公开了用于在微服务环境中缩放服务发现的系统和方法。本文公开了如图1至图4所示的示例性系统和网络的简要介绍性描述,接着讨论了在微服务环境中缩放服务发现。本公开现在转到图1。计算机网络是通过通信链路和段互连的地理上分布的节点集合,用于在诸如个人计算机和工作站之类的端点之间传输数据。可利用许多类型的网络,其类型范围从局域网(LAN)和广域网(WAN)到覆盖和诸如虚拟可扩展局域网(VXLAN)之类的软件定义的网络。LAN通常通过位于同一整体物理位置(诸如建筑物或校园)中的专用私有通信链路来连接节点。另一方面,WAN通常通过诸如公共载波电话线、光学光路、同步光学网络(SONET)、或同步数字系列(SDH)链路之类的长距离通信链路连接地理上分散的节点。LAN和WAN可以包括第2层(L2)和/或第3层(L3)网络和设备。因特网是连接全世界不同网络的WAN的示例,提供各种网络上的节点之间的全局通信。节点通常通过根据诸如传输控制协议/因特网协议(TCP/IP)之类的预定协议交换离散帧或数据分组来通过网络进行通信。在此上下文中,协议可以指代定义节点如何彼此交互的一组规则。计算机网络可以通过诸如路由器之类的中间网络节点进一步互连,以扩展每个网络的有效“大小”。覆盖网络通常允许在物理网络基础设施上创建和分层虚拟网络。诸如虚拟可扩展LAN(VXLAN)、使用通用路由封装(NVGRE)的网络虚拟化、网络虚拟化覆盖(NVO3)、和无状态传输隧道(STT)之类的覆盖网络协议提供允许通过逻辑隧道跨越L2和L3网络运送网络流量的流量封装方案。这样的逻辑隧道可以通过虚拟隧道端点(VTEP)发起和终止。另外,覆盖网络可以包括虚拟段,诸如VXLAN覆盖网络中的VXLAN段,其可以包括虚拟L2和/或L3覆盖网络,虚拟机(VM)和微服务容器通过虚拟L2和/或L3覆盖网络进行通信。虚拟段可以通过诸如VXLAN网络标识符之类的虚拟网络标识符(VNI)来标识,其可以具体地标识关联的虚拟段或域。网络虚拟化允许在虚拟网络中组合硬件和软件资源。例如,网络虚拟化可以允许多个VM和微服务容器经由相应的虚拟LAN(VLAN)附接到物理网络。VM和微服务容器可以根据它们各自的VLAN进行分组,并且可以与其他VM和微服务容器以及内部或外部网络上的其他设备进行通信。网络段,诸如物理或虚拟段;网络;设备;端口;物理或逻辑链路;和/或流量一般可以分组为桥接或泛洪域。桥接域或泛洪域可以表示广播域,诸如L2广播域。桥接域或泛洪域可以包括单个子网,但是也可以包括多个子网。另外,桥接域可以与网络设备上的诸如交换机之类的桥接域接口相关联。桥接域接口可以是支持L2桥接网络和L3路由网络之间的流量的逻辑接口。此外,桥接域接口可以支持因特网协议(IP)终止、VPN终止、地址解析处理、MAC寻址等。桥接域和桥接域接口都可以由相同的索引或标识符来标识。另外,端点组(EPG)可以在网络中用于将应用程序映射到网络。具体而言,EPG可以使用网络中的应用端点的分组(例如,微服务容器)来将连通性和策略应用于该组。EPG可以充当用于微服务容器、应用程序、或应用程序组件、以及用于实现转发和策略逻辑的层的桶或集合的容器。EPG还通过改为使用逻辑应用程序边界来允许将网络策略、安全性和转发与寻址分离。还可以在一个或多个网络中提供云计算以使用共享资源来提供计算服务。云计算通常可以包括基于因特网的计算,其中计算资源被动态供应并且从经由网络可获得的资源集合(例如,“云”)按需分配给客户端或用户计算机或其他设备。例如,云计算资源可以包括任何类型的资源,诸如计算、存储和网络设备、虚拟机(VM)、微服务容器等。例如,资源可以包括服务设备(防火墙、深度分组检查器、流量监视器、负载平衡器等),计算/处理设备(服务器、CPU、存储器、暴力处理能力),存储设备(例如,网络附加存储、存储区域网络设备),等等。此外,这样的资源可用于支持虚拟网络、虚拟机(VM)、微服务容器、数据库、应用程序(App)等。云计算资源可以包括“私有云”、“公共云”、和/或“混合云”。“混合云”可以是由两个或更多个通过技术互操作或联合的云组成的云基础设施。实质上,混合云是私有云和公共云之间的交互,其中私有云加入公共云并以安全且可扩展的方式利用公共云资源。也可以经由覆盖网络中的虚拟网络(诸如VXLAN)供应云计算资源。图1示出了适用于实现本技术的示例性网络设备110。网络设备110包括主中央处理单元(CPU)162、接口168、和总本文档来自技高网...

【技术保护点】
1.一种方法,包括:在主计算设备上实例化第一容器实例,该第一容器实例提供应用程序的第一微服务,其中,所述主计算设备包括服务发现代理;识别作为第一微服务的依赖项的一组微服务;以及利用提供所述作为第一微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自所述第一容器实例的请求路由到提供所述作为第一微服务的依赖项的一组微服务的容器实例。

【技术特征摘要】
【国外来华专利技术】2016.07.22 US 15/217,3111.一种方法,包括:在主计算设备上实例化第一容器实例,该第一容器实例提供应用程序的第一微服务,其中,所述主计算设备包括服务发现代理;识别作为第一微服务的依赖项的一组微服务;以及利用提供所述作为第一微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自所述第一容器实例的请求路由到提供所述作为第一微服务的依赖项的一组微服务的容器实例。2.如权利要求1所述的方法,还包括:在所述主计算设备上实例化第二容器实例,该第二容器实例提供所述应用程序的第二微服务;识别作为第二微服务的依赖项的一组微服务;以及利用提供所述作为第二微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自第二容器的请求路由到提供所述作为第二微服务的依赖项的一组微服务的容器实例。3.如权利要求2所述的方法,其中,利用提供所述作为第二微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理包括:从所述作为第二微服务的依赖项的一组微服务中识别第一微服务子集,所述第一微服务子集是所述第二微服务的依赖项但未包括在所述作为第一微服务的依赖项的一组微服务中;以及利用提供所述第一微服务子集的容器实例的路由数据来更新所述服务发现代理。4.如权利要求3所述的方法,还包括:移除提供所述应用程序的所述第二微服务的所述第二容器实例;以及更新所述服务发现代理以移除提供所述第一微服务子集的容器实例的路由数据。5.如权利要求3或4所述的方法,还包括:移除提供所述第一微服务的所述第一容器实例;从所述作为第一微服务的依赖项的一组微服务中识别第二微服务子集,所述第二微服务子集是所述第一微服务的依赖项但未包括在所述作为第二微服务的依赖项的一组微服务中;以及更新所述服务发现代理以移除提供所述第二微服务子集的容器实例的路由数据。6.如权利要求1至5中任一项所述的方法,其中,识别所述作为第一微服务的依赖项的一组微服务包括:搜索所述应用程序的微服务依赖表以寻找所述作为第一微服务的依赖项的一组微服务,其中,所述微服务依赖表列出所述应用程序的微服务及其相应的依赖项。7.如权利要求1至6中任一项所述的方法,其中,识别所述作为第一微服务的依赖项的一组微服务包括:根据基于组的策略来收集所述作为第一微服务的依赖项的一组微服务,所述基于组的策略与所述第一容器实例被指派的端点组相关联,所述端点组仅包括提供所述第一微服务的容器实例,并且所述基于组的策略标识所述第一微服务的依赖项。8.一种控制器,包括:一个或多个计算机处理器;以及存储器,其存储指令,所述指令当由所述一个或多个计算机处理器执行时使得所述控制器:在主计算设备上实例化第一容器实例,该第一容器实例提供应用程序的第一微服务,其中,所述主计算设备包括服务发现代理;识别作为所述第一微服务的依赖项的一组微服务;以及利用提供所述作为第一微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自所述第一容器实例的请求路由到提供所述作为第一微服务的依赖项的一组微服务的容器实例。9.如权利要求8所述的控制器,其中,所述指令还使得所述控制器:在所述主计算设备上实例化第二容器实例,该第二容器实例提供所述应用程序的第二微服务;识别作为第二微服务的依赖项的一组微服务;以及利用提供所述作为第二微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理,其中,所述服务发现代理使用该路由数据将来自第二容器的请求路由到提供所述作为第二微服务的依赖项的一组微服务的容器实例。10.如权利要求9所述的控制器,其中,利用提供所述作为第二微服务的依赖项的一组微服务的容器实例的路由数据来更新所述服务发现代理包括:从所述作为第二微服务的依赖项的一组微服务中识别第一微服务子集,所述第一微服务子集是第二微服务的依赖项但未包括在所述作为第一微服务的依赖项的一组微服务中;以及利用提供所述第一微服务子集的容器实例的路由数据来更新所述服务发现代理。11.如权利要求10所述的控制器,其中,所述指令还使得所述控制器:移除提供所述应用程序的所述第二微服务的所述第二容器实例;以及更新所述服务发现代理以移除提供所述第...

【专利技术属性】
技术研发人员:杨义沃伊切赫·德克赛义德·巴希鲁丁·艾默德桑贾伊·阿格拉瓦鲁奇尔·古普塔
申请(专利权)人:思科技术公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1