一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式多环境流计算的制作方法

2022-06-18 01:03:00 来源:中国专利 TAG:

分布式多环境流计算


背景技术:

1.本发明通常上涉及流计算领域,并且更具体地涉及跨多个计算环境分发流计算作业。
2.流计算(也被重新称为“流处理”、“流式处理”、“多个流处理”等)是用于对数据的连续流(诸如来自传感器、相机、新闻馈送等的数据)执行查询的已知技术。在流处理作业中,运算符对数据流执行操作,其中,数据流内的单独数据片段通常被称为“元组”。运算符通常被包含在单独的执行单元内,有时被称为“处理单元”或“处理元件”。
3.流计算系统可在单个计算环境(诸如单个云计算环境或数据中心)中实现,并且也可在分布式环境中实现,其中流处理作业的各个部分(诸如处理元件)跨多个计算环境(诸如由不同的云供应商操作的多个云计算环境)分布。


技术实现要素:

4.根据本发明的方面,提供方法、计算机程序产品和/或系统,其执行以下操作(不必按以下顺序):(i)由流处理管理节点在流处理管理节点和在多环境计算系统中的相应计算环境上执行的多个流处理实例之间建立数据通信;(ii)由流处理管理节点将流处理作业的一个或多个处理单元分发到多个流处理实例中的第一组流处理实例;(iii)由流处理管理节点从第一组流处理实例的一个或多个流处理实例接收与流处理作业的一个或多个处理单元相关联的处理结果;以及(iv)由流处理管理节点至少部分地基于所接收的处理结果来执行基于机器学习的流管理操作。
附图说明
5.图1描绘了在根据本发明的系统的第一实施例中使用的云计算节点;
6.图2描绘了根据本发明的云计算环境(也被称为“第一实施例系统”)的实施例;
7.图3描绘了在第一实施例系统中使用的抽象模型层;
8.图4是示出至少部分地由第一实施例系统执行的第一实施例方法的流程图;
9.图5是示出第一实施例系统的机器逻辑(例如软件)部分的框图;
10.图6是描绘根据本发明的实施例的传统流计算系统的示例的图;并且
11.图7是描绘根据本发明的实施例的多云流计算环境的示例的图。
具体实施方式
12.流计算是用于近实时数据分析的不断发展的领域。许多现有的流计算服务和产品供应被设计成在单个环境(诸如特定的云计算环境或数据中心)中工作。然而,由于各种原因,企业或其他实体可选择在多云环境中运行工作负载。跨环境分布流计算工作负载允许企业利用来自不同供应商的能力来优化成本和性能,并且也通过冗余来增加可靠性。进一步,跨不同地理区域中的云数据中心分发流计算工作负载有助于满足数据主权要求,并且减少用户访问数据的等待时间。本发明的各个实施例提供流计算系统,该流计算系统被配
置成用于跨多个云环境部署、被修改以使用各种技术(包括机器学习)来管理、优化、改进流计算工作负载的问题确定以及增加流计算工作负载的弹性。
13.该具体实施方式部分被分成以下子部分:(i)硬件和软件环境;(ii)举例实施例;(iii)进一步评论和/或实施例;以及(iv)定义。
14.i.硬件和软件环境
15.本发明可以是处于任何可能的集成技术细节水平的系统、方法和/或计算机程序产品。该计算机程序产品可包括其上具有用于使处理器执行本发明的各个方面的计算机可读程序指令的计算机可读存储介质(或介质)。
16.计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、机械编码设备(诸如穿孔卡或具有记录在其上的指令的凹槽中的凸起结构)、以及前述各项的任何合适组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身(诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号)。
17.本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令用于存储在相应计算/处理设备内的计算机可读存储介质中。
18.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(诸如smalltalk、c 等)和过程式编程语言(诸如“c”编程语言或类似的编程语言)。计算机可读程序指令可完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的各个方面。
19.本文中参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图说明和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
20.这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处
理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个块中指定的功能/动作的装置。这些计算机可读程序指令也可以存储在计算机可读存储介质中,该计算机可读存储介质可以导引计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个方框中指定的功能/动作的各方面的指令。
21.计算机可读程序指令也可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个块中指定的功能/动作。
22.附图中的流程图和框图说明了根据本发明的各个实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个框可以代表模块、段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以作为一个步骤完成、同时地、基本同时地、以部分或全部时间上重叠的方式执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,该基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
23.预先理解的是,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
24.云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的、按需的网络访问,可以用最小的管理努力或与服务提供商的交互来快速配置和释放该可配置计算资源。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
25.特性如下:
26.按需自助服务:云消费者可以根据需要自动地单方面供应计算能力(如服务器时间和网络存储),而不需要与服务的提供商的人类交互。
27.广泛的网络接入:能力通过网络是可用的并且通过标准机制来访问,这些标准机制促进由异构的瘦或厚客户端平台(例如,移动电话、膝上计算机、和pda)的使用。
28.资源池:提供商的计算资源被池化以使用多租户模型服务于多个消费者,其中不同的物理和虚拟资源根据需要被动态地指派和重新指派。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制或知识,但可能能够在较高抽象水平(例如,国家、州或数据中心)处指定位置。
29.快速弹性:可以快速且弹性地供应能力(在一些情况下,自动地)以快速缩小并且快速释放以快速放大。对于消费者,可用于供应的能力通常显得不受限制,并且可以在任何时间以任何数量被购买。
30.测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账
户)的某个抽象水平处利用计量能力来自动控制和优化资源使用。资源使用可以被监控、控制和报告,从而为所利用的服务的提供商和消费者两者提供透明度。
31.服务模型如下:
32.软件即服务(saas):提供给消费者的能力是使用提供商在云基础设施上运行的应用。可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从各个客户端设备访问该应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个体应用能力的底层云基础设施,可能的例外是有限的用户特定的应用配置设置。
33.平台即服务(paas):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,这些应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
34.基础设施即服务(iaas):提供给消费者的能力是供应消费者能够部署和运行可包括操作系统和应用的任何软件的处理、存储、网络和其他基本计算资源。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
35.部署模型如下:
36.私有云:仅针对组织操作云基础设施。它可由组织或第三方管理,并且可存在于场所内或场所外。
37.社区云:云基础设施由若干组织共享并且支持具有共享的关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可由组织或第三方管理,并且可存在于场所内或场所外。
38.公共云:使云基础设施对公众或大型产业团体可用并且由销售云服务的组织拥有。
39.混合云:云基础设施是两个或更多个云(私有云、社区云或公共云)的组成部分,这些云保持唯一的实体但通过实现数据和应用便携性的标准化或专有技术(例如,用于云之间的负载均衡的云突发)被绑定在一起。
40.云计算环境是面向服务的,关注于无状态性、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
41.现在参见图1,示出了云计算节点的示例的示意图。云计算节点10仅是合适的云计算节点的一个示例,并且不旨在对在此描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够被实现和/或执行上文阐述的任何功能。
42.在云计算节点10中存在计算机系统/服务器12,其可与许多其他通用或专用计算系统环境或配置一起操作。可以适合于与计算机系统/服务器12一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境等。
43.计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象
数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实现,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。
44.如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28、以及将包括系统存储器28的各种系统组件耦合到处理器16的总线18。
45.总线18表示若干类型的总线结构中的任一种总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和外围组件互连(pci)总线。
46.计算机系统/服务器12通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器12访问的任何可用介质,并且它包括易失性和非易失性介质、可移除和不可移除介质两者。
47.系统存储器28可包括易失性存储器形式的计算机系统可读介质(诸如随机存取存储器(ram)30和/或高速缓存存储器32)。计算机系统/服务器12还可以包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统34用于从不可移除、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,可以提供用于从可移除的非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器以及用于从可移除的非易失性光盘(如cd-rom、dvd-rom或其他光学介质)读取或向其写入的光盘驱动器。在这样的实例中,每一个都可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有被配置为执行本发明的实施例的功能的一组程序模块(例如至少一个)。
48.具有一组(至少一个)程序模块42的程序/实用工具40以及操作系统、一个或多个应用程序、其他程序模块和程序数据可以通过示例而非限制的方式存储在存储器28中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一者或其某一组合可包括联网环境的实施例。程序模块42通常执行如本文所述的本发明的实施例的功能和/或方法。
49.计算机系统/服务器12也可以与一个或多个外部设备14(诸如键盘、定点设备、显示器24等、使用户能够与计算机系统/服务器12交互的一个或多个设备、和/或使计算机系统/服务器12能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等))通信。这样的通信可以经由输入/输出(i/o)接口22发生。再者,计算机系统/服务器12可以经由网络适配器20与一个或多个网络(诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网))通信。如图所示,网络适配器20经由总线18与计算机系统/服务器12的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部盘驱动阵列、raid系统、磁带驱动器和数据归档存储系统等。
50.现在参见图2,描绘了说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备(诸如个人数字助理(pda)或移动电话
54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n)可与云计算节点10通信。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络(诸如上文描述的私有云、社区云、公共云或混合云或其组合)中。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应理解,图2中所示的计算装置54a-n的类型仅旨在是说明性的,且计算节点10和云计算环境50可经由任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
51.现在参见图3,示出了由云计算环境50(图2)提供的一组功能抽象层。应预先理解,图3中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描绘的,提供了以下层和对应的功能:
52.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
53.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
54.在一个示例中,管理层80可提供下文所描述的功能。资源供应81提供用于执行云计算环境内的任务的计算资源和其他资源的动态获取。计量和定价82在云计算环境内利用资源时提供成本跟踪,并针对这些资源的消费进行计费或开票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份核实,以及对数据和其他资源的保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分发和管理,使得满足所需的服务水平。服务水平协议(sla)计划和履行85提供云计算资源的预安排和采购,根据sla预期该云计算资源的未来要求。
55.工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟教室教育交付93;数据分析处理94;事务处理95及流处理管理96,如下文将在本具体实施方式部分的以下子部分中详细讨论。
56.本文中所描述的程序是基于其在本发明的特定实施例中实施的应用来识别的。然而,应当理解,本文中的任何特定程序命名法仅为了方便而被使用,从而本发明不应限于仅在由这种命名法识别和/或暗示的任何特定应用中使用。
57.已经出于说明的目的呈现了本发明的各个实施例的描述,但并不旨在是穷尽性的或局限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此公开的实施例。
58.ii.举例实施例
59.图4示出了描绘根据本发明的方法的流程图250。图5示出了用于执行流程图250的至少一些方法操作的流处理管理96(参见图3)的程序300。现在将在以下段落的过程中广泛参见图4(对于方法操作块)和图5(对于软件块)来讨论该方法和相关联的软件。
60.一般而言,在此举例实施例中(在此子部分中也被称为“本实施例”、“本示例”、“本举例实施例”等),程序300(并且更广泛地,流处理管理96)执行与一个或多个流处理作业的执行相关的管理操作。流处理作业通常包括处理单元(或“处理元件”),该处理单元可被分发到在多环境计算系统(诸如具有由至少两个不同的云计算供应商提供的云计算环境的多云系统)的各种计算环境上执行的各种流处理实例。应当注意,为了帮助描述本发明的范围,在此出于示例目的使用该举例实施例。照此,其他实施例(诸如以下在进一步评论和/或实施例子部分中讨论的实施例)可以不同的方式配置或参考在该子部分中未完全讨论的其他特征、优点和/或特性。
61.虽然对本举例实施例的讨论通常集中于作为流处理作业的执行单元的处理单元/元件,但是应当注意,本实施例的处理元件可以由本领域中已知或尚待已知的任何其他有能力的流处理执行单元代替。例如,虽然操纵元组数据的输入流并且产生对应的输出流的流处理运算符通常被包含在处理元件内,但是在许多情况下,术语“运算符”通常可以替代更宽泛的术语“处理元件”,因为由处理元件执行的流处理操作将通常由包含在该处理元件内的相应的(多个)运算符来执行。
62.无论是物理的还是虚拟的,流处理作业的处理元件可以单独地或共同地位于云计算环境50的相应节点(如“流处理实例”)上。此外,流处理作业的处理元件也可位于来自不同于例如云计算环境50的供应商的供应商的不同环境的节点/流处理实例上。具有多个云计算环境的这样的配置的示例在图7中被描绘并在下文描述。
63.出于本公开的目的,流处理实例可以是能够包含流处理作业的处理元件并且具有分配给流处理作业的处理元件以用于处理那些流处理作业的计算资源(诸如cpu核和存储器)的任何计算构造。在一些实施例中,流处理实例是虚拟机。在其他实施例中,流处理单元是云容器(诸如docker容器)。在其他实施例中,流处理单元是库伯内特容器(kubernetes pod)(其本身可以包含一个或多个云容器)。在其他实施例中,流处理实例包括以上各项的组合,或满足以上要求的其他已知或尚待已知的计算构造。(注意:术语“docker”和/或“kubernetes”可以受制于全世界不同管辖区域中的商标权并且在可能存在此类商标权的情况下,仅参考由标记正确命名的产品或服务)
64.在本举例实施例中,流处理管理96(也被称为“流处理管理节点”)的程序300与在多云计算系统中的相应云计算环境上执行的多个流处理实例通信,以管理流计算作业处理元件跨各种云计算环境的分布,并执行各种其他管理相关任务。将在以下段落的过程中讨论流处理管理节点与各种云计算环境上的流处理实例之间的交互。
65.处理在操作s255开始,其中配置(“配置”)模块(“mod”)355(参见图5)在流处理管理节点与多个流处理实例之间建立数据通信。在本实施例中,多个流处理实例被存储在多云计算系统的相应的云计算环境中。例如,在一种情况下:(i)第一流处理实例被存储在由第一云供应商提供的公共云环境中;(ii)第二流处理实例被存储在由第二云供应商提供的私有云环境中;以及(iii)第三流处理实例被存储在由第三云供应商提供的混合云环境中。通过在流处理管理节点和相应的云环境的流处理实例之间建立数据通信,程序300的模块355能够将相应的流处理实例配置为如同它们全部在相同的单一云计算环境中操作一样操作。对于各种环境可以被创建并且被配置成用于彼此交互的方式的讨论(例如,关于特定的流处理作业),参见以下本具体实施方式的进一步评论和/或实施例子部分。
66.处理进行到操作s260,其中i/o模块360将流处理作业的一个或多个处理单元分发到多个流处理实例中的第一组流处理实例。即,在该操作中,程序300(例如,经由配置模块355)识别要执行的流处理作业,识别用于该作业的对应处理元件,确定哪些处理元件将向流处理实例中的哪一个指派,以及使用i/o模块360将这些指派及其相关联的数据传送到相应的流处理实例。处理单元到流处理实例的初始分布可基于任何数量的各种各样的因素,范围从基于处理和/或存储器要求的特定规则到与使用可用的流处理实例中的每一个相关联的成本的评估。此外,虽然处理单元通常需要被分发到至少一个流处理实例用于执行,但可使用流处理实例的任何数目的可能组合,并且在一些情况下,单个处理单元可被指派给多个流处理实例以供冗余和/或跨多个实例/环境散布特定工作负载。再次,对于本发明的实施例如何将处理单元分发给流处理实例的进一步讨论,参见以下本具体实施方式的进一步评论和/或实施例子部分。
67.处理进行到操作s265,其中i/o模块360从第一组流处理实例的一个或多个流处理实例接收与流处理作业的一个或多个处理单元相关联的处理结果。处理结果可包括与由相应的流处理实例对流计算作业的处理有关的任何数据,包括各种数据处理结果(例如,运算符结果)、流处理实例的系统信息(例如,处理能力、可用的存储器)和/或各种分析,如将在下文在该子部分以及在该具体实施方式的进一步评论和/或实施例子部分两者中都进一步详细讨论的。
68.处理进行到操作s270,其中配置模块355利用机器学习(ml)模块365并且至少部分地基于所接收的处理结果来执行流管理操作。可在此操作中执行任何数目的广泛多种流管理操作,包括(例如)新流处理作业的处理单元的分发、当前流处理作业的处理单元的重新分发以及流处理作业的并行区域的使用/修改,如下文将讨论。
69.在各个实施例中,流管理操作是基于机器学习的——即,使用基于机器学习的选择策略来选择流管理操作。在各个实施例中,通过将接收到的处理结果用作用于训练过程的训练数据的至少一部分来训练机器学习模型以做出该选择。训练过程可以是各种各样的训练过程中的任何训练过程,例如:(i)监督的训练过程(诸如使用针对训练数据的标签的过程,其中标签是从人类用户、数字注释器或其组合接收的);(ii)非监督的过程(诸如使用聚类分析或主成分分析来识别训练数据中的模式的过程);(iii)强化学习过程(诸如利用马尔可夫决策过程和/或动态编程技术的过程);和/或(iv)其组合。
70.一般而言,无论所采用的过程的特定类型如何,训练过程的目的是产生满足特定目标或目标集合的结果。在本实施例的情况下,其中,机器学习模型被用于选择各种流管理操作,机器学习模型被训练以基于它们满足这些目标的程度来选择流管理操作。这些目标可以是各种各样的可能目标中的任何一个或多个(无论本质上是技术还是业务)。例如,一些一般技术目标可以包括:(i)将cpu负载保持为最小或低于一定量,(ii)将ram利用率保持为最小或低于一定量,(iii)最小化用于处理单元的“等待时间”的量,和/或(iv)最大化吞吐量(例如,元组流出速率)。一些一般业务目标包括:(i)一般成本,(ii)如应用于某些时间范围(例如,在休息时间期间,在一个月/季度的末尾)的成本,(iii)最小化在某些“峰值”或以其他方式不期望的时间范围期间的使用,(iv)各个法律管辖区域的数据主权要求;和/或(v)最小化处理成本同时仍然维持定义的服务质量(qos)性能等级。
71.在机器学习模型的训练中也可以考虑与流管理作业的优化有关的各种其他因素。
例如,在各个实施例中,可以训练机器学习模型以优化如何访问外部服务(诸如数据库)。在这些实施例中,例如,如果流处理作业需要访问数据库,则可以训练机器学习模型以识别哪个计算环境能够以最优成本和性能水平来访问数据库。可以考虑的另一因素是与源数据的接近度。例如,如果流处理作业的输入数据来源于区域中的传感器的网络,则可以选择最接近该区域的计算环境用于处理,因为该计算环境可以具有用于该作业的最有利的成本和性能度量。可以考虑的又一因素是计算环境稳定性。例如,机器学习模型可以被训练以识别哪个计算环境随着时间具有最少的中断数量,并且选择该环境来运行作业的关键处理单元。
72.如上所述,在各个实施例中,流管理操作落入三个一般类别:新流处理作业的处理单元的初始分发/指派、当前流处理作业的处理单元的重新分发、以及流处理作业的并行区域的使用/修改。例如,在各种实施例中,流管理操作包括将新的流处理作业的一个或多个处理单元分发到与初始流处理作业中使用的流处理实例集合不同的流处理实例集合。在这些实施例中,流处理实例的不同集合可包括与用于初始流处理作业的流处理实例的初始集合的一些重叠,但这不总是这种情况,因为在许多情况下,通过完全使用不同的流处理实例可最佳地满足目标集合。此外,在一些情况下,流处理管理节点可识别没有可用的流处理实例适于满足流处理作业的目标,并且可向多云计算系统的各个云计算环境发布创建具有满足(或更可能满足)目标的规范的新流处理实例的请求。
73.如上所述,在各个实施例中,流管理操作包括在流处理作业的执行期间指示分布式一个或多个处理单元中的第一处理单元从第一流处理实例移动到第二流处理。在各个实施例中,可做出与前面段落中讨论的那些类似的确定,诸如重新指派处理单元中的一些但不是全部,或请求创建更好地满足期望目标的一个或多个新的流处理实例。另外,是否将处理单元在流处理实例之间移动的确定也可取决于流处理作业如何被执行的实时度量。例如,如果ml模块365基于由i/o模块360接收的实时处理结果而确定,第一流处理实例将不再满足一定量的成本目标,配置模块355可以指示将第一流处理实例的处理元件中的一个或多个重新分发给第二流处理实例,该第二流处理实例将以至少比第一流处理实例的成本小所述一定量的成本来处理处理元件,从而使用第一流处理实例和第二流处理实例的总处理成本满足成本目标。在另一示例中,如果实时处理结果指示第一流处理实例已被终止或可能被终止,则ml模块365可将第一流处理实例的处理元件重新分发到尚未被终止或不可能被终止的一个或多个其他可用的流处理实例。
74.最后,如上所述,在各个实施例中,流管理操作包括使用/修改用于流处理作业的并行区域。一般而言,并行区域允许流处理作业复制处理单元/元件内的特定运算符,将去往这些运算符的流拆分,并且在复制的运算符中并行地处理不同的元组,其中,复制的运算符及其相应的流被认为是“并行区域”或“信道”。例如,涉及并行区域的流管理操作的一个示例将要增加并行区域的宽度,甚至进一步复制运算符以使得创建更多的并行区域。在各种实施例中,并行区域可全部保持在相同的处理单元内,并且在其他(或相同)实施例中,可根据期望/需要将并行区域分发到不同的处理单元和/或流处理实例以满足所识别的目标。照此,在一些情况下,流管理操作包括ml模块365,ml模块365确定需要更多信道并且指示创建与特定运算符相关联的一个或多个新信道以在流处理实例的新的(例如,第三)集合上执行。
75.iii.另外的注释和/或实施例
76.本发明的各个实施例提供了一种用于跨多个云计算区域和供应商分发流计算工作负载的系统。例如,在一些实施例中,流管理器合并了以下技术以更好地管理在多个云中运行的流工作负载:(i)合并——多个云中的实例和作业对象的集中式、远程管理;(ii)问题确定——与云和系统监控工具的更深入集成;(iii)高可用性——跨云的实例和工作故障转移;和/或(iv)通过机器学习来优化成本和作业性能,包括到云的作业提交、跨云的作业移动、以及扩展的并行区域和其他编程概念以在最优云配置中运行信道。
77.在各个实施例中,多云流管理器学习运行特定作业的最佳或最优云环境。在各个实施例中,为了确定运行流式工作负载的最佳云环境,流管理器连续地收集成本率和性能度量。这些度量用于确定将流计算作业提交到哪个最优云环境,何时应将流计算作业重定位到不同的云环境,以及何时应使用包括并行区域的编程技术以在多个云上运行作业。
78.在各个实施例中,对于终端用户隐藏正在运行流计算作业的情况。在各个实施例中,终端用户或开发者将简单地使用或编写分布式流计算应用。在各个实施例中,开发者将该应用部署到多云流管理器,该多云流管理器放置该应用的作业以最佳地满足目标(或服务水平协议(sla))。在各个实施例中,调试和合并视图技术被并入用于管理员和开发者从单个窗格或门户调试应用。从终端用户的角度来看,应用随着应用在单个位置中运行而运行,并且多云分布是不可见的。
79.图6示出了描绘根据本发明的实施例的传统流计算系统的示例的示图600。在此实施例中,流计算系统602在单个受管理环境(例如,单个云、现场/私有云部署、和/或一组受管理主机)中运行,其中处理单元606a-n被放置在各个主机604a-n(如以上所讨论的“流处理实例”)内,并且其中放置和资源管理由管理服务608执行。在本实施例中,分布式技术被优化为在单个受管理环境中工作良好,从而提供例如高可用性和冗余性。
80.然而,尽管在单个受管理的环境中操作流计算系统可能具有各种益处,但流计算领域正移动到其中应用跨若干环境运行的世界,其中将使用多个云环境和部署模型来最佳地部署和运行流计算应用。现有的流计算系统设计不足以满足这种技术演进。例如,虽然可能编写跨多个云环境交互的复杂流式应用,但是这样的工作将是乏味的,并且将需要非常琐碎的开发活动和管理。所需要的是解决开发者和管理者在跨若干云环境运行的流计算环境中开发和部署作业时面临的问题的解决方案。
81.本发明的各实施例提供将流计算系统的分布式范例从单个环境改变到多云环境的新颖方法。在各个实施例中,该方法包括若干组件:(i)合并——流计算作业的中央管理;(ii)问题确定——用于调试跨若干环境的流作业的中央问题确定工具;(iii)高可用性——将实时故障转移扩展到多个环境;以及(iv)优化——基于机器学习的解决方案,基于每环境的时间序列性能数据和sla,以执行各个核心流计算功能,包括作业提交(流应用应当初始被部署在哪里?)、作业重定位(是可用于运行当前作业的更优的环境?如果是,则在何处?)、以及作业并行化(例如,将并行区域扩展到多个环境以处理工作负载中的尖峰)。
82.图7示出了描绘根据本发明的实施例的多云流计算环境(即,流计算系统702)的示例的示图700。如图7所示,流处理实例710a-c被分别托管在云环境a 704、云环境b 706和云环境c 708上,并且由流管理器712管理。在该实施例中,流管理器712提供流处理服务的集中化并从每个流处理实例710a-c收集元数据。进一步,虽然流管理器712被描绘为被托管在云环境a 704、云环境b 706和云环境c 708之外,但是应当认识到,在各个实施例中,流管理
器712可被托管在云环境a 704、云环境b 706和云环境c 708中的任何一个或全部中,其中故障转移和/或其他高可用选项也是可用的。
83.在各种实施例中,流计算应用可以以两种不同方式之一(或两者)部署在多云环境(诸如流计算系统702)中。在一些在流管理器(诸如流管理器712)已被配置成在多云环境中供应服务的实施例中,流管理器可选择云类型并将所选类型的新的流处理实例部署到相应的云环境。在可在环境水平创建流处理实例的其他(或相同)实施例中,多云环境内的云环境的管理员可创建云环境的流处理实例,并且所创建的流处理实例可与流管理器通信以提供关于流处理实例的相应环境的元数据。
84.在各个实施例中,流处理实例被分组到较高级多云实例中。例如,在这些实施例中,用于各种运行的流处理实例的元数据可被合并到流管理器图形用户界面(gui)中,其中数据跨多个流处理实例和环境被收集并被呈现在单个云视图中。
85.在各个实施例中,流计算作业被提交给多云流管理器(诸如流管理器712)。在这些实施例中,多云流管理器如在单个云环境中完成的那样评估放置选项,例外是它评估所有注册的云环境,而不是检查与单个云环境相关联的度量。进一步,在这些实施例中,作业可被分解成包含运算符的处理元件并在对终端用户或开发者而言看起来处于单个环境中时运行。
86.在各个实施例中,开发者和管理员能够从单个gui查看在多云环境(诸如流计算系统702)中操作的应用。在这些实施例中,虽然流处理元件可以在若干不同的云环境中运行,但是单个视点提供虚拟化抽象层以优化调试和开发。
87.在各个实施例中,跨多个云提供流计算实例和作业对象的集中式、远程管理的流管理器识别以下特征、特性和/或优点:(i)其提供可由用户、区域、供应商、云环境的类型(私有、公共等)等来分组的所有实例、作业和处理元件的单个视图;(ii)它与每个流处理实例通信并且检索关于正在运行的作业和处理元件的信息和实例属性,这些属性和信息可随后被合并并用过滤器、组和排序来显示;(iii)其允许每个流处理实例根据各个度量针对事件通知(诸如当实例或作业变得不健康时的健康警报)进行注册;(iv)它允许跨云的自定义创建、读取、更新和删除(crud)操作(诸如在云a和b中创建相同的实例,或为云a和b中的所有实例检索不正常的作业);和/或(v)它允许具有谓词的查询被发送到跨云的实例,允许特定信息的检索和/或目标命令的发送。
88.多云环境中的问题确定可以比在单个环境中明显更具挑战性,因为多云环境可以在底层基础设施中使用各种各样不同的技术(各种容器技术、虚拟机、物理主机和定制实现)。关于云环境的特定基础设施的信息可经由应用编程接口(api)调用来获得。
89.尽管可以在多云环境中采用各种不同的技术,但是流计算应用内的底层故障检测通常保持相同。例如,不管基础设施平台如何,流计算应用可能经历作业失败、存储问题、网络问题、带宽问题等。尽管如此,在每个环境中,调试可能是乏味的,因为管理员必须知道使用哪些api、加载哪些工具等。
90.照此,本发明的各种实施例合并多云平台问题确定api技术以提供单个问题确定观点。在各个实施例中,问题与底层环境问题(从可用api拉取)相关,并在单个视图中呈现给管理员或开发者,如在单个环境中完成的,从而基本上虚拟化跨多个云的问题确定。
91.在各个实施例中,流管理器(诸如流管理器712)可与现有的云和系统监控工具集
成,以帮助确定当实例或作业变得不健康时的可能原因。例如,当发布流健康警报时,流管理器可以搜索并关联于此时发生的其他警报。在一些情况下,保持不健康的实例可能涉及底层问题(诸如主机故障、网络分区问题、高存储器/cpu、不足的盘空间、盘故障等)。对于每个实例或作业,流管理器收集系统信息(诸如正在使用的主机)。当实例或作业变得不健康时,流管理器可查询监控系统并检查可能相关的开放警报。
92.虽然现有的流处理系统可被构建用于高可用性,但这通常限于单数环境,而不是多云环境。另外,单个环境系统处于可能导致流处理作业终止或以其他方式关闭的数据中心问题的风险。允许跨多个云的多个流处理实例的本发明的各种实施例(其中流管理器存储全局配置、作业配置和应用束),允许被关闭的处理单元/元件在不同的云环境中自动重启,无论其在具有相同提供商的不同云区域中还是完全在另一云提供商中。通过使用来自合并的问题确定的数据,调度器可确定最优云环境和实例以部署处理单元/元件。
93.在各个实施例中,如果云数据中心下降,则流管理器可自动地将实例和作业移动到指定的备份云环境。在这些实施例中,可以用相同的配置来创建实例,并且可以用来自全局储存库的应用包重新开始作业。当实例被创建或更新时,其配置设置与流管理器一起被记录,使得该实例可在另一环境中被重建。类似地,在作业提交期间,保存作业配置细节和应用包,使得在另一实例中,如果需要,可重新提交该应用。
94.在各个实施例中,流管理器(诸如流管理器712)从跨所有云实例的实例和各种云环境收集度量。在这些实施例中,针对在各种云环境中运行的作业收集关于云特定性能、正常运行时间和故障率的度量。使用作业类型、属性和数据的时间序列分析,可以做出最佳放置决策(诸如在单个环境中由调度器当前做出的决策)。
95.如上所述,流管理器可被配置成优化:(i)作业提交决策,(ii)作业移动决策,以及(iii)用于多云流计算环境的并行区域决策。例如,在各个实施例中,流管理器训练机器学习模型以至少部分地基于从多云环境中的各个云实例接收到的数据和基于对该数据的分析来做出最优决策。
96.在各个实施例中,为了优化作业提交决策(上文的(i)),流管理器使用已使用云特定api和流处理api从各个云实例合并的数据来确定成本和吞吐率。在这些实施例中,策略和sla可以在应用水平被建立,并结合所合并的数据使用以向调度器提供用于作业的最优初始放置的提示。
97.例如,如果相同的作业在多个云上运行,则流管理器可收集关于定价和吞吐量的度量用于比较。随着时间的推移,流管理器可以学习将作业提交到最佳环境以优化成本和性能。作业提交器也可通过指定诸如成本和元组吞吐量之类的因素的权重来向流管理器提供提示。流管理器可以基于最近的度量来计算综合得分并且做出关于作业被提交到何处的决策。
98.在各种实施例中,为了优化作业移动决策(上文的(ii)),流管理器提供使用从不同云环境合并的成本数据和性能度量在最佳时间将作业重定位到最佳云环境的能力。例如,一个云环境可能在某些小时经历拥塞。随着时间推移,流管理器将识别拥塞模式并向调度器提供提示以将作业重定位到更优的云环境。
99.在示例中,基于与源数据的接近度,流管理器可以自动地确定将作业移动到另一云以获得最佳性能。例如,取决于市场何时开放,处理实时股票市场数据的流作业可从纽约
的云移至伦敦的云。作业移动可通过在一个环境中取消作业并在另一环境中提交作业来实现。这可以按固定的进度表进行,或者通过检查输入数据的元组速率而随时间被学习。
100.在各个实施例中,在流处理系统中使用并行区域(上文的(iii)),以根据需要扩展和收缩流作业以处理数据流中的尖峰。在各种实施例中,流管理器使用从不同云实例合并的数据来识别可跨多个云实例扩展的并行区域。
101.例如,具有混合云的优点之一是在私有云中运行工作负载的能力,并且将工作负载的部分扩展到公共云以处理尖峰。为了处理较重的工作负载的时段,流管理器可以选择增加作业中的并行区域的宽度,并且使新信道在具有较大资源池的公共云中运行。在峰值时间结束之后,并行区域可被缩放回去。
102.在各个实施例中,当流管理器确定增加并行区域的宽度时,流管理器选择公共云来运行新信道。例如,通过提交仅包含该区域中的运算符的应用来创建新的并行信道。新信道的输入和输出端口可从外部访问。调整并行区域的分离器和合并器运算符以连接到新信道。
103.如上所述,流计算技术通常被绑定到单个部署的云环境,但跨多个云扩展该技术以利用性能、可靠性、高可用性和成本节省的概念是该分布式技术的未来。本发明的各个实施例利用云管理器,该云管理器被集成到公共云环境中并可被扩展(使用api)以根据需要集成到任何数据中心或私有云环境中。各个实施例提供允许流计算应用如现在这样被开发、如现在这样被部署、但在多云环境中运行的虚拟化架构。
104.本发明的各个实施例使用分析和机器学习来确定在多云流处理系统中运行各个流分析作业的最佳云环境。在各个实施例中,流作业的各部分可以被动态地改变以在不同的云上运行(例如,如果需要更多资源来处理工作负载尖峰)。
105.在各个实施例中,流处理系统的流管理器通过确定流作业的哪些部分拥塞并且仅并行化那些区域来提供动态和弹性缩放。在其他实施例中(例如,利用内容分发服务),整个服务可以就在另一个资源上复制以进行缩放。此外,在各个实施例中,与仅基于资源使用进行负载均衡的通用资源负载均衡器或基于优先级调度资源的系统相反,流管理器确定在何处运行处理单元/元件以优化作业的成本和吞吐量。
106.在各个实施例中,管理员可配置哪些云环境有资格运行附加处理单元/元件。
107.本发明的一些实施例提供了用于在多云系统中跨多个云环境执行流计算工作负载的系统。所述系统包括具有相应流计算实例的多个云环境,以及通信地耦接到所述云环境的所述流计算实例中的每一个的流计算管理节点。所述管理节点被配置为:(i)接收用于处理的流计算作业,(ii)将所述流计算作业分解成多个处理元件,(iii)将所述处理元件分发给相应的流计算实例用于执行,以及(iv)合并来自所述分布式处理元件的结果并且将所述合并的结果提供给用户。在一些实施例中,管理节点指派给第二云环境的第二流计算实例。在一些实施例中,管理节点还被配置成分析与每个流计算实例有关的度量,并且基于该分析在流计算实例之间动态地分发和/或移动处理元件。
108.iv.定义
109.本发明:不应被视为由术语“本发明”所描述的主题由所提交的权利要求书、或由在专利审查之后可能最终发布的权利要求书覆盖的绝对指示;虽然术语“本发明”用于帮助读者得到一般感觉,对于这些感觉,在此的公开内容被认为是潜在地新的,如通过使用术语“本发明”所示出的,这种理解是暂时的和临时的,并且在开发相关信息并且潜在地修改权利要求书时在专利审查过程中经受改变。
110.实施例:参见以上“本发明”的定义-类似的注意事项适用于术语“实施例”。
111.和/或:包括性或;例如,a、b“和/或”c意指a或b或c中的至少一个是真实的和适用的。
112.包括/包含/具有:除非另外明确指出,意指“包括但不必限于。”113.用户:包括但不必限于以下:(i)单个人;(ii)具有足够智能以充当用户的人工智能实体;和/或(iii)相关用户组。
114.数据通信:现在已知或未来有待开发的任何类型的数据通信方案,包括无线通信、有线通信以及具有无线和有线部分的通信路径;数据通信不必限于:(i)直接数据通信;(ii)间接数据通信;和/或(iii)数据通信,其中格式、分组状态、介质、加密状态和/或协议在数据通信的整个过程中保持恒定。
115.接收/提供/发送/输入/输出/报告:除非另外明确规定,否则这些词语不应被视为暗示:(i)关于它们的对象与主体之间的关系的任何特定直接程度;和/或(ii)不存在插入在其对象和主体之间的中间组件、动作和/或事物。
116.自动:没有任何人为干预。
117.模块/子模块:可操作地工作以进行某种功能的任何硬件、固件和/或软件集,而不考虑该模块是否:(i)在单个局部接近中;(ii)分布在宽广区域上;(iii)在较大软件代码段内的单个接近中;(iv)位于单件软件代码内;(v)位于单个存储设备、存储器或介质中;(vi)机械连接;(vii)电连接;和/或(viii)数据通信地连接。
118.计算机:具有显著数据处理和/或机器可读指令读取能力的任何设备,包括但不限于:台式计算机、大型计算机、膝上型计算机、基于现场可编程门阵列(fpga)的设备、智能电话、个人数字助理(pda)、身佩式或插入式计算机、嵌入式设备式计算机、基于专用集成电路(asic)的设备。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献