针对数据密集型工作负载进行跨云资源放置的系统和方法

文档序号:1367256 发布日期:2020-08-11 浏览:17次 >En<

阅读说明:本技术 针对数据密集型工作负载进行跨云资源放置的系统和方法 (System and method for cross-cloud resource placement for data intensive workloads ) 是由 戴博乔提·杜塔 黄昕元 于 2018-12-19 设计创作,主要内容包括:公开了用于针对多云环境中的工作负载和资源放置来确定云上的传递点(POD)设备或网络组件的系统、方法、计算机可读介质。一种方法,包括:确定用于从对输入数据执行第一功能转换到对第一功能的第一结果执行第二功能的第一数据量;确定用于从对第一结果执行第二功能转换到对第二功能的第二结果执行第三功能的第二数据量;确定在其上实现第一功能和第三功能的一个或多个网络节点中的每个网络节点的处理能力;以及基于第一数据量、第二数据量以及网络节点中的每个网络节点的处理能力,来选择网络节点以用于实现第二功能。(Systems, methods, computer-readable media are disclosed for determining a point of delivery (POD) device or network component on a cloud for workload and resource placement in a multi-cloud environment. A method, comprising: determining a first amount of data for transitioning from performing a first function on input data to performing a second function on a first result of the first function; determining a second amount of data for transitioning from performing the second function on the first result to performing a third function on a second result of the second function; determining a processing capability of each of one or more network nodes on which the first function and the third function are implemented; and selecting a network node for implementing the second function based on the first amount of data, the second amount of data, and the processing capabilities of each of the network nodes.)

具体实施方式

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

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

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

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

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

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

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

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

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

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

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

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

在本公开的一个方面中,一种用于选择网络节点以实现网络功能的计算机实现的方法,包括:确定用于从对输入数据执行第一功能转换到对第一功能的第一结果执行第二功能的第一数据量;确定用于从对第一结果执行第二功能转换到对第二功能的第二结果执行第三功能的第二数据量;确定在其上实现第一功能和第三功能的一个或多个网络节点中的每个网络节点的处理能力(capacity);以及基于第一数据量、第二数据量以及网络节点中的每个网络节点的处理能力,来选择网络节点以用于实现第二功能。

在本公开的一个方面中,一种用于选择网络节点以实现网络功能的系统,包括:存储器,被配置为在其中存储计算机可读指令;以及一个或多个处理器,被配置为执行计算机可读指令以执行包括以下各项的功能:确定用于从对输入数据执行第一功能转换到对第一功能的第一结果执行第二功能的第一数据量;确定用于从对第一结果执行第二功能转换到对第二功能的第二结果执行第三功能的第二数据量;确定在其上实现第一功能和第三功能的一个或多个网络节点中的每个网络节点的处理能力;以及基于第一数据量、第二数据量以及网络节点中的每个网络节点的处理能力,来选择网络节点以用于实现第二功能。

在本公开的一个方面中,一种或多种非暂态计算机可读介质,在其中存储有计算机可读指令,这些计算机可读指令在由一个或多个处理器执行时,使得一个或多个处理器通过执行以下功能来选择网络节点以用于实现网络功能:确定用于从对输入数据执行第一功能转换到对第一功能的第一结果执行第二功能的第一数据量;确定用于从对第一结果执行第二功能转换到对第二功能的第二结果执行第三功能的第二数据量;确定在其上实现第一功能和第三功能的一个或多个网络节点中的每个网络节点的处理能力;以及基于第一数据量、第二数据量以及网络节点中的每个网络节点的处理能力,来选择网络节点以用于实现第二功能。

描述

所公开的技术解决了本领域中的以下需求:确定工作负载(资源)跨与不同的云相对应的网络组件的正确放置,以便提高基础工作负载的效率和处理速度,并且减少与工作负载和相关数据的云间迁移/转换/转移相关联的各种成本。

本公开开始于对能够被实现用于分布式流式传输系统的示例网络环境和架构的描述,如图1A-图1D和图2所示。

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

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

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

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

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

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

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

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

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

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

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

虽然某些组件被示出为系统100的一部分,但是系统100不限于此,并且可以包括用于向客户端和最终用户提供服务的任何其他类型的组件(例如,附加服务器、接入点、传感器等)。

分布式流式传输系统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中用作类似于分布式流式传输系统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。客户端端点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可以是本地或区域云或网络。例如,雾实例158和160可以是区域云或数据中心、局域网、雾节点162的网络等。在一些配置中,一个或多个雾节点162可以被部署在网络内,或者例如被部署为独立的或单独的节点。此外,雾节点162中的一个或多个雾节点可以以各种拓扑结构(包括例如星形、环形、网状或分层布置)经由链路164彼此互连。

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

图1D示出了示例网络架构(网络)180的示意性框图。在一些情况下,架构180可以包括数据中心,其可以支持和/或托管云132。此外,架构180包括网络结构182,该网络结构182具有连接至网络结构182中的叶节点(leaf)186A、186B、186C、...、186N(统称为“叶节点186”)的主干(spine)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,该叶节点交换机186C可以将控制器102连接到结构182和/或任何其他叶节点交换机186。另一方面,端点192C和192D可以经由网络188连接到叶节点交换机186A和186B。此外,广域网(WAN)190可以连接到叶节点交换机186N。

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

图2示出了根据本公开的一个方面的多云环境。多云环境200包括第一云环境205、第二云环境210、第三云环境215和客户端端点146。第一云环境205、第二云环境210和第三云环境215中的每一个可以与以上参考图1A-图1D描述的云132相同。此外,第一云环境205、第二云环境210和第三云环境215中的每一个可以具有云132的一个或多个元件(例如,服务器134、VM 136、软件平台138、应用140、容器142和基础设施节点144,如以上参考图1B所描述的)。

此外,第一云环境205、第二云环境210和第三云环境215中的每一个可以位于单独的地理位置中和/或可以由不同的云服务提供商操作。

客户端端点146与以上参考图1D描述的端点相同,因此为了简洁起见,将不再进一步描述。由一个或多个客户端端点(或第一云环境205、第二云环境210和第三云环境215的其他组件)请求的各种类型的工作负载可以在第一云环境205、第二云环境210和第三云环境215中的一个或多个处被接收以进行处理。

如将在下面描述的,将作为客户端端点和/或其他云网络组件所请求的工作负载的一部分而提供的各种应用处理和服务可以由第一云环境205、第二云环境210和第三云环境215中的同一云环境中的组件来提供,或可以由位于第一云环境205、第二云环境210和第三云环境215中的不同云环境中的不同组件来提供。因此,有必要确定以下内容:当作为所请求的服务或工作负载的一部分而从对基础数据执行的一个处理(功能)转到下一个处理(功能)时,将在哪个云环境(该云环境上的网络组件)上执行下一个功能或处理,使得与数据在多个云环境上从一个网络组件到下一个网络组件的转换/迁移相关联的成本被减少/最小化。这将参考图5和图6进一步描述。

在一个示例中并且尽管未在图2中示出,能够在第一云环境205、第二云环境210和第三云环境215中的一个或多个上实现的网络控制器可以被配置为管理多个云之间的工作负载分配,并且确定作为所请求的工作负载和处理的一部分而要执行的功能/处理链中的每个功能的目的地。这样的控制器可以例如与以上参考图1A描述的控制器102相同。

虽然图2示出了三个不同的云环境,但是本公开不限于此,并且可以存在其中执行各种功能的更多或更少数目的云环境。

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

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

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

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

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

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

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

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

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

如上所述,对于数据密集型工作负载(例如,日志处理工作负载),可以存在要对基础数据执行的几种功能。例如,在日志处理工作负载中,可以执行(实现、进行等)第一功能,该第一功能接收机器日志并且将机器日志转化为特定格式。第一功能可以被称为转化功能。可以执行第二功能以用于分析经转化的机器日志,其中分析可以包括过滤、模式识别等。第二功能可以被称为分析功能。可以执行第三功能以用于输出和存储经分析的机器日志。第三功能可以被称为输出或存储功能。

在一个场景中,在图2的云环境205中(或者替代地在云环境210和云环境215之一中)执行第一功能。然后,可以在与第一功能相同的云环境或不同的云环境中执行第三功能。然后,本公开涉及确定要在哪个云环境处执行中间功能(第二功能),使得与迁移数据(例如,上面示例中的经转化的机器日志)相关联的成本是最小化的(例如,无论第二功能是要在与第一功能和/或第三功能相同的云环境中执行,还是替代地要在不同的云环境中执行)。该过程可以被称为多云环境中的工作负载放置过程,也可以被称为多云环境中的功能放置过程。

在一个示例中,在特定云环境处执行功能旨在包括在作为特定云环境的一部分的网络节点处执行该功能。

在下文中,参考图5和图6描述用于在多云环境中进行工作负载放置的过程。

图5示出了根据本公开的方面的在多云环境中进行工作负载放置的方法。将从图1A的控制器(系统管理组件)102的角度来描述图5。然而,将理解,控制器102的一个或多个处理器(例如,处理器104)执行存储在一个或多个存储器(例如,存储器106)上的计算机可读指令,以将一个或多个处理器转变为(一个或多个)专用处理器以用于执行图5的功能和过程。

在S500处,控制器102接收对传入数据(例如,基础数据)(要对该传入数据实现特定功能集)的指示。例如,控制器102从数据源接收指示,指示传入数据将被发送到源功能(例如,上述示例的转化功能)以进行处理。数据源可以通信地耦合到在其上实现源功能的网络节点,并且数据源可以是例如数据库、网络网关、数据流流水线、一个或多个客户端端点(例如,客户端端点146)等等。在另一示例中,控制器102可以从在其上实现源功能的网络节点接收指示,其中网络节点发送指示在网络节点处从数据源接收到传入数据的指示。

该数据也可以被称为工作负载数据。工作负载数据可以是例如上述示例的机器日志。

在S502处,控制器102标识要对工作负载数据执行的功能。这些功能可以是例如上述示例的转化功能、分析功能、以及输出或存储功能。在下文中,第一功能也被称为源功能(Sc),第二功能也被称为中间功能(f(x)),并且第三功能也被称为宿(sink)功能(Si)。

在S504处,控制器102配置数据源以将S500的工作负载数据发送到云环境(例如,云环境中的网络节点)以用于在其上执行第一功能。例如,如果第一功能将由云环境205中的应用140来实现,则控制器102可以向数据源发送命令,该命令指引数据源将S500的工作负载数据发送到云环境205,并且更具体地,发送到云环境205中实现应用140的服务器134。

在对工作负载数据执行第一功能时,在S506处,控制器102确定第一功能与第二功能之间(源功能与中间功能之间)的平均数据流量数量。该平均数据流量数量可以被称为第一数据量。

在一个示例中,源功能Sc与中间功能f(x)之间的第一数据量被表示为w(Sc,f(x))。第一数据量的值可以例如用每秒消息数(messages per second)来表示。控制器102根据任何已知的或待开发的方法来确定第一数据量。

在S508处,控制器102确定第二功能与第三功能之间(中间功能与宿功能之间)的平均数据流量数量。该平均数据流量数量可以被称为第二数据量。

在一个示例中,中间功能f(x)与宿功能Si之间的第二数据量被表示为w(f(x),Si)。第二数据量的值可以例如用每秒消息数来表示。控制器102根据任何已知的或待开发的方法来确定第二数据量。

在S510处,控制器102确定第一功能Sc和第三功能Si是否在同一云环境中(例如,在属于云环境205、210或215中的同一云环境的(一个或多个)网络节点处被执行)。

如果在S510处,控制器102确定第一功能Sc和第三功能Si在同一云环境中,则在S512处,控制器102确定在其上实现第一功能Sc和第三功能Si的同一云环境的能力。该能力可以是云环境(或同一云环境的(一个或多个)相应网络节点)的处理能力。该能力可以用CR_k表示,其中k是标识特定云环境的索引(例如,k可以是与图2的云环境205、210和215之一相对应的205、210和215)。

在S514处,控制器102确定CR_k是否等于或大于第一数据量w(Sc,f(x))和第二数据量w(f(x),Si)中的最小值。在一个示例中,对CR_k等于或大于第一数据量和第二数据量中的最小值的要求确保功能被执行,使得云提供商与相应客户端(针对该相应客户端,工作负载处理正在被执行)之间的特定服务水平协议(SLA)被满足。

如果在S514处,控制器102确定CR_k等于或大于第一数据量和第二数据量中的最小值,则在S516处,控制器102确定中间功能(第二功能f(x))将在与在其上实现源功能Sc和宿功能Si的云环境相同的云环境(例如,云环境205、210和215之一)上被执行/实现。此后,过程进行到S532和S534,如将在下面进一步描述的。

然而,如果在S514处,控制器102确定CR_k小于第一数据量和第二数据量中的最小值,则在S518处,控制器102选择另一云环境以用于在其上实现第二功能。该所选云环境也可以被称为所选传递点(POD)。在一个示例中,在S518处选择的云环境是满足两个条件的云环境。第一条件是:所选云环境的相应CR_k等于或大于第一数据量和第二数据量中的最小值。第二条件是:将第一功能的输出(第一功能的结果)从在其上实现第一功能的云环境(C_Sc)迁移(转换)到要在其上实现第二功能的所选云环境(C_f(x))的成本(成本的总和、总成本等)(其中成本函数可以被表示为C(C_Sc,C_f(x)))和将第二功能的输出(第二功能的结果)从在其上实现第二功能的云环境(C_f(x))迁移(转换)到在其上实现第三功能的云环境(C_Si)的成本(其中成本函数可以被表示为C(C_f(x),C_Si))在与将第一功能的输出从C_Sc和(还有)将第二功能的输出从C_f(x)分别迁移到要在其上实现第一功能(源功能)和/或第二功能(中间功能)的任何其他云环境相关联的所有成本中是最小化的。此后,过程进行到S532和S534,如将在下面进一步描述的。

参考回S510,如果控制器102确定第一功能(源功能Sc)和第三功能(宿功能Si)不在同一云环境上实现,则在S520处,控制器102用以上关于S512描述的相同方式来确定CR_Sc和CR_Si。

此后,在S522处,控制器102确定CR_Sc是否等于或大于第一数据量和第二数据量中的最小值。如果在S522处,控制器102确定CR_Sc等于或大于第一数据量和第二数据量中的最小值,则在S524处,控制器102选择与在其上实现源功能Sc的云环境(源功能云环境)相同的云环境以用于实现中间功能f(x)。此后,过程进行到S532和S534,如将在下面进一步描述的。

然而,如果在S522处,控制器102确定CR_Sc小于第一数据量和第二数据量中的最小值,则在S526处,控制器102确定在其上实现宿功能的云环境的处理能力(CR_Si)是否等于或大于第一数据量和第二数据量中的最小值。

如果在S526处,控制器102确定CR_Si等于或大于第一数据量和第二数据量中的最小值,则在S528处,选择与在其上实现宿功能Si的云环境(宿功能云环境)相同的云环境以用于实现中间功能f(x)。此后,过程进行到S532和S534,如将在下面进一步描述的。

然而,如果在S526处,控制器102确定CR_Si小于第一数据量和第二数据量中的最小值,则在S530处,控制器102用上述S518中的相同方式来选择另一云环境以用于在其上实现第二功能。该所选云环境也可以被称为所选传递点(POD)。在一个示例中,在S530处选择的云环境是满足两个条件的云环境。第一条件是:所选云环境的相应CR_k等于或大于第一数据量和第二数据量中的最小值。第二条件是:将第一功能的输出(第一功能的结果)从在其上实现第一功能的云环境(C_Sc)迁移到要在其上实现第二功能的所选云环境(C_f(x))的成本(其中成本函数可以被表示为C(C_Sc,C_f(x)))在与将第一功能的输出从C_Sc迁移到要在其上实现第二功能的任何其他云环境相关联的所有成本中是最小化的。此后,过程进行到S532和S534,如将在下面进一步描述的。

在S532处并且在选择用于在其上实现中间功能的适当云环境(所选POD)时,控制器102配置源功能(例如,向在其上实现源功能的网络节点发送命令)以将第一功能的结果(输出)发送到用于在其上实现中间功能的所选适当云环境(该所选适当云环境可以与在其上执行源功能的云环境相同或不同)。

在对第一功能的结果实现中间功能时,在S534处,控制器102配置中间功能(例如,向在其上实现中间功能的网络节点发送命令)以将中间功能的结果(输出)发送到在其上执行宿功能的云环境(该云环境可以与在其上执行中间功能的云环境相同或不同)。此后,过程结束。

可以理解,虽然已经参考其中要执行三个功能的示例描述了图5,但是本公开不限于此。例如,可以有一个以上的中间功能(总共4个功能、5个功能等)。相应地,控制器102实现图5的过程以用于针对每个中间功能选择云环境,其中对于每个中间功能,紧接在前的功能是源功能,而宿功能对于所有中间功能则保持相同。

在描述了选择用于工作负载放置的云环境的过程之后,可以存在如下实例:其中将在特定时间点(预定时间点或简单的预定时间)处对数据元组执行功能(例如,源功能、中间功能和宿功能)。

例如,将备份搜索作为工作负载的特定示例(其可以具有作为整个处理的一部分来执行的若干功能),这些功能可以被安排为每12小时、每24小时等执行一次。

然而,如果控制器102一直等到接收到特定时间点为止的所有工作负载数据,之后才对工作负载数据实现功能,则可能涉及高数据流量,这使得应用图5的过程更具挑战性并且更难。

因此,本公开包括一种过程,在该过程中,在开始接收工作负载数据与预定时间点之间的指定时间点(多个目标时间)处对接收到的工作负载数据实现功能(例如,备份搜索的功能)。在备份搜索的示例中,这些指定时间点可以是12:00AM至11:59PM之间的每3小时、或12:00AM至11:59AM之间的每6小时,等等。

根据该过程,临时保存在每个指定时间点处实现功能的结果。在到达预定时间点时,确定数据是否已被改变。如果数据被改变,则可以丢弃临时存储结果,并且可以对直到预定时间点为止接收到的工作负载数据整体执行功能。然而,如果工作负载数据未被改变,则可以在预定时间点处通过功能来仅处理工作负载数据的未经处理的部分,其结果加上指定时间点处的临时存储结果。针对特定工作负载的这种功能碎片化实现可以减少数据流量数量,并且可以提高图5的云环境选择过程的性能。下面参考图6进一步描述该过程。

图6示出了根据本公开的方面的在多云环境中进行工作负载放置的方法。将从图1A的控制器(系统管理组件)102的角度来描述图6。然而,将理解,控制器102的一个或多个处理器(例如,处理器104)执行存储在一个或多个存储器(例如,存储器106)上的计算机可读指令,以将一个或多个处理器转变为(一个或多个)专用处理器以用于执行图6的功能和过程。

在S600处,控制器102用以上参考S500描述的相似方式来接收对传入工作负载数据(或其部分)的指示。在一个示例中,工作负载数据被定义为由D(t)=[d-0,d-1,d-2,…,d-t]表示的批处理(batch),其中0,1,2,…,t中的每一个表示指定时间点。在一个示例中,“T”可以表示如上所述的预定时间段。因此,d-0是直到第一指定时间点0为止接收到的工作负载数据块,d-1是在第一指定时间点0与第二指定时间段1之间接收到的数据块等等。d-0、d-1、d-2至d-t可以被称为多个数据段。

在S602处,控制器102确定是否到达指定时间点,例如,指定时间点0、1、2等之一。如果控制器102确定未到达指定时间点,则过程返回到S600,并且控制器102继续接收工作负载数据,直到到达指定时间点为止。

如果在S602处,控制器102确定到达指定时间点,则在S604处,控制器102实现图5的过程以用于选择用于工作负载放置的云环境,并且配置与第一功能、第二功能和第三功能相对应的网络节点(例如,向这些网络节点发送命令)以对与所到达的指定时间点相对应的数据块实现相应功能(例如,上述的源功能、中间功能和宿功能)。例如,在到达指定时间点0时,控制器102实现图5的过程以确定用于实现中间功能f(x)的云环境,并且然后对数据块d-0实现源功能、中间功能和宿功能。

此后,在S606处,控制器102(在相关联的存储器中)临时存储对与所到达的指定时间点相对应的数据块实现功能的结果(例如,对d-0实现功能的结果)。该临时存储结果可以被表示为y’。

在一个示例中,每当控制器102重复S602至S606时,控制器102利用对最新工作负载数据块实现功能的新结果来更新y’。

在S608处,控制器102确定是否到达预定时间点。例如,这可以是时间T(例如,如上所述,每12小时执行搜索备份、每24小时执行一次搜索备份等)。如果控制器102在S608处确定未到达预定时间点,则过程返回至S600,并且控制器102重复S600至S608。

然而,如果在S608处,控制器102确定到达预定时间点,则在S610中处,控制器102确定工作负载数据是否被改变。在一个示例中,如果工作负载数据在预定时间段T(d-T)处是所有接收到的数据块的串联(即,D(T)=[D(t),[d-t+1,d-t+2,…,d-T]]),则控制器102确定工作负载数据未被改变。否则,控制器102确定工作负载数据在预定时间点处被改变。

如果在S608处,控制器102确定工作负载数据未被改变,则在S612处,控制器102实现图5的过程以用于将中间功能放置在云环境上,并且然后配置与第一功能、第二功能和第三功能相对应的网络节点(例如,向这些网络节点发送命令)以对在最后一次S604和S606被实现与预定时间段之间接收到的数据块实现功能(例如,上述的源功能、中间功能和宿功能)。该过程的结果可以被指定为y。

此后,在S614处,控制器102将y’(S606处的临时存储结果)和y进行组合以输出(和/或可选地存储)对所有多个数据块实现功能的结果。此后,过程结束,或替代地返回到S600,其中控制器102重复图6的过程。

然而,如果在S608处,控制器102确定工作负载数据已被改变,则在S616处,控制器102丢弃y’(S606处的临时存储结果)。然后在S618处,控制器102对工作负载数据整体(即,自控制器102在S600处开始接收工作负载数据的时间点起直到预定时间点T为止接收到的数据,并且包括在预定时间点T处接收到的数据)实现图5的过程,并且配置与第一功能、第二功能和第三功能相对应的网络节点(例如,向这些网络节点发送命令)以对工作负载数据整体实现相应功能(例如,上述的源功能、中间功能和宿功能)。

此后,在S620处,控制器102输出对工作负载数据整体实现功能的结果。此后,过程结束,或替代地返回到S600,其中控制器102重复图6的过程。

上面参考附图描述的示例提供了对现有方法和系统的一个或多个方面的改进以用于优化跨多个云(分布式云环境的网络)的工作负载放置。这种优化在现代软件服务的技术领域中起着重要作用,现代软件服务的许多组件具有复杂的依存关系并且以实时且分布式方式运行。对于使用这些服务的任何网络运营商而言,为了向其客户提供更好且更高效的服务,优化可用网络资源的使用并且降低相关联的成本是一个重要因素。例如,存在与在云网络内的特定位置处执行特定功能和/或将经处理的基础数据(或待处理数据)从一个云环境迁移到另一云环境相关联的成本,如上所述。对用于对基础数据实现网络功能的云环境进行盲目(随机)选择可能增加网络运营商的资源消耗和/或成本。因此,重要的是提供一种如上所述的用于确定用于对基础数据实现网络功能的云环境的方法,该方法改善网络资源消耗并且减少网络运营商的相关联成本。

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

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

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

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

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

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

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

31页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用投票机制确定车辆控制命令的可靠性

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!