使用实时网络业务的复制容器性能和策略验证的系统和方法与流程

文档序号:20621799发布日期:2020-05-06 20:56阅读:135来源:国知局
使用实时网络业务的复制容器性能和策略验证的系统和方法与流程

本技术涉及为了策略和非生产容器的性能的验证而复制实时网络数据业务(traffic)。



背景技术:

用于提供各种网络服务功能的容器的使用正在增加。当前,在将任何新容器移至生产环境之前,由devops环境上的操作员出于验证目的来实例化所述任何新容器。例如,在contiv环境中,操作员创建微分段并且创建将新容器放入非生产环境(测试环境)中的策略。一旦容器被实例化,则操作员将尝试模拟合成业务以验证策略,并且在成功验证了容器时,将容器移动到生产环境以用于向客户、终端用户等提供一个或多个网络服务功能。这是在将容器投入生产之前验证容器的低效并且资源密集的过程。

附图说明

为了描述可以获得本公开的上述和其它优点和特征的方式,将通过参考在附图中示出的其特定实施例来呈现对以上简要地描述的原理的更特定描述。应理解,这些附图仅描绘了本公开的示例性实施例,并且因此不应被认为是对其范围的限制,通过使用附图,利用附加的特征和细节来描述和解释本文的原理,在附图中:

图1a-图1d示出了根据本公开的一个方面的示例网络环境和架构;

图2示出了根据本公开的一个方面的适于执行交换、路由、负载平衡和其他联网操作的示例网络设备;

图3示出了根据本公开的一个方面的计算系统架构;

图4示出了根据本公开的一个方面的提供服务的容器的示例系统;

图5描述了根据本公开的一个方面的复制实时网络业务以验证容器性能的方法;

图6示出了根据本公开的一个方面的示例服务模块表;

图7示出了根据本公开的一个方面的图5的容器验证过程的示例;以及

图8示出了根据本公开的一个方面的图5的容器验证过程的示例。

具体实施方式

下面详细讨论本公开的各种示例。尽管讨论了特定实现方式,但是应当理解,这样做仅仅是为了说明的目的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他组件和配置。

在本公开中对一个示例实施例或示例实施例的引用可以但不一定是对相同示例实施例的引用;并且,这样的引用意味着示例实施例中的至少一个示例实施例。

对“一个示例实施例”或“示例实施例”的引用意味着结合示例实施例描述的特定特征、结构或特性被包括在本公开的至少一个示例中。在说明书中的各个地方出现的短语“在一个示例实施例中”不一定全部指代相同的示例实施例,也不是与其他示例实施例互斥的单独的或可选的示例实施例。此外,描述了可以由一些示例实施例而不是由其它示例实施例展现的各种特征。类似地,描述了可以是用于一些示例实施例而不是其它示例实施例的特征的各种特征。

本说明书中使用的术语在本公开的上下文内并且在使用每个术语的特定上下文中通常具有其在本领域中的普通含义。可选语言和同义词可以被用于本文讨论的术语中的任何一个或多个术语,并且不应对术语是否在本文中详细阐述或讨论设置特别的意义。提供了用于某些术语的同义词。一个或多个同义词的朗诵不排除使用其他同义词。在本说明书中任何地方处使用示例(包括本文讨论的任何术语的示例)仅是说明性的,并且不旨在进一步限制本公开或任何示例术语的范围和含义。同样地,本公开不限于本说明书中给出的各种实施例。

在不旨在限制本公开的范围的情况下,在下面给出根据本公开的示例的仪器、装置、方法及其相关结果的示例。应注意,可以为了方便读者而在示例中使用标题或副标题,这绝不应该限制本公开的范围。除非另外定义,否则本文使用的技术和科学术语具有如本公开所属领域的普通技术人员通常所理解的含义。在冲突的情况下,以本文档(包括定义)为准。

尽管术语第一、第二等可以在本文中被用来描述各种元件,但是这些元件不应当受这些术语的限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离本公开的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所使用的,术语“和/或”包括一个或多个相关联的所列项目的任何和所有组合。

当元件被称为“被连接”或“被耦合”到另一元件时,该元件可以被直接地连接或耦合到另一元件,或者可以存在中间元件。相反,当元件被称为“被直接地连接”或者“被直接地耦合”到另一元件时,不存在中间元件。被用于描述元件之间的关系的其他词语应当以类似的方式解释(例如,“之间”对比“直接之间”、“相邻”对比“直接相邻”等)。

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

还应注意,在一些可选实现方式中,提到的功能/动作可以不按图中指出的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个图实际上可以基本上同时执行,或者有时可以以相反的顺序执行。

在以下描述中提供了特定细节,以提供对示例的透彻理解。然而,本领域的普通技术人员将理解的是,可以在没有这些特定细节的情况下实践示例。例如,可以以框图的形式来示出系统,以便不会在不必要的细节上使示例模糊。在其他实例中,可以示出公知的过程、结构和技术而没有不必要的细节,以避免使示例模糊。

在以下描述中,将参考可以被实现为程序服务或功能过程的动作和操作的符号表示(例如,以流程图、流图、数据流图、结构图、框图等的形式)来描述说明性示例,所述程序服务或功能过程包括执行特定任务或者实现特定抽象数据类型并且可以使用网络元件处的硬件来实现的例程、程序、对象、组件、数据结构等。这种硬件的非限制性示例可以包括一个或多个中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路、现场可编程门阵列(fpga)、计算机等。

本公开的附加特征和优点将在下面的描述中被阐述,并且从描述中将部分地显而易见,或者可以通过实践本文公开的原理来获知。可以通过在所附权利要求中特别指出的仪器和组合来实现和获得本公开的特征和优点。根据以下描述和所附权利要求,本公开的这些和其他特征将变得更加显而易见,或者可以通过实践本文阐述的原理来获知。

概述

在独立权利要求中陈述了本发明的各方面,并且在从属权利要求中陈述了优选的特征。一方面的特征可以单独地或者与其他方面结合地应用于每个方面。

在本公开的一个方面中,一种方法包括:在控制器处接收去往一个或多个容器的传入数据分组;在控制器处复制用于对至少一个非生产容器进行验证的传入数据分组,从而产生复制的数据分组;将复制的数据分组发送到至少一个非生产容器;以及在控制器的相应传入端口处丢弃从至少一个非生产容器接收的任何数据分组。

在本公开的一个方面中,一种设备包括:存储器,具有存储在其中的计算机可读指令;以及一个或多个处理器,被配置为执行计算机可读指令以执行以下操作:接收去往一个或多个容器的传入数据分组;复制用于对至少一个非生产容器进行验证的传入数据分组,从而产生复制的数据分组;将复制的数据分组发送到至少一个非生产容器;以及在控制器的相应传入端口处丢弃从至少一个非生产容器接收的任何数据分组。

在本公开的一个方面中,一个或多个非暂态计算机可读介质,具有存储在其上的计算机可读指令,计算机可读指令在由一个或多个处理器执行时,使得一个或多个处理器执行以下操作:接收去往一个或多个容器的传入数据分组;复制用于对至少一个非生产容器进行验证的传入数据分组,从而产生复制的数据分组;将复制的数据分组发送到至少一个非生产容器;以及在控制器的相应传入端口处丢弃从至少一个非生产容器接收的任何数据分组。

描述

所公开的技术涉及使用实时网络业务来验证(在将这些容器、vm和/或裸机移入生产以提供特定服务功能之前处于测试模式/非生产模式中的)容器、虚拟机(vm)或裸机的(一个或多个)策略配置和性能,而不影响实时网络业务和/或为实时网络业务提供的服务功能。

本公开的示例利用contiv主机代理(hostagent)的使用来在将容器/vm/裸机移入生产之前使用复制的实时网络业务来促进这种非生产容器/vm/裸机验证。

尽管在整个公开中,使用容器作为示例,但是本发明构思不限于此,并且同样适用于vm和裸机的验证。

本公开以对示例网络环境和架构的描述开始,如图1a-图1d所示。

图1a示出了根据本公开的一个方面的示例系统。图1a的系统100包括控制器102和分布式流式传输系统120。控制器102可以是应用、软件容器、虚拟机、服务链、(一个或多个)虚拟功能等。控制器102可以在一个或多个设备或服务器上运行,所述设备或服务器具有诸如一个或多个处理器(例如,处理器104)、一个或多个存储器(例如,存储器106)、收发器108、显示设备110和输入设备112之类的组件。处理器104可以被配置为执行被存储在存储器106上的用于执行功能的计算机可读指令,这将在下面参考图4-图6进行描述。在整个公开中,控制器102可以被称为系统管理组件102、管理设备102、设备102和/或系统控制器102。

收发器108可以是任何已知的或者待开发的接收器和传送器,控制器102可以通过这些接收器和发送器向外部组件(例如,分布式流式传输系统120的组件)发送信息和从外部组件(例如,分布式流式传输系统120的组件)接收信息。

网络运营商和控制器(运营管理组件)可以使用显示器110来查看与分布式流式传输系统120的运营状态和/或管理相对应的数据,如将在下面描述的。显示器110可以是任何类型的已知或者待开发的显示器,例如液晶显示器(lcd)、发光二极管显示器(led)等。

输入设备112可以是任何已知的或者待开发的输入设备,包括但不限于键盘、基于触摸的输入设备等。在一个示例中,当显示器110是能够接收输入的触摸使能设备时,显示器110和输入设备112可以是相同的。网络管理员和操作员可以经由输入设备112来提供用于监视和管理分布式流式传输系统120的适当命令。

控制器102可以经由任何已知的或者待开发的无线通信和/或有线通信装置(means)与分布式流式传输系统120的各种组件进行通信。例如,控制器102可以经由诸如局域无线网络(lan)、虚拟局域网(vlan)和/或任何其他类型的、已知的或者待开发的网络(控制器可以通过这些网络与分布式流式传输系统120的每个组件进行通信)之类的网络访问分布式系统120的每个组件并且获得信息(和/或发送信息)至分布式系统120的每个组件。

在一个方面中,控制器102可以是任何已知的或者待开发的电子设备,包括但不限于膝上型计算机、台式计算机、移动设备、手持设备等。

分布式流式传输系统120可以是任何已知的或者待开发的分布式流式传输系统,其中其各种组件(例如,组件122-1、122-2、122-3和122-4)彼此通信,以便以分布式方式向用户提供流式传输服务。在下文中,组件122-1、122-2、122-3和122-4可以被简单地称为组件122或节点122。虽然在本公开中,提供了分布式流式传输系统作为示例,但是本公开并不限于此,并且可以包含和适用于可以被抽象为有向非循环图(dag)(其中,每个顶点可以表示信息/消息,并且信息/消息在某些方向上通过边)的任何分布式系统。分布式系统的其他示例包括其中信号从传感器传播到传感器的分布式传感器网络、其中每个组件接收和处理数据块并且将其传递到下面的(一个或多个)组件的多组件数据处理系统。

组件122中的每一个组件均可以是任何已知的或者待开发的能够与诸如其他组件122之类的其他设备进行远程通信的电子设备。例如,每个组件122可以是移动设备、膝上型计算机、台式计算机、交换机、包括一个或多个服务器的数据中心等。例如,虽然组件122中的一些组件可以是终端用户设备或者主机,但是组件122中的其他组件可以是促进由分布式流式传输系统120提供的流式传输服务的服务器。

此外,分布式流式传输系统120可以具有服务器114,其充当系统中的其他组件(终端用户设备)的信息(数据)的收集器。数据的示例包括设备度量,例如设备id、相关联的时间戳、设备ip地址、设备吞吐量、设备延迟、存储器和处理速度特性等。

在一个示例中,系统100还包括一个或多个反馈服务器116,其中可以收集和保存组件122上的(将由控制器102使用的)各种类型的数据。在另一示例中,系统100不包括任何反馈服务器,而是可以直接从每个组件122(通过推或拉操作)来接收预期数据(这将在下面描述)。

分布式流式传输系统120可以是基于云的系统,其中其每个组件位于不同的地理位置,但是可以彼此通信以形成分布式流式传输系统120(例如,通过互联网)。

经由分布式流式传输系统120提供的流式传输服务的示例可以包括但不限于实况视频和/或音频内容,例如演讲、音乐会、tv节目、音乐等。

用于将流式传输服务递送到终端用户的分布式流式传输系统120的操作可以是基于任何已知的或者待开发的用于这样做的方法的,例如通过实时或接近实时地或周期性地连续处理文本、图形、视频、音频、时间序列数据等的流。图1a的系统100利用基于客户端/服务器的架构。在其他示例中,系统100可以被实现为云或雾(fog)计算架构。

图1b示出了示例云计算架构130的图。该架构可以包括云132。云132可以包括一个或多个私有云、公共云和/或混合云。此外,云132可以包括云元件134-144。云元件134-144可以包括例如服务器134、虚拟机(vm)136、一个或多个软件平台138、应用或服务140、软件容器142和基础设施节点144。基础设施节点144可以包括各种类型的节点,例如计算节点、存储节点、网络节点、管理系统等。在一个示例中,一个或多个服务器134可以实现控制器102的功能,这将在下面描述。可选地,控制器102可以是与云计算架构130的组件进行通信的单独组件,该云计算架构130用作类似于分布式流化系统120的分布式流式传输系统。

云132可以经由云元件134-144来提供各种云计算服务,例如软件即服务(saas)(例如,协作服务、电子邮件服务、企业资源规划服务、内容服务、通信服务等)、基础设施即服务(iaas)(例如,安全服务、联网服务、系统管理服务等)、平台即服务(paas)(例如,web服务、流式传输服务、应用开发服务等)、功能即服务(faas)以及其他类型的服务(例如,桌面即服务(daas))、信息技术管理即服务(itaas)、受管理的软件即服务(msaas)、移动后端即服务(mbaas)等。

客户端端点146可以与云132连接以从云132获得一个或多个特定服务。客户端端点146可以经由一个或多个公共网络(例如,互联网)、专用网络和/或混合网络(例如,虚拟专用网络)与元件134-144进行通信。客户端端点146可以包括具有联网能力的任何设备,例如膝上型计算机、平板计算机、服务器、台式计算机、智能电话、网络设备(例如,接入点、路由器、交换机等)、智能电视、智能汽车、传感器、gps设备、游戏系统、智能可穿戴对象(例如,智能手表等)、消费者对象(例如,互联网冰箱、智能照明系统等)、城市或运输系统(例如,交通控制、收费系统等)、物联网(iot)设备、相机、网络打印机、运输系统(例如,飞机、火车、摩托车、船等)或者任何智能或连接的对象(例如,智能家庭、智能建筑、智能零售、智能眼镜等)等。

图1c示出了示例雾计算架构150的示意图。雾计算架构150可以包括云层154,其包括云132和任何其他云系统或环境;以及雾层156,其包括雾节点162。客户端端点146可以与云层154和/或雾层156通信。架构150可以包括云层154、雾层156和客户端端点146之间的一个或多个通信链路152。通信可以向上流动到云层154和/或向下流动到客户端端点146。

在一个示例中,一个或多个服务器134可以实现控制器102的功能,这将在下面描述。可选地,控制器102可以是与雾计算架构150的用作类似于分布式流化系统120的分布式流式传输系统的组件进行通信的单独组件。

雾层156或“雾”提供了传统云网络的计算、存储和联网能力,但更接近端点。雾因此可以将云132扩展为更靠近客户端端点146。雾节点162可以是雾网络的物理实现方式。此外,雾节点162可以向客户端端点146提供本地或区域服务和/或连接性。结果,业务和/或数据可以从云132卸载到雾层156(例如,经由雾节点162)。雾层156因此可以以较低的延迟向客户端端点146提供更快的服务和/或连接性,以及其他优点,例如来自将数据保持在(一个或多个)本地或区域网络内的安全益处。

雾节点162可以包括任何联网的计算设备,例如服务器、交换机、路由器、控制器、相机、接入点、信息亭、网关等。此外,雾节点162可以被部署在具有网络连接的任何地方,例如工厂地板、电线杆、铁路轨道旁边、载具中、石油钻塔上、机场中、飞机上、购物中心中、医院中、公园中、停车库中、图书馆中等。

在一些配置中,一个或多个雾节点162可以被部署在雾实例158、160内。雾实例158、160可以是本地或区域云或网络。例如,雾实例160、158可以是区域云或数据中心、局域网、雾节点162的网络等。在一些配置中,一个或多个雾节点162可以被部署在网络内,或者例如被部署为独立的或单独的节点。此外,雾节点162中的一个或多个雾节点可以经由各种拓扑结构(包括例如星形、环形、网状或分层布置)中的链路164彼此互连。

在一些情况下,一个或多个雾节点162可以是移动雾节点。移动雾节点可以移动到不同的地理位置、逻辑位置或网络、和/或雾实例,同时保持与云层154和/或端点146的连接性。例如,可以将特定雾节点放置在诸如飞机或火车之类的载具中,该载具可以从一个地理位置和/或逻辑位置行进至不同的地理位置和/或逻辑位置。在该示例中,特定雾节点可以在位于起始位置处时利用云154连接到特定物理和/或逻辑连接点,并且在位于目的地位置处时利用云154切换到不同的物理和/或逻辑连接点。因此,特定雾节点可以在特定云和/或雾实例内移动,并且因此在不同的时间处为来自不同位置的端点服务。

图1d示出了示例网络架构180的示意性框图。在一些情况下,架构180可以包括数据中心,其可以支持和/或托管云132。此外,架构180包括网络结构182,该网络结构182具有连接至网络结构182中的叶节点(leaf)186a、186b、186c、...、186n(统称为“186”)的主干184a、184b、…、184n(统称为“184”)。主干184和叶节点186可以是第2层和/或第3层设备,例如交换机或路由器。为了清楚起见,它们在本文中将被称为主干交换机184和叶节点交换机186。

主干交换机184连接到结构182中的叶节点交换机186。叶节点交换机186可以包括访问端口(或非结构端口)和结构端口。结构端口可以向主干交换机184提供上行链路,而访问端口可以向结构182提供用于设备、主机、端点、vm或外部网络的连接性。

叶节点交换机186可以驻留在结构182与租户或客户空间之间的边界处。叶节点交换机186可以路由和/或桥接租户分组并且应用网络策略。在一些情况下,叶节点交换机可以执行一个或多个附加功能,例如实现映射缓存、在缓存中存在未命中时将分组发送到代理功能、封装分组、强制执行入口或出口策略等。

此外,叶节点交换机186可以包含虚拟交换和/或隧道功能,例如虚拟隧道端点(vtep)功能。因此,叶节点交换机186可以将结构182连接到覆盖(例如,vxlan网络)。

结构182中的网络连接性可以流动通过叶节点交换机186。叶节点交换机186可以为服务器、资源、端点、外部网络、容器或vm提供对结构182的访问,并且可以将叶节点交换机186连接到彼此。叶节点交换机186可以将应用和/或端点组(“epg”)连接到结构182的内部或外部的其他资源以及任何外部网络。

端点192a-192d(统称为“192”)可以经由叶节点交换机186连接到结构182。例如,端点192a和192b可以直接连接到叶节点交换机186a,该叶节点交换机186a可以将端点192a和192b连接到结构182和/或任何其他叶节点交换机186。类似地,控制器102(其可以与上面参考图1a所述的控制器102相同)可以直接连接到叶节点交换机186c,其可以将控制器102连接到结构182和/或任何其他叶节点交换机186。另一方面,端点192c和192d可以经由网络188连接到叶节点交换机186a和186b。此外,广域网(wan)190可以连接到叶节点交换机186n。

端点192可以包括任何通信设备或资源,例如计算机、服务器、集群、交换机、容器、vm、虚拟应用等。在一些情况下,端点192可以包括被配置有将覆盖网络与结构182连接的虚拟隧道端点功能的服务器或者交换机。例如,在一些情况下,端点192可以表示具有虚拟隧道端点功能以及运行虚拟环境(例如,管理程序、(一个或多个)虚拟机、容器等)的主机(例如,服务器)。与端点192相关联的覆盖网络可以托管诸如服务器之类的物理设备;应用;epg;虚拟分段;虚拟工作负载;等等。类似地,端点192也可以托管虚拟工作负载和应用,其可以与结构182或者任何其他设备或网络(包括外部网络)连接。

现在,本公开转向图2和图3,其示出了示例网络设备和计算设备,例如,交换机、路由器、负载平衡器、客户端设备等等。

图2示出了根据本公开的一方面的适合于执行交换、路由、负载平衡和其他联网操作的示例网络设备。在一个示例中,网络设备200可以是控制器102和/或图1a的组件122中的任何一个组件。网络设备200包括中央处理单元(cpu)204、接口202和总线210(例如,pci总线)。当在适当的软件或固件的控制下动作时,cpu204负责执行分组管理、错误检测和/或路由功能。cpu204优选地在包括操作系统和任何适当的应用软件的软件的控制下完成所有这些功能。cpu204可以包括一个或多个处理器208,例如来自intelx86系列微处理器的处理器。在一些情况下,处理器208可以是用于控制网络设备200的操作的专门设计的硬件。在一些情况下,存储器206(例如,非易失性ram、rom等)也形成cpu204的一部分。然而,存在很多可以将存储器耦合到系统的不同的方式。

接口202通常作为模块化接口卡(有时被称为“线卡”)被提供。通常,它们控制数据分组通过网络的发送和接收并且有时支持与网络设备200一起使用的其他外围设备。在可以被提供的接口中有以太网接口、帧中继接口、电缆接口、dsl接口、令牌环接口等。另外,可以提供各种甚高速接口,例如快速令牌环接口、无线接口、以太网接口、千兆以太网接口、atm接口、hssi接口、pos接口、fddi接口、wifi接口、3g/4g/5g蜂窝接口、can总线、lora等。通常,这些接口可以包括适于与适当的介质进行通信的端口。在一些情况下,它们还可以包括独立处理器,并且在一些实例中,还可以包括易失性ram。独立处理器可以控制诸如分组交换、介质控制、信号处理、密码处理和管理之类的通信密集任务。通过为通信密集任务提供单独的处理器,这些接口允许主控微处理器204有效地执行路由计算、网络诊断、安全功能等。

尽管图2中所示的系统是本发明的一个特定网络设备,但是它绝不是可以在其上实现本发明的唯一网络设备架构。例如,通常使用具有处理通信以及路由计算等的单个处理器的架构。此外,也可以与网络设备200一起使用其他类型的接口和介质。

不管网络设备的配置如何,它都可以采用一个或多个存储器或存储器模块(包括存储器206),所述存储器或存储器模块被配置为存储用于通用网络操作的程序指令以及用于本文描述的漫游、路由优化和路由功能的机制。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器也可以被配置为存储诸如移动性绑定、注册和关联表等之类的表。存储器206还可以保持各种软件容器以及虚拟化执行环境和数据。

网络设备200还可以包括专用集成电路(asic),其可以被配置为执行路由和/或交换操作。例如,asic可以经由总线210与网络设备200中的其他组件进行通信,以交换数据和信号并且协调由网络设备200进行的各种类型的操作,例如路由、交换和/或数据存储操作。

图3示出了根据本公开的一方面的计算系统架构。如图3所示,系统300的组件使用诸如总线之类的连接305彼此电通信。示例性系统300包括处理单元(cpu或处理器)310和系统连接305,其将包括系统存储器315(例如,只读存储器(rom)320和随机存取存储器(ram)325)的各种系统组件耦合到处理器710。系统300可以包括高速存储器的缓存,该高速存储器的缓存与处理器310直接地连接、极为接近处理器310、或被集成为处理器310的一部分。系统300可以将数据从存储器315和/或存储设备330复制到缓存312以供处理器310进行快速访问。以这种方式,缓存可以提供性能提升,这避免处理器310在等待数据的同时延迟。这些和其他模块可以控制或者被配置为控制处理器310来执行各种动作。其他系统存储器315也可以可供使用。存储器315可以包括具有不同性能特性的多种不同类型的存储器。处理器310可以包括被配置为控制处理器310的任何通用处理器和硬件或软件服务,例如被存储在存储设备330中的服务1332、服务2334和服务3336,以及软件指令被并入到实际处理器设计中的专用处理器。处理器310可以是包含多个核心或处理器、总线、存储器控制器、缓存等的完全自含式计算系统。多核心处理器可以是对称的或不对称的。

为了使得用户能够与计算设备300交互,输入设备345可以表示任何数量的输入机制,例如用于演讲的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、演讲等。输出设备335也可以是为本领域的技术人员已知的许多输出机制中的一种或多种输出机制。在一些实例中,多模态系统可以使得用户能够提供多种类型的输入来与计算设备300进行通信。通信接口340通常可以统治和管理用户输入和系统输出。对在任何特定硬件布置上的操作没有限制,并且因此基本特征这里可以容易地随着改进的硬件或固件布置被开发而被它们所取代。

存储设备330是非易失性存储器并且可以是可以存储可由计算机访问的数据的硬盘或其他类型的计算机可读介质,例如磁盒、闪速存储器卡、固态存储器设备、数字通用盘、盒、随机存取存储器(ram)325、只读存储器(rom)320及其混合物。

存储设备330可以包括用于控制处理器310的服务332、334、336。其他硬件或软件模块被设想到。存储设备330可以被连接到系统连接305。在一个方面中,执行特定功能的硬件模块可以包括被存储在计算机可读介质中的软件组件,其与诸如处理器310、连接305、输出设备335等之类的必要硬件组件相结合,以执行该功能。

图4示出了根据本公开的一方面的提供服务的容器的示例系统。

根据图4,物理主机400(其可以是图1b中所示的服务器134、vm136、软件平台138、应用140、容器142和/或基础设施节点144中的任何一个)具有物理端口402,实时网络业务(例如,数据分组)通过该物理端口402经由云132到达物理主机400以被处理。物理主机400可以具有contiv主机代理404。contiv主机代理404(以下称为contiv404)是经由物理主机400的一个或多个处理器实现的,用于在物理主机400上递送/部署微服务。众所周知,contiv404是用于微服务的网络抽象层,其中微服务的示例是服务功能(sf)(其也可以被称为容器)406、408、410和412。

如图4所示,contiv404可以具有去往和来自容器406-412的一个或多个虚拟输入/输出端口,例如到容器406的vport1、到容器408的vport11、到容器410的vport12、以及到容器412的vport13。容器406-412中的每个容器可以具有相关联的虚拟端口(eth0),用于经由contiv404的相应vport与contiv404交换网络业务(数据分组)。在容器406-412的一个非限制性示例中,如图4中所示,容器406是服务功能转发器(sff),其实现用于转发/负载平衡提供特定服务功能的容器之间的网络业务的策略。在另一示例中,不存在sff/容器406,而是contiv404执行sff/容器406的功能。此外,并且根据同一非限制性示例,容器408和410可以是提供一个或多个服务功能(例如,防火墙服务)的生产容器。因此,可以认为容器408和410形成了防火墙集群。最后,并且根据同一非限制性示例,容器412是非生产容器(例如,处于测试模式的容器,在作为防火墙集群的一部分被移到生产之前,该容器将被验证)。如以下将描述的,本公开的示例使得能够使用在物理端口402处接收的实时网络业务,以便测试/验证非生产容器412的策略/功能/性能。

尽管图4示出了各种类型或功能的特定数量的容器(例如,sff、生产容器、非生产容器等),但是本发明构思不限于此。此外,虽然图4中未示出,但是作为相同服务功能(例如,上述防火墙集群示例)的一部分的每个和每一容器均不需要被托管在相同的物理主机400上,而是可以跨越可以位于不同地理位置的两个或更多个物理主机。

在下文中,将描述使用实时网络业务来验证处于测试模式(非生产模式)的容器的性能的过程。

图5描述了根据本公开的一个方面的复制实时网络业务以验证容器性能的方法。图5是参考图4描述的,并且是从图4的contiv404的角度来看的。然而,将理解的是,执行计算机可读指令以用作contiv404的一个或多个处理器执行图5的过程。

在s500处,contiv404(其也可以被称为控制器404)经由云132在物理端口402处接收实时网络业务。众所周知,实时网络业务作为一个或多个数据分组(传入数据分组)到达物理端口402处。

在s501处,contiv404在生产容器(例如,图4的容器408和410)之间执行负载平衡,以服务传入的数据分组(例如,提供以上参考图4描述的防火墙服务)。

在s502处,contiv404确定是否要复制传入数据分组。在一个示例中,contiv404通过访问存储在与contiv404相关联的存储器中的表来确定待复制的传入数据分组,该表标识需要验证/测试的非生产容器。这种表的示例在图6中示出。图6中所示的表600是标识在物理主机400上实例化的每个容器的细节的表。表600可以被称为contiv服务模块/数据库,并且如图所示,包括每个容器的细节,包括但不限于每个容器的微服务类型(例如,集群id、ip地址、端口等),以及附加详细信息,例如容器是处于测试(非生产)模式下还是处于生产模式中。从表600中还可以看出,contiv服务模块包括每个容器的指示是否需要对其进行验证的条目。在图6的示例中,表600指示容器412(sf3)需要验证,并且处于非生产模式中(在分段列下被标识)。因此,在s502处并且基于表600,contiv404确定需要复制(一个或多个)传入数据分组以验证非生产容器412的性能。此外,表600示出了哪些传入网络业务(数据分组)将被复制。例如,在标题为“需要复制”的列下,示出了去往容器408的、在vport11处的传入数据分组要被复制。

如果在s502处,contiv404确定表600中没有容器被标识为处于需要验证的非生产模式中,则过程返回到s500。

在s502处,在确定传入数据分组要被复制之后,在s504处,contiv404复制传入数据分组,其在表600的示例中将是在vport11处去往容器408的传入数据分组。

在一个示例中,并且作为复制传入数据分组的一部分,contiv404利用测试标志(例如,将报头的参数设置为1)来标记复制的数据分组的报头(网络服务报头、srv6报头、新ipv6报头等)。

此后,在s506处,contiv404将已标记了测试标志的复制的数据分组经由vport13发送到非生产容器(例如,图4的容器412)。在一个示例中,当非生产容器不在其上运行contiv404的同一物理主机400上托管时,contiv404制定覆盖(例如,vxlan),用于将复制的和标记的数据分组转发到其上托管和实例化了非生产容器的物理主机。

在s508处,contiv404在如图4所示的相应vport处从包括诸如容器412之类的(一个或多个)非生产容器的容器接收回数据分组。

在s510处,contiv404检查接收到的数据分组以确定其报头是否指示接收到的数据分组是用于容器验证的测试数据分组(例如,如果网络服务报头位、srv6报头位、新的ipv6报头位等被设置为1)。

如果在s510处,contiv404确定接收到的数据分组不是测试数据分组,则在s511处,contiv404正常地处理接收到的数据分组(例如,将接收到的数据分组转发到物理端口402以经由云132发送回预期目的地和/或将数据分组转发到其他容器/vm等以供进一步处理)。

然而,如果在s510处,contiv404确定接收到的数据分组是测试数据分组,则在s512处,contiv404存储接收到的数据分组(例如,存储在与contiv404相关联的存储器中)。

此后,在s514处,contiv404丢弃在s508处接收的数据分组。

在s516处,contiv404确定是否继续进行非生产容器的测试,这指示需要复制更多实时传入数据分组。该确定可以是基于指定的时间量的,根据该指定的时间量,在做出最终确定以将特定非生产容器移至生产之前,要测试该特定非生产容器。这可以是用户指定的和可配置的时间段。

如果在s516处,contiv404确定要执行更多测试,则过程返回至s500,并且contiv404重复s500至s514。然而,如果在s516处,contiv404确定不需要进行更多测试,则在s518处,contiv404分析在s512处存储的接收到的数据分组,以确定是否可以验证非生产容器的性能。在一个示例中,contiv404确定接收到的数据分组是否在预期的服务水平协议(sla)内。如果接收到的数据分组在预期的sla内,则contiv404确定应当将非生产容器412投入生产(例如,连同图4的容器408和410一起作为防火墙集群示例的一部分)。

此后,在s520处,contiv404更新其策略(例如,转发规则),以便传入数据分组的复制被停止,并且还将任何新的传入数据分组发送到提供特定服务功能(防火墙服务)的容器412以及容器408和410。将传入数据分组转发给容器408-412可以是基于要由contiv404在可用生产容器之间执行的任何底层负载平衡的。

在以上参考图5描述的示例中,contiv404作为sff进行操作。然而,在另一示例中,contiv404可以不作为sff进行操作,而是图4的容器406是sff。因此,在s500处接收到传入数据分组后,contiv404将接收到的传入数据分组发送到容器406,其中容器406执行s501的负载平衡以及在s502和s504处复制和标记传入数据分组的过程。然后将复制的和标记的传入数据分组发送回contiv404,用于以与上面参考s506描述的方式相同的方式转发到非生产容器。此后,contiv404执行s508至s520,如上所述。

图7示出了根据本公开的一个方面的图5的容器验证过程的示例。

如图7所示,contiv404作为sff进行操作,并且因此相对于图4,不包括容器406。此外,物理主机400、contiv404、容器408、410和412与上面参考图4描述的物理主机400、contiv404、容器408、410和412相同。

如在s500中,在物理端口402处经由云132来接收传入数据分组。传入数据分组具有包括有效载荷702、网络服务报头(nsh)704和ip报头706的格式700。

如在s501中,contiv404将传入数据分组700经由vport11发送到容器408以供处理。如以上参考s502所述,在确定要复制传入数据分组700以测试非生产容器412之后,contiv404复制传入数据分组700以生成复制的数据分组710,并且还在其nsh报头(或者可选地srv6或ipv6报头)中利用测试标志来标记复制的数据分组。因此,如图7所示,复制的数据分组710具有相同的有效载荷702和ip报头706,但是具有修改的nsh报头(或者可选地srv6或ipv6报头)712,其中测试标志被设置为1,指示数据分组被复制以测试非生产容器412。然后,如参考图5的s506所述,contiv404经由相应vport13将复制的和标记的数据分组710发送到非生产容器412。

虽然图7中未示出,但是在从容器412接收回复制的数据分组710之后,contiv404执行s508-s520,如以上参考图5所述。

图8示出了根据本公开的一个方面的图5的容器验证过程的示例。

如图8所示,物理主机400具有示为容器404的sff(如以上参考图4所述)。因此,contiv404不作为sff进行操作。此外,物理主机400、contiv404、容器408、410和412与以上参考图4所述的物理主机400、contiv404、容器408、410和412相同。

传入数据分组700与上面参考图7所述的传入数据分组700相同。首先,在物理端口402处经由云132来接收传入数据分组700。contiv404将传入数据分组700转发给用作sff的容器406。容器406在执行负载平衡之后,可以将传入数据分组700发送到容器406以供处理。

在确定容器412处于用于测试的非生产模式时,根据上述s502,容器406以与上面参考图5和图7所述的相同的方式来复制和标记传入数据分组700(生成复制的数据分组710)。此后,contiv404将复制的数据分组710发送给容器412以供测试。此外,并且如图8所示,contiv404从容器412接收回复制的数据分组710,在该点处,因为contiv404检测到nsh报头(或可选地srv6、或ipv6报头)712中的测试标志被设置为1,所以contiv404丢弃复制的数据分组710。

虽然图8中未示出,但是在从容器412接收回复制的数据分组710并且丢弃复制的数据分组710之后,contiv404执行s510-s520,如以上参考图5所述。

公开了用于使用实时网络业务来验证容器、虚拟机、裸机等的(一个或多个)策略配置的系统、方法和计算机可读介质。在本公开的一个方面中,一种方法,包括:在控制器处接收去往一个或多个容器的传入数据分组;在控制器处复制用于对至少一个非生产容器进行验证的传入数据分组,从而产生复制的数据分组;将复制的数据分组发送到至少一个非生产容器;以及在控制器的相应传入端口处丢弃从至少一个非生产容器接收的任何数据分组。

为了解释的清楚,在一些实例中,本技术可以被呈现为包括单独的功能块,所述单独的功能块包括含有设备、设备组件、以软件或者硬件和软件的组合的方式体现的方法中的步骤或例程的功能块。

在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当被提及时,非暂态计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。

可以使用被存储或者以其他方式从计算机可读介质获得的计算机可执行指令来实现根据上述示例的方法。这样的指令可以包括例如引起或者以其他方式配置通用计算机、专用计算机或专用处理设备以执行某个功能或一组功能的指令和数据。可以通过网络来访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制、诸如汇编语言之类的中间格式指令、固件或源代码。可以被用于存储指令、所使用的信息和/或在根据描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪速存储器、配备有非易失性存储器的usb设备、联网存储设备等。

实现根据这些公开的方法的设备可以包括硬件、固件和/或软件,并且可以采取各种形式因数中的任一种形式因数。此类形式因数的典型示例包括膝上型计算机、智能电话、小形式因数个人计算机、个人数字助理、机架安装设备、独立设备等。也可以将本文描述的功能性具体实现在外围设备或附加卡中。通过其他示例的方式,还可以在不同芯片当中的电路板上或者在单个设备中执行的不同过程上实现这种功能性。

指令、用于传达此类指令的介质、用于执行它们的计算资源以及用于支持此类计算资源的其他结构是用于提供这些公开中描述的功能的设备。

尽管使用各种示例和其他信息来解释所附权利要求的范围内的各方面,然而不应该基于此类示例中的特定特征或布置来暗示对权利要求的限制,因为本领域的普通技术人员将能够使用这些示例来导出各种实现方式。进一步地并且尽管可能已用特定于结构特征和/或方法步骤的示例的语言描述了一些主题,但是应当理解的是,所附权利要求中定义的主题不一定限于这些描述的特征或行为。例如,可以在除了本文标识的那些组件以外的组件中不同地分配或者执行这种功能性。相反,所描述的特征和步骤作为在所附权利要求的范围内的系统的组件和方法的示例被公开。

引用“…中的至少一个”的权利要求语言指代集合中的至少一个并且指示该集合的一个成员或该集合的多个成员满足权利要求。例如,引用“a和b中的至少一个”的权利要求语言指代a、b、或者a和b。

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