CN113924554A - 具有无损一次性处理的自动化云边缘流工作负载分布和双向迁移 - Google Patents

具有无损一次性处理的自动化云边缘流工作负载分布和双向迁移 Download PDF

Info

Publication number
CN113924554A
CN113924554A CN202080040034.7A CN202080040034A CN113924554A CN 113924554 A CN113924554 A CN 113924554A CN 202080040034 A CN202080040034 A CN 202080040034A CN 113924554 A CN113924554 A CN 113924554A
Authority
CN
China
Prior art keywords
workload
migration
cloud
edge
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202080040034.7A
Other languages
English (en)
Inventor
T·R·波特
A·阿尔佩罗维克
K·G·玛米迪帕卡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN113924554A publication Critical patent/CN113924554A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文描述了一种方法、系统和计算机程序产品,用于具有无损一次性数据流处理的自动化云边缘工作负载分布和双向迁移。云服务可以提供云和边缘之间的工作负载和双向迁移管理,以在迁移之前和之后提供数据流的一次性处理。迁移逻辑节点可以开始处理数据流,其中处理在迁移之前在源逻辑节点处停止而没有数据丢失或重复,例如通过在基于拉取的流处理中迁移和使用锚。实现数据流的客户查询的查询逻辑可以基于放置准则被分布到边缘和/或云设备。查询逻辑可以基于迁移准则从源迁移向目标边缘和/或云设备。

Description

具有无损一次性处理的自动化云边缘流工作负载分布和双向 迁移
背景技术
云计算是网络可访问计算形式,其通过一个或多个网络(例如互联网)共享私有和/或公共计算机处理资源和数据。微软
Figure BDA0003380746040000011
是一个云计算服务的示例。云计算可以提供对可配置计算资源的共享池的按需访问,诸如计算机网络、服务器、存储装置、应用、服务、虚拟机和/或容器。云服务可以包括例如基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)、后端即服务(BaaS)、无服务器计算和/或功能即服务(FaaS)。云服务提供方可以根据服务级协定(SLA)向客户(例如租户)提供服务,该服务级协定可以指定性能保证、可以被分配给租户的最大数目的资源以及关联成本。云服务成本可能与用于完成计算任务的资源的峰值使用(例如最大向外扩展)相关联,无论最大数目的资源是临时使用还是由租户保留。
云计算可以包括流处理,其中来自多个源的多个数据流可以被实时处理。微软
Figure BDA0003380746040000012
流分析是事件处理引擎的示例,它可以被配置(例如由客户)为处理来自各种源(例如物联网(IoT)设备、传感器、web站点、社交媒体馈送、应用等)的多个数据流。客户可以以被提供给Azure流分析的查询的形式指定流处理逻辑(例如商业逻辑)。
发明内容
该发明内容被提供来以简化的形式介绍对于下面在详细描述中进一步描述的概念的选择。该发明内容不旨在标识要求保护的主题的关键特征或者必要特征,也不旨在被用于限制要求保护的主题的范围。
本文描述了一种方法、系统和计算机程序产品,用于具有无损一次性数据流处理的自动化云边缘流工作负载分布和双向迁移。云服务可以提供云和边缘之间的工作负载和双向迁移管理,以在迁移之前和之后提供数据流的一次性处理。迁移逻辑节点可以开始处理数据流,其中处理在迁移之前在源逻辑节点处停止而没有数据丢失或重复,例如通过在基于拉取的流处理中迁移和使用锚。实现数据流的客户查询的查询逻辑可以基于放置准则被分布到边缘和/或云设备。查询逻辑可以基于迁移准则从源迁移向目标边缘和/或云设备。
本发明的其他特征和优点以及本发明的各种实施例的结构和操作在下面参照附图详细描述。要注意的是,本发明不被限于本文描述的具体实施例。这种实施例是仅出于说明性目的而在本文中呈现的。基于本文包含的教导,附加实施例对于(多个)相关领域的技术人员将是显而易见的。
附图说明
被并入本文并且形成说明书的一部分的附图图示了本申请的实施例,并且连同本描述,还用于解释实施例的原理并且使相关领域的技术人员能够制造和使用实施例。
图1是根据示例实施例的用于具有无损一次性数据流处理的自动化云边缘流工作负载分布和双向迁移的示例系统的框图。
图2A是根据示例实施例的示例数据流工作负载放置的框图。
图2B是根据示例实施例的示例数据流工作负载迁移的框图。
图3是根据示例实施例的用于数据流工作负载放置的示例方法的流程图。
图4是根据示例实施例的用于数据流工作负载放置的示例方法的流程图。
图5是根据示例实施例的用于数据流工作负载迁移的示例方法的流程图。
图6是根据示例实施例的用于数据流工作负载迁移的示例方法的流程图。
图7是根据示例实施例的用于数据流工作负载迁移的示例方法的流程图。
图8是根据示例实施例的用于数据流工作负载迁移的示例方法的流程图。
图9示出了可以被用于实施各种示例实施例的示例移动设备的框图。
图10示出了可以被用于实施实施例的示例计算设备的框图。
当结合附图时,通过下面陈述的详细描述,本发明的特征和优点将变得更加明显,其中相同的参考字符始终标识对应的元件。在附图中,相同的参考数字通常指示相同的、功能类似和/或结构类似的元件。元件首次出现的附图由对应参考数字中的(多个)最左侧数字指示。
具体实施方式
I.介绍
本说明书和附图公开了包含本发明的特征的一个或多个实施例。本发明的范围不被限于所公开的实施例。所公开的实施例仅例示了本发明,并且所公开的实施例的修改版本也由本发明涵盖。本发明的实施例由所附权利要求限定。
每个实施例被呈现为本文公开和/或要求保护的主题的许多可能示例中的示例。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特点,但是每个实施例可能不一定包括该特定特征、结构或特点。而且,这种短语不一定指的是相同实施例。进一步地,当特定特征、结构或特点结合实施例描述时,无论是否明确描述,主张它是在本领域技术人员的知识范围内,以结合其他实施例实现这种特征、结构或特点。
许多示例性实施例被描述如下。要注意的是,本文提供的任何章节/子章节标题都不旨在是限制性的。实施例在该文档中描述,并且任何类型的实施例可以被包括在任何章节/子章节下。此外,在任何章节/子章节中公开的实施例可以以任何方式与在相同的章节/子章节和/或不同的章节/子章节中描述的任何其他实施例组合。
II.具有无损一次性处理的自动化云边缘流工作负载分布和双向迁移的示例实施例
云计算成本可能会随着资源的利用或保留而增加。增加的负载可能会导致资源横向扩展和成本增加。网络通信可能会出乎意料地缓慢。云和/或边缘计算设备负载可能会随时间变化。流数据可以包括个人可标识信息(PII),当通过公共网络进行通信时,这些信息可能面临更大的获取和滥用风险。不灵活的处理可能会浪费资源、增加成本和/或延迟。工作负载迁移的灵活处理可能涉及大量停机、数据丢失和复制。这些和其他问题可以通过具有无损一次性数据流处理的自动化云边缘流工作负载分布和双向迁移来解决。
具有无损一次性数据流处理的自动化云边缘流工作负载分布和双向迁移可以例如降低成本,减少时延,减少处理时间,保护PII,减少迁移停机时间、损失和复制。例如,边缘计算设备可以单独地使用或与云计算设备结合使用,以处理流数据。云服务可以提供云和边缘之间的工作负载和双向迁移管理,以在迁移之前和之后提供数据流的一次性处理。迁移逻辑节点可以开始处理数据流,其中处理在迁移之前在源逻辑节点处停止而没有数据丢失或重复,例如通过在基于拉取的流处理中迁移和使用锚。实现数据流的客户查询的查询逻辑可以基于放置准则被分布到边缘和/或云设备。查询逻辑可以基于迁移准则从源迁移向目标边缘和/或云设备。
A.用于具有无损一次性处理的自动化云边缘流工作负载分布和双向迁移的示例系统
图1是根据示例实施例的用于具有无损一次性数据流处理的自动化云边缘流工作负载分布和双向迁移的示例系统的框图。示例系统100是许多可能的示例实施方式中的一个实施方式。如图1所示,示例系统100可以包括云服务102、存储装置108、客户计算设备128、IoT设备和应用132、云网关134、边缘计算设备136和云计算设备138。
云和边缘设备可以例如经由(多个)一个或多个网络可通信地耦合,该网络可以包括任何一个或多个通信链路,其中的一些但非全部在图1中通过示例示出。在一个示例中,(多个)网络可以包括一个或多个有线和/或无线、公共、私有和/或混合网络,诸如局域网(LAN)、广域网(WAN)、企业网络、互联网等。在一个示例中,(多个)网络可以包括专用通信链路。
示例系统100描绘了云和边缘。云计算是指第三方计算机系统资源(例如数据存储和计算)。云计算可以包括例如对一个或多个客户可用(或受限)的数据中心(例如通过互联网)。云可以是私有的、公共的或混合的。在许多示例中的一个示例中,边缘可以包括IoT的边缘,例如其中客户的网络与互联网接口接口。例如,云计算设备138可以专用于提供云服务(例如向将其计算设备连接至互联网的许多客户提供),而边缘计算设备可以是例如专用于客户操作的客户计算设备。诸如云网关134等设备可以在云和边缘之间提供接口。
客户(例如具有一个或多个用户)可以与云交互,例如使用客户计算设备128。客户计算设备128可以包括例如用户可以操作以例如经由网络(LAN、WAN等)访问和使用(例如公司或云)服务器的端点设备(例如台式计算机、膝上型计算机、平板计算机、移动电话)。客户计算设备128的用户可以表示例如云服务102的客户或租户。租户可以包括有权访问云服务102的一组一个或多个用户(例如客户的雇员)。
客户计算设备128可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如
Figure BDA0003380746040000051
设备、膝上型计算机、笔记本计算机、平板计算机,诸如苹果iPadTM、上网本)、可穿戴计算设备(例如包括智能眼镜的头戴式设备,诸如
Figure BDA0003380746040000052
GlassTM)或者静止计算设备,诸如台式计算机或PC(个人计算机)。
客户计算设备128可以(例如分别)包括显示器以及其他特征,例如如通过图9和图10中的示例呈现的。客户计算设备128可以向用户显示各种交互界面,诸如云服务图形用户界面(GUI)130。用户可以访问GUI 130,例如通过与由客户计算设备执行的应用(例如Web浏览器应用)交互。用户可以为云服务102提供或选择网络地址(例如统一资源定位符)。云服务102可以例如提供登录web页面(例如GUI 130)以供计算设备在显示器上渲染。web服务web页面(例如用户界面130)可以被提供,例如在客户登录之后,以使计算设备在显示器上渲染。例如通过使用云服务GUI 130以经由例如一个或多个网络连接(例如互联网)向云服务102上传或以其他方式传输信息,用户可以向云服务102提供信息(例如流数据作业、作业放置和/或迁移信息,诸如用户限定的迁移和/或其参数)。云服务102可以接收、存储和处理由用户通过计算设备128提供的信息。
用户可以与计算设备128交互,以创建或编辑流数据作业并且执行其他任务(例如监测作业的云服务执行)。作业可以包括任何类型的计算机可执行指令。作业可以包括与一个或多个数据流中的信息相关(例如询问)的查询。查询可以例如利用对一个或多个数据流进行操作的查询逻辑(例如商业逻辑)来实施(例如通过云服务102)。云服务102可以处理流数据作业,包括作业放置和/或迁移信息,例如如下面描述的。
IoT设备/应用132可以包括例如可以流式传输数据的数据源。数据源可以是获得(source)任何类型的数据(例如流数据)的任何数据源(例如传感器、计算机设备、web站点、社交媒体馈送、应用等)。流数据可以包括能够在没有存储装置的情况下实时或近实时地分析或者可以从存储装置流式传输的数据。流数据的源的示例可以是例如具有数千个传感器的远程石油钻机,这些传感器生成用于分析的数据,例如通过一个或多个网关设备(例如云网关134)流出到边缘和/或云服务器。
诸如云网关134等设备可以在云和边缘之间提供接口。云网关134可以是具有云感知或智能的网关。云网关134可以提供例如安全连接性、事件摄取、双向通信和设备管理。云网关134可以为设备提供云中心以连接(例如安全地)至云,并且发送数据。云网关134可以包括从设备摄取事件的托管云服务。云网关134可以(例如也)提供设备管理能力(例如设备的命令和控制)。云网关134可以充当设备和后端服务之间的消息代理。云网关134可以包括例如微软
Figure BDA0003380746040000071
IoT中心和/或事件中心。
云网关134可以支持从IoT设备/应用132到云服务102和/或其他云组件(诸如边缘计算设备136和云计算设备138)的流数据。IoT设备132可以向云注册(例如经由云网关134)。IoT设备132可以连接至云,以例如发送和接收数据。例如,IoT设备可以是IoT边缘设备,它们可以自己运行云智能。IoT边缘设备可以自己和/或在现场(例如客户)网关(未示出)中执行一些数据处理。
如先前指示的,云计算设备138可以专用于提供云服务(例如向许多客户提供),而边缘计算设备可以是例如专用于客户操作的客户计算设备。云服务由云计算设备138提供。云计算设备138可能与客户的IoT边缘相距相当远,并且可能依赖于一个或多个网络以进行通信(例如与IoT设备/应用132通信)。云计算设备138可以一次或多次达到或接近容量。边缘计算设备136可以具有一些可用带宽。云计算设备138可以(例如相应地)由云服务102用于执行云计算工作负载的一部分,例如基于对放置和/或迁移工作负载的一个或多个准则的评估。云和边缘计算设备138、136可以用于流数据工作负载的放置和双向迁移。其他资源可以作为完整或有限的云资源可用,诸如云或边缘中的其他计算或存储设备(例如SQL服务器)。
诸如流数据分析等云服务可以由边缘设备(例如边缘计算设备136)执行,例如通过运行云服务的一个或多个组件以向边缘设备提供云智能(例如与一个或多个云服务的互操作性)。在一个示例中,通过安装和执行IoT边缘运行时间,设备可以被转变为IoT边缘设备(例如作为完整或有限的云资源可用,诸如客户特定的)。在一个示例中,IoT边缘运行时间可以包括一个或多个云程序(例如组件或模块),这些云程序可以被安装在设备上以创建IoT边缘设备。IoT边缘运行时间的组件可以使IoT边缘设备接收代码(例如流数据工作负载逻辑的一个或多个部分),以在边缘处运行并且进行通信(例如结果)。在一个示例中,IoT边缘运行时间可以包括IoT边缘中心(例如用于通信)和IoT边缘代理(例如用于部署和监测模块)。IoT边缘中心可以充当IoT中心的本地委托。
一个或多个云服务(例如云数据流分析)可以在IoT边缘设备上运行。数据流分析的示例是微软
Figure BDA0003380746040000081
流分析,但该示例并非旨在进行限制。流分析可以提供例如事件处理引擎,允许例如实时分析来自应用和IoT设备的数据流。云计算设备138和边缘计算设备136可以运行数据流分析,允许云服务102根据准则放置和迁移工作负载。客户可能有兴趣将其数据流工作负载的部分从云设备移动到其边缘设备,例如以降低成本,减少洞察流数据的时间(例如通过减少设备向云发送消息所花费的时间),避免通信缓慢或中断,并且改进对数据变化的反应时间。
云服务102可以包括(多种)任何类型的云服务,例如IaaS、PaaS、SaaS、BaaS、FaaS等。云服务102可以由任何数量和类型的计算设备来实施。云服务102可以包括私有、公共和/或混合云。云服务组件通过非限制性示例的方式呈现。组件可以在一个或多个计算设备上实施。组件功能性可以在各种实施方式中合并或拆分。
云服务102可以包括为了清晰而未示出的各种组件。例如,云服务102可以包括前端服务器、自动缩放器、资源分配器、调度器服务等。这些组件被简要描述。
前端服务器可以提供例如云服务GUI 130和用于客户服务请求、管理数据和/或计算资源等的应用编程接口(API)。在一个示例中,前端服务器可以向客户计算设备128提供云服务GUI 130以在显示器上呈现给用户。例如,前端服务器可以接收客户流数据作业、放置和迁移准则(例如指定约束的策略)、用户限定的迁移、性能要求(例如在服务级协定(SLA)中)等。前端服务器可以与存储装置(例如存储装置108)通信,例如以存储准则126。前端服务器可以与各种云服务模块(诸如工作负载放置管理器104)通信,例如以提供流数据作业、放置和迁移准则等。前端服务器可以与调度器服务通信,例如以调度流数据作业的执行。例如,前端服务器可以与自动缩放器通信,以提供由客户指定的自动缩放策略。
自动缩放器可以例如为租户的计算任务自动调整一个或多个数据和/或计算资源的容量。自动缩放器可以响应于放置在一个或多个资源上的不同负载而增加(向外扩展)或减少(向内扩展)一个或多个资源的容量。例如,自动缩放可以被实施以符合租户SLA中指定的性能级别。自动缩放器可以与调度器服务和资源度量服务通信,例如以接收和分析当前和预期的负载以做出缩放决策。自动缩放器可以与资源分配器通信,例如以根据自动缩放策略分配资源。
资源分配器可以分配资源。资源分配器可以例如通过增加或减少一个或多个资源的实例数量来向外扩展或向内扩展资源。资源分配器可以与自动缩放器和资源通信,例如以执行由自动缩放器指导的资源缩放。
资源可以包括物理和/或虚拟资源。资源可以包括例如计算机网络、服务器、路由器、存储装置、应用、服务、虚拟机、容器等。物理资源可以是集中式的(例如聚类的)和/或分布式的。在一个示例中,一个或多个资源集群可以被共同定位(例如安置在具有关联组件的一个或多个附近建筑物中,诸如备用电源、冗余数据通信、环境控制等)以形成数据中心。资源可以包括一个或多个数据中心。在一个示例中,资源可以包括云计算设备138。边缘计算设备136可以包括例如客户特定资源。
资源监测器可以生成、收集和/或存储关于实例化资源的信息(例如资源日志和度量)。资源监测器可以与资源度量服务通信,例如以提供监测的资源度量以供存储和/或分析。在一个示例中,资源监测器可以利用与资源相关联的代理来监测和/或收集资源信息。(例如每个)资源实例可以具有例如关联的代理应用,该代理应用生成针对关联的资源的资源信息(例如度量和/或日志数据)。资源信息可以被存储在例如存储装置108中。工作负载放置和/或迁移分析中涉及的资源信息可以被存储例如作为准则126。
调度器服务(例如微软
Figure BDA0003380746040000101
调度器)可以利用一个或多个资源调度流数据作业以供执行。调度器服务可以与前端服务器进行通信,例如以接收由前端服务器接收到的调度信息。调度器服务可以与资源(例如资源实例)通信,例如以调度服务。
存储装置102可以包括任何数量的存储设备(例如在一个或多个位置中)和存储任何类型的信息的任何类型的存储装置。例如,存储装置相对于图9和图10更详细地讨论。图1中的示例示出了可以被存储的信息的多个示例,尽管许多其他类型的信息可以被存储。存储装置102可以例如与云服务102、云计算设备138、边缘计算设备136、云网关134等通信。
数据收集器122可以被配置为例如收集、存储和提供对工作负载放置管理器104和工作负载迁移管理器106的感兴趣的信息的访问,诸如工作负载性能统计127、准则126(例如放置和迁移准则)和检验点124(例如用于迁移的检验点的二进制大对象存储装置)。
除其他云服务之外,云服务102可以提供数据流处理服务。数据流处理服务的示例是微软
Figure BDA0003380746040000102
流分析,但该示例并非旨在进行限制。流分析服务可以提供事件处理引擎来处理/检查来自一个或多个设备的数据流。传入的数据可能来自设备、传感器、web站点、社交媒体馈送、应用等。信息可以从数据流中提取,例如以标识模式和关系。例如,模式可以被用于触发下游的其他动作,诸如创建警报、向报告工具馈送信息和/或存储信息。数据流分析的示例包括IoT传感器融合和设备遥测的实时分析、web日志和点击流分析、车队管理和无人驾驶车辆的地理空间分析、高价值资产的远程监测和预测性维护、用于库存控制和异常检测的销售点数据的实时分析等。
流数据源可以包括被摄取到例如
Figure BDA0003380746040000103
事件中心、
Figure BDA0003380746040000104
IoT中心中或者从诸如
Figure BDA0003380746040000105
二进制大对象存储装置(例如存储装置108)等数据存储库摄取的数据。例如,流可以基于流分析作业而被处理/检查。流分析作业可以被配置有输入、输出和对数据运行的查询。例如,作业可以指定流式数据的输入源、标识(例如限定如何查找)数据、的变换查询、模式或关系。例如,变换查询可以使用SQL查询语言,例如以过滤、排序、聚合和接合一段时间内的流数据。事件定序选项和时间窗口的持续时间可以是可调整的,例如在执行聚合操作的作业执行期间。输出可以针对经变换的数据而被指定。动作可以被采取,诸如将数据发送给监测的队列以触发警报或下游自限定工作流,将数据发送给仪表板进行实时可视化、存储数据(例如用于批量分析或者基于历史数据开发机器学习模型)等。流分析管线可以指输入数据如何被提供给流分析、经分析和/或经变换并经转发用于其他动作(例如存储或呈现)。
在一个示例中,工业自动化客户可能具有自动化制造过程,其具有能够实时发射数据流的成百上千个传感器(例如IoT设备132)。现场网关可以将数据流推送给云设备(例如云网关134)。来自传感器数据的实时洞察可以指示模式和可能采取的动作。流分析查询语言(SAQL)可以被用于创建一个或多个查询以搜索(例如分析)传感器数据流以找到期望信息。流分析作业(例如实施一个或多个查询)可以从云网关摄取事件,并且针对流运行实时分析查询。查询结果可以被提供给一个或多个输出。例如,查询可以归档原始数据(例如通过输入传递到输出而不进行分析)、用于减少分析的数据的过滤数据(例如基于条件)、用于触发警报、显示或其他商业逻辑、检测一个或多个事件的缺失的监测数据(例如基于时间窗口)等。
云服务102可以针对例如经由客户计算设备128提供的流数据作业提供工作负载放置和迁移服务。云服务102可以包括例如工作负载放置管理器104和工作负载迁移管理器106。其他实施方式可以包括用于提供数据流工作负载放置和迁移的其他组件。
工作负载放置管理器104可以接收关于至少一个数据流的查询。例如,工作负载放置管理器可以接收流分析作业,其指示关于一个或多个输入流和一个或多个输出的一个或多个查询。工作负载放置管理器104可以例如通过确定查询和子查询的查询逻辑、确定将查询逻辑放置在哪里、配置、实例化和启动查询逻辑来处理作业。
工作负载放置管理器104可以确定用于相对于指定数据流实现查询的查询逻辑。例如,工作负载放置管理器104可以确定将实现查询的查询和子查询逻辑。查询逻辑可以在实现该逻辑的一个或多个资源(例如计算设备、存储设备)上创建工作负载。由查询逻辑引起的预期负载可以基于例如完成查询所涉及的逻辑复杂度、资源消耗、数据体量(volume)、计算时间、互连性、通信时间、存储时间、计算数量和类型、输出数量等。
工作负载放置管理器104可以包括例如放置准则分析器110、放置计划器112和放置实现器114。
放置准则分析器110可以分析由逻辑和工作负载放置准则(例如统计、规则)创建的工作负载,例如以确定云和/或边缘资源上的工作负载放置/分布。放置准则分析器110可以访问例如存储在存储装置108中的准则126中的工作负载放置准则。准则126可以被周期性地更新。分析中考虑的工作负载放置准则可以包括例如边缘和云通信质量、时延、附加工作负载的边缘负载或容量、附加工作负载的云负载或容量、工作负载性能要求(例如针对客户和/或查询)、云工作负载部署的成本、系统约束、客户约束(例如PII处置、最大成本)、GDPR、符合性问题、数据量和类型、原产地约束或限制等。
放置计划器112可以(例如基于分析)创建工作负载放置计划以部署查询逻辑。放置计划器112可以在边缘部署、云部署以及云和边缘上的拆分/混合部署之间进行选择。对工作负载和工作负载放置准则的分析的结果可以确定部署。在一个示例中,边缘和/或云计算设备136、138可以不是部署的一部分,例如当它们缺乏附加工作负载的容量时。在附加示例中,云计算设备138的参与可以受到限制,例如当流数据包括PII并且存在关于由云服务102处置的PII的客户约束时。在一个示例中,工作负载放置计划可以在云和边缘之间拆分对查询逻辑的部署,基于包括用于PII处置的客户约束的工作负载放置准则将对PII的处理限制于边缘。在另一示例中,工作负载可以至少部分地在边缘计算设备上实现,例如以满足客户成本约束和/或避免与云的错误通信。
放置实现器114可以调用或执行工作负载放置计划以创建经部署工作负载,该经部署工作负载基于查询逻辑提供对至少一个数据流的流处理。放置实现器114可以遵循工作负载放置计划,例如通过在计划中指定的计算设备上创建查询逻辑的实例、连接查询逻辑的实例、初始化逻辑实例的状态并且启动逻辑实例。逻辑节点可以包括例如输入节点、计算节点和输出节点。节点可以包括查询处理单元。节点可以包括没有物理约束的逻辑实体。计算节点可以执行查询或子查询工作负载。节点可以基于查询逻辑处理一个或多个数据流。逻辑可以被实施为多个互连的过程和/或子过程。例如,逻辑可以被实施为并行过程。过程可以包括例如执行任务并且彼此通信的软件逻辑。过程可能是移动的,而不考虑物理环境。过程可以以极大的灵活性实施,例如每个过程一个节点或任何其他布置/配置。在一个示例中,例如如图2A所示,放置实现器114可以根据工作负载放置计划在边缘和/或云计算设备136、138上实例化查询逻辑。
图2A是根据示例实施例的示例数据流工作负载放置的框图。图2A呈现了无数可能的工作负载放置示例中的一个示例。图2A示出了工作负载计划的拆分/混合部署的示例。为了清晰起见,连接性未被示出。在该示例中,工作负载计划是利用四个管线实施的。边缘计算设备202可以是在一个或多个边缘计算设备上具有指派的工作负载的边缘计算设备136的示例。云计算设备204可以是在一个或多个云计算设备上具有指派的工作负载的边缘计算设备138的示例。作为示例,边缘计算设备A 202A包括两个(第一和第二)并行管线206、208。第一管线206包括输入节点1、计算节点1和输出节点1。第二管线208包括输入节点2、计算节点2和输出节点2。作为示例,云计算设备A 204A包括两个(第三和第四)并行管线210、212。第三管线210包括输入节点3、计算节点3和输出节点3。第四管线212包括输入节点4、计算节点4和输出节点4。
流处理(例如由查询逻辑实施)可以例如使用基于锚的流处理来实施。具体地,流处理可以使用用于一次性处理的基于拉取的、基于锚的方法来执行。曲线图(例如表示互连的计算设备)中的(例如每个)节点(例如计算设备)可以建立锚的系统。锚可以描述节点的输出流中的点,使得流中的每个事件要么在任何给定锚之前,要么在其之后。
锚可以表示数据流中的(例如物理)点。锚可以是锚的列表。与锚相关联的时间可以表示与数据流中的数据相关联的逻辑上有意义的时间值。数据流中的数据可以是但不限于事件数据。在一个示例中,锚(A)可以被用于将数据流分割为两个部分:在锚之前出现的数据或事件(E),以及在锚之后出现的数据或事件。例如,任何单位的数据或事件都可以与任何锚进行比较,即使多个单位的数据或事件本身可能无法与其他数据进行比较。锚可以被用于从流中读取数据。时间可以被用于发起生成所请求的结果的操作。
下游节点可以使用上游节点的锚来拉取数据。由下游节点在重启后提供的锚可以精确地向下游节点告知下游节点尚未处理哪些事件。下游节点可以在恢复时读取自己的状态,并且使用其上次使用的锚继续(resume)从上游节点拉取数据。在设置检验点(checkpoint)和恢复时可能不必须节点之间的协调。例如,在流计算的上下文中,恢复可以涵盖执行流计算的节点被重启并且从它故障的点继续其计算的失败。
在一个示例中,锚可以具有两个部分,当前点的瞬时描述可以被用于优化正常处理,并且同一点的持久描述可以被用于重启的情况。输入流的锚可以对应于流的一个或多个物理方面(例如流的物理方面的组合)。流的物理方面的示例包括但不限于偏移、到达时间或文件标识符。计算节点的锚可以包括他们的输入的锚。如果输入锚之前的事件被摄取并且对它们执行所有可能的处理,则锚之前的数据可以是将被输出的数据。各种故障(例如崩溃、中断)可以从中恢复,包括例如当多个故障可能会使系统沿着不兼容的路径执行时。
实现查询逻辑的全部或一部分的计算设备可以包括例如以下中的一项或多项(例如以下任何数量的任何组合):输入节点、计算节点和输出节点。输入节点可以从一个或多个数据源读取或访问数据,并且可以生成针对计算节点的输入。计算节点可以对数据执行计算。计算节点可以是针对另一计算节点的输入节点。计算节点可以生成新的数据流。输出节点可以将数据从计算节点写入数据接收器(例如存储装置)。
流处理可以基于锚,其中锚(例如输入锚)可以表示数据流中的点。锚可以被用于从数据流中读取数据。锚(例如计算节点锚)可以是锚的列表。锚可以是任意嵌套级别的锚列表的列表。锚可以由输入节点创建。锚可以由计算节点创建。由计算节点创建的锚可以是输入锚的列表。输出节点可以接收锚并且存储它们。流处理可以基于时间,其中时间可以表示与数据单位相关联的逻辑上有意义的时间值,诸如但不限于事件。时间可以被用于发起用于返回所请求的结果的处理。在一个示例中,锚可以被用于将数据流分割为两个部分(例如锚之前和之后的事件,例如当数据流包括事件流时。
数据流可以使用锚而被处理,以实现一次性处理和一次性输出,这意味着没有输出丢失并且没有输出被生成两次,例如即使在恢复(或迁移)可以被执行时。锚可以使数据的任何接收器能够知道哪些数据已经被处理(例如锚之前的数据)以及哪些数据没有被处理(例如锚之后的数据)。
处理输出流的计算设备(例如输出节点)可以设置和存储当前锚(例如上次生成的锚),例如使得当要继续的请求被接收到时,计算设备可以使用输出流中的当前锚来访问来自输出数据流的未发送结果,例如而不是重新发送数据。这可以支持一次性处理和输出。写入输出的节点(例如输出节点)可以使用锚来控制什么数据被发送给它。物理锚可以被用于输入数据流。物理锚可以是输入数据流的物理方面,诸如但不限于文件中的偏移。文件中的偏移可以指示文件的多少字节已经被读取和/或处理。虽然可能不是逻辑上有意义的信息,但该信息可以使输入节点能够从它停止的确切位置继续流处理。
包括输入数据流的锚列表的锚可以由处理输入数据流的节点(例如计算节点)使用以生成针对计算节点的输出的锚。这可以使计算节点能够知道在一个或多个输入数据流中从何处启动处理。锚和与输出可以被请求的数据相关联的时间点之间可以存在关系。这可以使请求者能够提出请求,诸如:“在下午2点开始生成输出”。
基于锚的流处理还可以被执行如下。在启动阶段期间:分别标识特定时间的(多个)启动锚请求可以被累积,直到(多个)请求从下游节点挂起为止。累积的(多个)启动锚请求的最小时间可以被确定。例如,当处理系统是输入节点时,与所确定的最小时间相关联的锚可以被生成。启动锚请求可以(例如以其他方式)被提供给标识所确定的最小时间的上游节点。例如,当与所确定的最小时间相关联的锚可以被(例如)接收(或生成)时,锚可以响应于被轮询的启动锚请求锚在所确定的最小内从下游节点被提供。在恢复阶段期间,对由两个具体锚定界的批量数据的异步请求可以根据存储在有序锚集合中的信息来执行。
现在返回到图1的描述,工作负载迁移管理器106可以确定何时以及如何迁移经部署工作负载的全部或一部分。工作负载迁移管理器106可以利用对关于经部署工作负载的信息的访问来监测其进展和性能统计。工作负载迁移管理器106可以包括例如迁移准则分析器116、迁移计划器118和迁移实现器120。
迁移准则分析器116可以例如通过分析针对经部署工作负载的工作负载性能统计127和工作负载迁移准则126来监测经部署工作负载,以确定是否以及如何将经部署工作负载的至少一部分向/从云和/或边缘资源迁移。确定可以根据一种或多种算法进行,算法可以根据重要性对变量进行加权。根据云和边缘实施方式和目标等,算法可能会有很大差异。
迁移准则分析器116可以访问存储在存储装置108中的工作负载性能统计127和工作负载放置准则(例如准则126)。准则126和工作负载性能统计127可以例如由数据收集器122周期性地更新。迁移准则分析器116可以考虑例如改进是否可以对流处理性能进行,诸如效率、成本有效性等。云和边缘条件可能因评估而异。在一个示例中,附加边缘计算设备202可能已经变得可用和/或具有改进的(例如更快、更高质量)通信的计算设备可能在工作负载放置之后变得可用。分析中考虑的工作负载迁移准则可以包括例如边缘和云通信质量、时延、附加工作负载的边缘负载或容量、附加工作负载的云负载或容量、工作负载性能要求(例如针对客户和/或查询)、云迁移的成本、从迁移节省的成本、系统约束、客户约束(例如PII处置、最大成本)、GDPR、符合性问题、数据量和类型、原产地约束或限制、自放置以来的时间、自上次迁移以来的时间等。工作负载迁移管理器106还可以考虑例如客户限定的迁移。在一个示例中,客户可以不考虑性能或准则而强制迁移。
迁移计划器118可以(例如基于分析)创建工作负载迁移计划以迁移经部署查询逻辑。迁移计划器118可以在边缘部署、云部署以及云和边缘上的拆分/混合部署之间进行选择。迁移可以将逻辑的全部或一部分从云迁移向边缘,反之亦然。取决于工作负载放置,迁移可以将工作负载逻辑的一个或多个部分从边缘迁移向边缘、从边缘迁移向云、从边缘迁移向边缘和云、从云迁移向云、从云迁移向边缘和/或从云迁移向云和边缘。例如,迁移计划可以指定一个或多个源计算设备上的现有(源)查询或子查询逻辑,以迁移向一个或多个目标计算设备。
迁移实现器120可以调用或执行工作负载迁移计划以创建迁移经部署工作负载的全部或一部分,该经部署工作负载基于查询逻辑继续提供至少一个数据流的流处理。迁移实现器120可以确定被迁移计划影响的逻辑节点。迁移实现器120可以调用工作负载放置计划,例如通过停止被工作负载迁移计划影响的一个或多个源查询逻辑节点,对停止的源查询逻辑节点设置检验点以创建一个或多个源查询逻辑节点的状态的快照,创建具有与至少一个源查询逻辑节点的配置和连接(例如全息图拓扑)相匹配的配置和连接的一个或多个目标查询逻辑节点(例如查询逻辑节点的实例);向一个或多个目标查询逻辑节点提供一个或多个源查询节点的来自检验点的状态;以及启动一个或多个目标查询逻辑节点。
数据可以停止流入/流出停止的逻辑节点,但是对于未受影响的逻辑节点可以继续。没有更多数据可以使用锚从源实体被拉取。
停止的(多个)逻辑节点的检验点可以例如包括标识某个时间点的数据状态的任何标识符或其他参考。检验点可以与锚不同,例如因为锚标识数据流中的点。锚可以不包括数据状态。例如,检验点可以被存储为二进制大对象(BLOB)。例如,检验点124可以被存储在存储装置108中,例如用于由迁移目标计算设备访问以在目标计算设备上被实例化和连接的目标逻辑节点中复制源逻辑节点的状态。
迁移可以使用锚协议,例如以支持(例如确保)流数据的一次性处理、一次性数据输出,并且没有数据丢失(例如无损数据处理)。由被迁移的源运行时中的源逻辑节点或实体生成的最后一批数据的锚可以被指派为目标运行时中的同一(目标)实体的启动节点。例如,基于锚而不是时间戳确定的输入可以确保输入仅被读取一次。时间戳可以包括例如可以标识事件何时发生或由计算机记录的字符序列或编码信息。记录的锚可以是最后一个,这样可以确保没有数据在锚被记录后从迁移实体发出。在逻辑节点被停止并且锚被记录后设置检验点(例如将锚作为检验点密钥)可以有助于确保没有输入被重新处理。
检验点可以包含源数据和锚状态。来自源输出节点的被设置检验点的锚可以被指派给目标计算设备上的目标输出节点。例如,目标输出节点/实体可以被配置有源输出节点锚。输出节点锚可以被用于向输出节点告知在数据中的何处开始处理或从上游节点拉取数据,例如以避免重新处理。计算节点和数据节点可以将它们的状态保存在检验点中。来自源实体的检验点二进制大对象中的任何数据都被提供给目标实体。
状态修复可以例如通过向目标输出节点提供源输出节点锚而发生。当目标输出节点将锚传递给上游实体时,上游实体可以获取检验点(例如在存储的BLOB中)以修复状态,例如响应于目标输出节点将其指派的锚传递给上游实体。
组件可以彼此独立地启动,这可以最小化时延和停机时间。输出节点具有从上游节点拉取数据的锚,而输入节点(如果已迁移)可以发起与(多个)数据源的连接。
锚可以被用于在迁移流处理之前和之后支持无损一次性处理和输出。目标输出节点通过从上游节点拉取未由源输出节点从上游节点拉取的数据来开始,这在迁移之前和之后提供对至少一个数据流的一次性无损处理。
在一个示例中,例如如图2B所示,迁移实现器120可以根据工作负载迁移计划在边缘和/或云计算设备136、138上迁移查询逻辑。
图2B是根据示例实施例的示例数据流工作负载迁移的框图。图2B呈现了无数可能的工作负载迁移示例中的一个示例。取决于工作负载放置,迁移可以将工作负载逻辑的一个或多个部分从边缘迁移向边缘、从边缘迁移向云、从边缘迁移向边缘和云、从云迁移向云、从云迁移向边缘和/或从云迁移向云和边缘。图2B示出了工作负载计划(例如图2A所示)的部分的双向迁移的示例。为了清晰起见,逻辑的互连性未被示出。在该示例中,迁移是通过保持四个管线完好无损,同时在云和边缘计算设备之间迁移其中三个管线来实施的。在该示例中(例如将图2A中的工作负载放置与图2B中的工作负载迁移进行比较),第一管线206保留在边缘计算设备A 202A上,第二管线208从边缘计算设备A 202A迁移向云计算设备C 204C(其中它被表示为第二管线208m),第三管线210从云计算设备A 204A迁移向云计算设备B 204B(其中它被表示为第三管线210m),并且第四管线212从云计算设备A 204A迁移向边缘计算设备B 202B(其中它被表示为第四管线212m)。如先前指示的,虽然该示例示出了所迁移的管线,但迁移可能会移动逻辑的任何部分或所有逻辑。
B.用于具有无损一次性处理的自动化云边缘流工作负载分布和双向迁移的示例方法
实施例还可以在过程或方法中实施。例如,图3是根据示例实施例的用于数据流工作负载放置的示例方法的流程图。本文公开的实施例和其他实施例可以根据方法300操作。方法300包括步骤302至步骤310。然而,其他实施例可以根据其他方法操作。基于实施例的前述讨论,其他结构和操作实施例对于(多个)相关领域的技术人员将是显而易见的。除非明确指示或固有要求,否则不需要步骤顺序。不要求方法实施例实施图3所图示的所有步骤。图3只是许多可能实施例中的一个实施例。实施例可以实施更少、更多或不同的步骤。
方法300开始于步骤302。在步骤302中,关于至少一个数据流的查询可以被接收。例如,如图1所示,云服务102(例如前端服务器)可以接收流工作负载作业,包括来自客户计算设备128中的客户计算设备的查询。该查询可以被提供给工作负载放置管理器104。
在步骤304中,用于处理查询的工作负载(例如查询逻辑)可以被确定。例如,如图1所示,工作负载放置管理器104可以确定用于实现接收到的查询的查询逻辑。
在步骤306中,工作负载和周期性地更新的工作负载放置准则可以被分析。例如,如图1所示,放置准则分析器110可以分析由数据收集器122获得并且存储在存储装置108中的工作负载和工作负载放置准则。
在步骤308中,基于对工作负载和工作负载放置准则的分析,(多个)云设备和/或(多个)边缘设备上的工作负载放置计划被创建。例如,如图1所示,放置计划器112基于放置准则分析器110的分析创建工作负载放置计划。
在步骤310中,工作负载放置计划被调用。例如,如图1和图2A所示,放置实现器114通过在边缘计算设备202A和云计算设备204A上实例化、配置和启动查询逻辑(第一管线至第四管线206、208、210、212)来实现由放置计划器112创建的放置计划。
图4是根据示例实施例的用于数据流工作负载放置的示例方法的流程图。本文公开的实施例和其他实施例可以根据方法400操作。方法400包括步骤402至步骤410。然而,其他实施例可以根据其他方法操作。基于实施例的前述讨论,其他结构和操作实施例对于(多个)相关领域的技术人员将是显而易见的。除非明确指示或固有要求,否则不需要步骤顺序。不要求方法实施例实施图4所图示的所有步骤。图4只是许多可能实施例中的一个实施例。实施例可以实施更少、更多或不同的步骤。
方法400开始于步骤402。在步骤402中,服从于客户约束和资源约束的查询被分析。例如,如图1所示,放置准则分析器110可以分析查询(例如查询复杂度)和工作负载放置准则,包括由数据收集器122获得并且存储在存储装置108中的客户约束和资源约束。
在步骤404中,可以确定查询设法分析个人可标识信息(PII)。例如,如图1所示,放置准则分析器110可以观察到查询设法分析PII,其可以限制查询放置。
在步骤406中,可以确定存在限制PII处置的客户约束。例如,如图1所示,放置准则分析器110可以观察到准则126包括限制PII处置的客户约束,其可以限制查询放置。
在步骤408中,拆分查询逻辑部署的工作负载计划被创建,使得PII在(多个)边缘设备上被分析并且被发送给(多个)云设备的PII被匿名。例如,如图1所示,放置计划器112可以创建工作负载计划,该工作负载计划拆分查询逻辑部署,使得PII在(多个)边缘设备202上被分析并且被发送给(多个)云设备204的PII被匿名。
在步骤410中,隐私保护混合查询逻辑计划被部署到云和边缘设备。例如,如图1和图2A所示,放置实现器114通过在边缘计算设备202A上实例化、配置和启动查询逻辑的第一部分(第一管线和第二管线206、208)来实现由放置计划器112创建的放置计划,以分析至少一个数据流中的PII,并且使被提供给云计算设备204A上的查询逻辑的第二部分(第二管线和第三管线210、212)的PII匿名。
图5是根据示例实施例的用于数据流工作负载迁移的示例方法的流程图。本文公开的实施例和其他实施例可以根据方法500操作。方法500包括步骤502至步骤510。然而,其他实施例可以根据其他方法操作。基于实施例的前述讨论,其他结构和操作实施例对于(多个)相关领域的技术人员将是显而易见的。除非明确指示或固有要求,否则不需要步骤顺序。不要求方法实施例实施图5所图示的所有步骤。图5只是许多可能实施例中的一个实施例。实施例可以实施更少、更多或不同的步骤。
方法500开始于步骤502。在步骤502中,工作负载性能和周期性地更新的工作负载迁移准则被分析。例如,如图1所示,迁移准则分析器116分析由数据收集器122周期性地收集并且存储在存储装置108中的工作负载性能统计127和准则126。
在步骤504和步骤506中,基于:(1)步骤502中的分析或(2)用户限定的迁移506,确定是否迁移经部署工作负载的任何部分。例如,如图1所示,迁移准则分析器116基于分析或基于由客户计算设备128中的客户计算设备提供的用户限定的迁移来确定是否迁移经部署工作负载的任何部分。例如,当迁移准则分析器116确定因为性能统计是令人满意的,迁移准则未被满足,并且因为没有用户限定的迁移,或者即使有,条件不满足用户限定的迁移,所以逻辑不应该被迁移。该程序进行到迁移计划步骤508,例如当准则分析器116确定因为性能统计不令人满意、迁移准则被满足、或者因为用户限定的迁移条件被满足而逻辑应该被迁移时。
在步骤508中,工作负载迁移计划被创建,以基于分析和/或用户限定的迁移将逻辑的至少一部分从源移动向(多个)目标云设备和/或(多个)边缘设备。例如,如图1所示,迁移计划器118创建工作负载迁移计划,以基于分析和/或用户限定的迁移移动部署逻辑的至少一部分。
在步骤510中,工作负载迁移计划被调用,包括监测和误差处置。例如,如图1和图2B所示,迁移实现器120通过停止要在一个或多个源计算设备上迁移的逻辑(源逻辑),在一个或多个目标计算设备上实例化、配置和启动迁移的查询逻辑(目标逻辑)来实施由迁移计划器118创建的迁移计划。迁移实现器120可以确定由迁移计划影响的逻辑节点,停止由工作负载迁移计划影响的一个或多个源查询逻辑节点,对停止的源查询逻辑节点设置检验点以创建一个或多个源查询逻辑节点的状态的快照,创建其配置和连接与至少一个源查询逻辑节点的配置和连接(例如曲线图拓扑)相匹配的一个或多个目标查询逻辑节点(例如查询逻辑节点的实例);向一个或多个目标查询逻辑节点提供一个或多个源查询节点的来自检验点的状态;并且启动一个或多个目标查询逻辑节点。如图2中的示例所示,迁移实现器120通过保持四个管线完好无损,同时在云和边缘计算设备之间迁移其中三个管线来调用迁移。在该示例中(例如将图2A中的工作负载放置与图2B中的工作负载迁移进行比较),第一管线206保留在边缘计算设备A 202A上,第二管线208从边缘计算设备A 202A迁移向云计算设备C 204C(其中它被表示为第二管线208m),第三管线210从云计算设备A 204A迁移向云计算设备B 204B(其中它被表示为第三管线210m),并且第四管线212从云计算设备A 204A迁移向边缘计算设备B 202B(其中它被表示为第四管线212m)。迁移的误差处置可以包括例如尝试一次或多次重试以克服故障,直至达到最大重试次数或超时为止。例如,成功的重试可能会导致继续迁移,或者如果迁移完成,则返回到迁移准则分析。例如,不成功的重试可能会导致回滚到迁移前的状况(例如重启停止的逻辑)并且返回到迁移分析。
图6是根据示例实施例的用于数据流工作负载迁移的示例方法的流程图。本文公开的实施例和其他实施例可以根据方法600操作。方法600包括步骤602至步骤610。然而,其他实施例可以根据其他方法操作。基于实施例的前述讨论,其他结构和操作实施例对于(多个)相关领域的技术人员将是显而易见的。除非明确指示或固有要求,否则不需要步骤顺序。不要求方法实施例实施图6所图示的所有步骤。图6只是许多可能实施例中的一个实施例。实施例可以实施更少、更多或不同的步骤。
方法600开始于步骤602。在步骤602中,被迁移计划影响的工作负载逻辑实体可以被停止。例如,如图1、图2A和图2B所示,迁移实现器120可以停止第二管线208、第三管线210和第四管线212。
在步骤604中,工作负载逻辑状态的快照(包括锚)被创建在检验点中并且被存储为二进制大对象。例如,如图1、图2A和图2B所示,迁移实现器120可以对第二管线208、第三管线210和第四管线212设置检验点,并且将检验点作为检验点124中的二进制大对象存储在存储装置108中。
在步骤606中,工作负载逻辑实体以具有相同连接的相同配置从迁移源迁移向迁移目标。例如,如图1、图2A和图2B所示,以与迁移源边缘计算设备A 202A和云计算设备A204A上的第二管线208、第三管线210和第四管线212相同的配置和连接,迁移实现器120分别在迁移目标云计算设备C 204C、云计算设备B 204B和边缘计算设备B 202B上实例化和连接第二管线208m、第三管线210m和第四管线212m。
在步骤608中,使用二进制大对象的经迁移工作负载逻辑实体的状态被修复,包括将锚指派给输出节点。例如,如图1和图2B所示,迁移实现器120可以利用检验点124中的检验点来修复迁移的第二管线208m、第三管线21m0和第四管线212m中的逻辑节点的状态,包括将被设置检验点的锚指派给目标输出节点2、目标输出节点3和目标输出节点4。
在步骤610中,经迁移工作负载逻辑实体可以被启动。例如,如图1和图2B所示,迁移的第二管线208m、第三管线210m和第四管线212m中的逻辑节点可以独立地从迁移前逻辑节点停止的地方启动,其中输入节点2、输入节点3和输入节点4连接至数据流源,并且输出节点2、输出节点3和输出节点4分别向上游节点计算节点2、计算节点3和计算节点4提供其指派的锚。
图7是根据示例实施例的用于数据流工作负载迁移的示例方法的流程图。本文公开的实施例和其他实施例可以根据方法700操作。方法700包括步骤702至步骤710。然而,其他实施例可以根据其他方法操作。基于实施例的前述讨论,其他结构和操作实施例对于(多个)相关领域的技术人员将是显而易见的。除非明确指示或固有要求,否则不需要步骤顺序。不要求方法实施例实施图7所图示的所有步骤。图7只是许多可能实施例中的一个实施例。实施例可以实施更少、更多或不同的步骤。
方法700开始于步骤702。在步骤702中,工作负载性能和周期性地更新的工作负载迁移准则被分析,以确定:(1)边缘计算设备无法处置计算性负载;以及(2)具有当前资源的云设备能够处置负载。例如,如图1所示,迁移准则分析器116分析由数据收集器122周期性地收集并且存储在存储装置108中的工作负载性能统计127和准则126,以确定:(1)边缘计算设备无法处置计算性负载;以及(2)具有当前资源的云设备能够处置负载。
在步骤704和步骤706中,基于:(1)步骤702中的分析或(2)用户限定的迁移706,确定是否迁移经部署工作负载的任何部分。例如,如图1所示,迁移准则分析器116基于分析或基于由客户计算设备128中的客户计算设备提供的用户限定的迁移来确定是否迁移经部署工作负载的任何部分。例如,基于准则分析器116确定因为(1)边缘计算设备无法处置计算性负载;以及(2)具有当前资源的云设备能够处置负载,逻辑应该被迁移,该程序进行到迁移计划步骤708。
在步骤708中,基于分析和/或用户限定的迁移,工作负载迁移计划被创建以将逻辑的至少一部分从源移动向(多个)目标云设备和/或(多个)边缘设备。例如,如图1所示,迁移计划器118创建工作负载迁移计划,以基于分析和/或用户限定的迁移移动部署逻辑的至少一部分。参考图2A所示的示例,考虑到分析确定边缘计算设备204无法处置计算性负载,迁移计划将计划将第一管线206和第二管线208迁移向一个或多个云计算设备204,并且在必要时将第三管线210和第四管线212从云计算设备A 204A迁移向一个或多个其他云计算设备204。
在步骤710中,工作负载迁移计划被调用,包括监测和误差处置。例如,如图1所示,迁移实现器120通过停止要在一个或多个源计算设备上迁移的逻辑(源逻辑),在一个或多个目标计算设备上实例化、配置和启动迁移的查询逻辑(目标逻辑)来实施由迁移计划器118创建的迁移计划。迁移实现器120可以确定由迁移计划影响的逻辑节点,停止被工作负载迁移计划影响的一个或多个源查询逻辑节点,对停止的源查询逻辑节点设置检验点以创建一个或多个源查询逻辑节点的状态的快照,创建其配置和连接与至少一个源查询逻辑节点的配置和连接(例如曲线图拓扑)相匹配的一个或多个目标查询逻辑节点(例如查询逻辑节点的实例);向一个或多个目标查询逻辑节点提供一个或多个源查询节点的来自检验点的状态;并且启动一个或多个目标查询逻辑节点。参照图2A中的示例,考虑到分析确定边缘计算设备204无法处置计算性负载,迁移计划计划将第一管线206和第二管线208迁移向一个或多个云计算设备204,并且在必要时将第三管线210和第四管线212从云计算设备A迁移向一个或多个其他云计算设备204。迁移实现器120将调用该计划。迁移的误差处置可以包括例如尝试一次或多次重试以克服故障,直至达到最大重试次数或超时为止。例如,成功的重试可能会导致继续迁移,或者如果迁移完成,则返回到迁移准则分析。例如,不成功的重试可能会导致回滚到迁移前的状况(例如重启停止的逻辑)并且返回到迁移分析。
图8是根据示例实施例的用于数据流工作负载迁移的示例方法的流程图。本文公开的实施例和其他实施例可以根据方法800操作。方法800包括步骤802至步骤810。然而,其他实施例可以根据其他方法操作。基于实施例的前述讨论,其他结构和操作实施例对于(多个)相关领域的技术人员将是显而易见的。除非明确指示或固有要求,否则不需要步骤顺序。不要求方法实施例实施图8所图示的所有步骤。图8只是许多可能实施例中的一个实施例。实施例可以实施更少、更多或不同的步骤。
方法800开始于步骤802。在步骤802中,工作负载性能和周期性地更新的工作负载迁移准则被分析,以确定:(1)云和边缘之间的网络是不可靠/间歇的;以及(2)边缘计算设备具有针对经迁移逻辑的容量。例如,如图1所示,迁移准则分析器116分析由数据收集器122周期性地收集并且存储在存储装置108中的工作负载性能统计127和准则126,以确定:(1)云和边缘之间的网络是不可靠/间歇的;以及(2)边缘计算设备具有针对经迁移逻辑的容量。
在步骤804和步骤806中,基于:(1)步骤802中的分析或(2)用户限定的迁移806,确定是否迁移经部署工作负载的任何部分。例如,如图1所示,迁移准则分析器116基于分析或基于由客户计算设备128中的客户计算设备提供的用户限定的迁移来确定是否迁移经部署工作负载的任何部分。例如,基于准则分析器116确定(1)云和边缘之间的网络是不可靠/间歇的;以及(2)边缘计算设备具有针对经迁移逻辑的容量,该程序进行到迁移计划步骤808。
在步骤808中,工作负载迁移计划基于分析和/或用户限定的迁移被创建,以将逻辑的至少一部分从源移动到(多个)目标云设备和/或(多个)边缘设备。例如,如图1所示,迁移计划器118基于分析和/或用户限定的迁移创建工作负载迁移计划,以移动部署逻辑的至少一部分。参照图2A所示的示例,考虑到分析确定云和边缘之间的网络是不可靠/间歇的并且边缘计算设备具有针对经迁移逻辑的容量,迁移计划将计划将第三管线210和第四管线212迁移向一个或多个边缘计算设备202,并且在必要时将第二管线208从边缘计算设备A202A迁移向一个或多个其他边缘计算设备202。
在步骤810中,工作负载迁移计划被调用,包括监测和误差处置。例如,如图1所示,迁移实现器120通过停止要在一个或多个源计算设备上迁移的逻辑(源逻辑),在一个或多个目标计算设备上实例化、配置和启动迁移的查询逻辑(目标逻辑)来实施由迁移计划器118创建的迁移计划。迁移实现器120可以确定由迁移计划影响的逻辑节点,停止由工作负载迁移计划影响的一个或多个源查询逻辑节点,对停止的源查询逻辑节点设置检验点以创建一个或多个源查询逻辑节点的状态的快照,创建其配置和连接与至少一个源查询逻辑节点的配置和连接(例如曲线图拓扑)相匹配的一个或多个目标查询逻辑节点(例如查询逻辑节点的实例);向一个或多个目标查询逻辑节点提供一个或多个源查询节点的来自检验点的状态;并且启动一个或多个目标查询逻辑节点。参照图2A中的示例,考虑到分析确定云和边缘之间的网络是不可靠/间歇的并且边缘计算设备具有针对经迁移逻辑的容量,迁移计划计划将第三管线210和第四管线212迁移向一个或多个边缘计算设备202,并且在必要时将第二管线208从边缘计算设备A 202A迁移向一个或多个其他边缘计算设备202。迁移实现器120将调用该计划。迁移的误差处置可以包括例如尝试一次或多次重试以克服故障,直至达到最大重试次数或超时为止。例如,成功的重试可能会导致继续迁移,或者如果迁移完成,则返回到迁移准则分析。例如,不成功的重试可能会导致回滚到迁移前的状况(例如重启停止的逻辑)并且返回到迁移分析。
III.示例移动设备和计算设备实施例
本文描述的实施例可以在硬件或者与软件和/或固件组合的硬件中实施。例如,本文描述的实施例可以被实施为计算机程序代码/指令,其被配置为在一个或多个处理器中执行并且被存储在计算机可读存储介质中。备选地,本文描述的实施例可以被实施为硬件逻辑/电气电路系统。
如本文提到的,所描述(包括在图1至图8中)的实施例及其任何模块、组件和/或子组件以及本文描述的流程图/流向图(包括其部分)和/或本文描述的其他示例可以在硬件或者具有软件和/或固件的任何组合的硬件中实施,包括被实施为计算机程序代码,该计算机程序代码被配置为在一个或多个处理器中执行并且被存储在计算机可读存储介质中,或者被实施为硬件逻辑/电气电路系统,诸如在片上系统(SoC)、现场可编程门阵列(FPGA)和/或专用集成电路(ASIC)中一起实施。SoC可以包括集成电路芯片,该集成电路芯片包括处理器(例如微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口和/或其他电路和/或嵌入式固件中的一个或多个以执行其功能。
本文描述的实施例可以在与静止或移动计算机实施例中的移动系统和/或计算设备类似的一个或多个计算设备中实施,包括本文描述的移动系统和/或计算设备的一个或多个特征以及替代特征。本文提供的移动系统和计算设备的描述是出于说明的目的提供的,并且不旨在是限制性的。如(多个)相关领域的技术人员已知的,实施例可以在其他类型的计算机系统中实施。
图9是示例性移动系统900的框图,该示例性移动系统900包括可以实施本文描述的实施例的移动设备902。例如,在先前章节中,移动设备902可以被用于实施任何系统、客户端或者设备或其组件/子组件。如图9所示,移动设备902包括各种可选的硬件和软件组件。移动设备902中的任何组件都能够与任何其他组件通信,尽管并非所有连接都为了便于说明而示出。移动设备902能够是各种计算设备中的任何一个(例如手机、智能电话、手持式计算机、个人数字助理(PDA)等),并且能够允许与一个或多个移动通信网络904(诸如蜂窝或卫星网络)或者局域网或广域网进行无线双向通信。
移动设备902能够包括控制器或处理器910(例如信号处理器、微处理器、ASIC或者其他控制和处理逻辑电路系统),用于执行诸如信号编码、数据处理、输入/输出处理、功率控制和/或其他功能等任务。操作系统912能够控制移动设备902的组件的分配和使用,并且为一个或多个应用程序914(也称为“应用”或“app”)提供支持。应用程序914可以包括公共移动计算应用(例如电子邮件应用、日历、联系人管理器、web浏览器、消息收发应用)和任何其他计算应用(例如文字处理应用、制图应用、媒体播放器应用)。
移动设备902能够包括存储器920。存储器920能够包括不可移除存储器922和/或可移除存储器924。不可移除存储器922能够包括RAM、ROM、闪存、磁盘或者其他众所周知的存储器设备或技术。可移除存储器924能够包括闪存或订户标识模块(SIM)卡(GSM通信系统中众所周知的)或者其他众所周知的存储器设备或技术(诸如“智能卡”)。存储器920能够被用于存储数据和/或代码,以运行操作系统912和应用程序914。示例数据能够包括web页面、文本、图像、声音文件、视频数据或者其他数据,以经由一个或多个有线或无线网络被发送给一个或多个网络服务器或其他设备和/或从一个或多个网络服务器或其他设备接收。存储器920能够被用于存储订户标识符(诸如国际移动订户标识(IMSI))和设备标识符(诸如国际移动设备标识符(IMEI))。这种标识符能够被传输给网络服务器,以标识用户和设备。
多个程序可以被存储在存储器920中。这些程序包括操作系统912、一个或多个应用程序914以及其他程序模块和程序数据。这种应用程序或程序模块的示例可以包括例如用于实施图1的系统100的计算机程序逻辑(例如计算机程序代码或指令)及其任何组件和/或子组件以及包围描述的流程图/流向图(包括其部分)和/或本文描述的其他示例。
移动设备902能够支持一个或多个输入设备930(诸如触摸屏932、麦克风934、相机936、物理键盘938和/或轨迹球940)和一个或多个输出设备950(诸如扬声器952和显示器954)。其他可能的输出设备(未示出)能够包括压电或其他触觉输出设备。一些设备能够提供多于一个输入/输出功能。例如,触摸屏932和显示器954能够被组合到单个输入/输出设备中。输入设备930能够包括自然用户接口(NUI)。
一个或多个无线调制解调器960能够被耦合至(多个)天线(未示出),并且能够支持处理器910和外部设备之间的双向通信,如本领域中充分理解的。调制解调器960被概括地示出,并且能够包括用于与移动通信网络904通信的蜂窝调制解调器966和/或其他基于无线电的调制解调器(例如蓝牙964和/或Wi-Fi 962)。至少一个无线调制解调器960通常被配置用于与一个或多个蜂窝网络(诸如用于单个蜂窝网络内的数据和语音通信的GSM网络)通信,在蜂窝网络之间通信,或者在移动设备与公共切换电话网络(PSTN)之间通信。
移动设备902还能够包括至少一个输入/输出端口980、功率供应982、卫星导航系统接收器984(诸如全球定位系统(GPS)接收器)、加速度计986和/或物理连接器990,这能够是USB端口、IEEE 994(火线)端口和/或RS-232端口。移动设备902的所图示组件不是必需的或者全部包括在内,因为如本领域技术人员将认识到的,任何组件能够被删除,并且其他组件能够被添加。
在实施例中,移动设备902被配置为实施本文中的流程图的任何上述特征。用于执行本文描述的任何操作、步骤和/或功能的计算机程序逻辑可以被存储在存储器920中,并且由处理器910执行。
图10描绘了实施例可以被实施的计算设备1000的示例性实施方式。例如,本文描述的实施例可以在与静止或移动计算机实施例中的计算设备1000类似的一个或多个计算设备中实施,包括计算设备1000的一个或多个特征和/或替代特征。本文提供的计算设备1000的描述是出于说明的目的提供的,并且不旨在是限制性的。如(多个)相关领域的技术人员已知的,实施例可以在其他类型的计算机系统和/或游戏控制台等中实施。
如图10所示,计算设备1000包括一个或多个处理器(称为处理器电路1002)、系统存储器1004和总线1006,该总线1006将包括系统存储器1004的各种系统组件耦合至处理器电路1002。处理器电路1002是在一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中被实施为中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路的电气和/或光学电路。处理器电路1002可以执行存储在计算机可读介质中的程序代码,诸如操作系统1030、应用程序1032、其他程序1034等的程序代码。总线1006表示多种类型的总线结构中的任何一个中的一个或多个,包括使用各种总线架构中的任何一个的存储器总线或存储器控制器、外围总线、加速图形端口以及处理器或本地总线。系统存储器1004包括只读存储器(ROM)1008和随机存取存储器(RAM)1010。基础输入/输出系统1012(BIOS)被存储在ROM 1008中。
计算设备1000还具有以下驱动中的一个或多个:用于读取和写入硬盘的硬盘驱动1014、用于读取或写入可移除磁盘1018的磁盘驱动1016和用于读取或写入可移除光盘1022的光盘驱动1020(诸如CD ROM、DVD ROM或其他光学介质)。硬盘驱动1014、磁盘驱动1016和光盘驱动1020分别通过硬盘驱动接口1024、磁盘驱动接口1026和光盘驱动接口1028被连接至总线1006。驱动及其关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储装置。尽管硬盘、可移除磁盘和可移除光盘被描述,但是其他类型的基于硬件的计算机可读存储介质能够被用于存储数据,诸如闪存卡、数字视频盘、RAM、ROM和其他硬件存储介质。
多个程序模块可以被存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统1030、一个或多个应用程序1032、其他程序1034和程序数据1036。应用程序1032或其他程序1034可以包括例如用于实施本文描述的实施例的计算机程序逻辑(例如计算机程序代码或指令)及其任何模块、组件和/或子组件和/或本文描述的其他示例。
用户可以通过诸如键盘1038和指向设备1040等输入设备将命令和信息录入到计算设备1000中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏板、卫星碟、扫描仪、触摸屏和/或触摸板、接收语音输入的语音识别系统、接收手势输入的手势识别系统等。这些和其他输入设备通常通过被耦合至总线1006的串行端口接口1042被连接至处理器电路1002,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)等其他接口连接。
显示屏1044也经由诸如视频适配器1046等接口被连接至总线1006。显示屏1044可以在计算设备1000外部,或者被并入到计算设备1000中。显示屏1044可以显示信息以及是用于接收用户命令和/或其他信息(例如通过触摸、手指手势、虚拟键盘等)的用户接口。除了显示屏1044之外,计算设备1000可以包括其他外围输出设备(未示出),诸如扬声器和打印机。
计算设备1000通过适配器或网络接口1050、调制解调器1052或用于通过网络建立通信的其他部件被连接至网络1048(例如互联网)。如图10所示,可以是内部的或外部的调制解调器1052可以经由串行端口接口1042被连接至总线1006,或者可以使用包括并行接口的另一接口类型被连接至总线1006。
如本文使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”等被用于指代物理硬件介质。这种物理硬件介质的示例包括与硬盘驱动1014相关联的硬盘、可移除磁盘1018、可移除光盘1022、其他物理硬件介质,诸如RAM、ROM、闪存卡、数字视频盘、压缩磁盘、MEM、基于纳米技术的存储设备和其他类型的物理/有形硬件存储介质(包括图10的存储器1020)。这种计算机可读介质和/或存储介质与通信介质和传播信号区分开,并且与其不重叠(不包括通信介质和传播信号)。通信介质将计算机可读指令、数据结构、程序模块或其他数据实施在调制数据信号中,诸如载波。术语“调制数据信号”表示其一个或多个特点以对信号中的信息进行编码的这种方式设置或改变的信号。通过示例而非限制,通信介质包括无线介质(诸如声学、RF、红外和其他无线介质)以及有线介质。实施例还涉及这种通信介质,其与涉及计算机可读存储介质的实施例分离并且不重叠。
如上面提到的,计算机程序和模块(包括应用程序1032和其他程序1034)可以被存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。这种计算机程序也可以经由网络接口1050、串行端口接口1042或任何其他接口类型来接收。当由应用执行或加载时,这种计算机程序使计算设备1000能够实施本文讨论的实施例的特征。因此,这种计算机程序表示计算设备1000的控制器。
实施例还涉及计算机程序产品,包括存储在任何计算机可读介质或计算机可读存储介质上的计算机代码或指令。这种计算机程序产品包括硬盘驱动、光盘驱动、存储器设备封装、便携式记忆棒、存储卡以及其他类型的物理存储硬件。
IV.附加示例性实施例
本文描述了一种方法、系统和计算机程序产品,用于具有无损一次性数据流处理的自动化云边缘工作负载分布和双向迁移。云服务可以提供云和边缘之间的工作负载和双向迁移管理,以在迁移之前和之后提供数据流的一次性处理。迁移逻辑节点可以开始处理数据流,其中处理在迁移之前在源逻辑节点处停止而没有数据丢失或重复,例如通过在基于拉取的流处理中迁移和使用锚。实现数据流的客户查询的查询逻辑可以基于放置准则被分布到边缘和/或云设备。查询逻辑可以基于迁移准则从源迁移向目标边缘和/或云设备。
在一个示例中,一种系统可以包括例如:处理系统,包括一个或多个处理器以及存储器,存储器被配置为存储程序代码以供由处理系统执行,该程序代码被配置为在数据流工作负载的迁移之前和之后利用一次性流数据处理来管理分布在云和边缘计算设备之中的数据流工作负载的放置和迁移。
在一个示例中,上述程序代码可以包括流工作负载放置管理器和流工作负载迁移管理器。在一个示例中,流工作负载放置管理器可以被配置为例如:接收关于至少一个数据流的查询;确定包括用于实现查询的查询逻辑的工作负载;基于对工作负载和工作负载放置准则的分析,创建工作负载放置计划以部署查询逻辑;以及调用工作负载放置计划以创建经部署工作负载,该经部署工作负载基于查询逻辑来提供对至少一个数据流的一次性流数据处理。在一个示例中,流工作负载迁移管理器可以被配置为例如:例如通过分析工作负载性能统计和工作负载迁移准则来监测经部署工作负载,以确定是否迁移经部署工作负载的至少一部分;创建工作负载迁移计划,以从至少一个迁移源向至少一个迁移目标迁移对查询逻辑的至少一部分的部署;以及调用工作负载迁移计划以创建经迁移工作负载,该经迁移工作负载继续提供对至少一个数据流的一次性流数据处理。
在一个示例中,对至少一个数据流的一次性流数据处理可以包括例如:使用描述至少一个数据流中的点的锚利用基于拉取的一次性处理来处理至少一个数据流。
在一个示例中,流工作负载迁移管理器被配置为通过例如以下操作调用工作负载迁移计划:停止被工作负载迁移计划影响的至少一个源查询逻辑节点;对至少一个源查询逻辑节点设置检验点,以创建至少一个源查询逻辑节点的状态的快照;创建具有与至少一个源查询逻辑节点的配置和连接相匹配的配置和连接的至少一个目标查询逻辑节点;向至少一个目标查询逻辑节点提供至少一个源查询逻辑节点的来自检验点的状态;以及启动至少一个目标查询逻辑节点。
在一个示例中,至少一个源查询逻辑节点可以包括例如源上游节点和源输出节点。至少一个目标查询逻辑节点可以包括例如目标上游节点和目标输出节点。向至少一个目标查询逻辑节点提供至少一个源查询逻辑节点的来自检验点的状态可以包括:例如将针对源输出节点的锚指派为目标输出节点的锚;由目标输出节点将锚提供给目标上游节点;通过使用由目标输出节点提供的锚访问检验点,将源上游节点的状态提供给目标上游节点;以及由目标输出节点从目标上游节点拉取未由源输出节点从源上游节点拉取的数据,以在迁移之前和之后提供对至少一个数据流的一次性处理。
在一个示例中,一种由至少一个计算设备执行的方法可以包括:例如由云服务接收关于至少一个数据流的查询;确定包括用于实现查询的查询逻辑的工作负载;分析工作负载和工作负载放置准则;基于分析创建工作负载放置计划,以通过在边缘部署、云部署以及云和边缘上的拆分/混合部署之间进行选择来部署查询逻辑;以及调用工作负载放置计划以创建经部署工作负载,该经部署工作负载基于查询逻辑提供对至少一个数据流的流处理。
在一个示例中,经部署工作负载可以包括云和边缘上的拆分/混合部署。
在一个示例中,调用工作负载放置计划以创建提供对至少一个数据流的流处理的经部署工作负载可以包括:例如调用工作负载放置计划以创建如下提供对所述至少一个数据流的流处理的经部署工作负载:使用描述至少一个数据流中的点的锚利用基于拉取的一次性处理来提供对至少一个数据流的流处理。
在一个示例中,该方法可以(例如进一步地)包括例如:通过分析工作负载性能统计和工作负载迁移准则来监测经部署工作负载,以确定是否迁移经部署工作负载的至少一部分。
在一个示例中,工作负载迁移准则可以包括例如以下一项或多项:边缘和云通信质量;边缘负载或容量;云负载或容量;工作负载性能要求;云工作负载部署的成本;或者客户约束。
在一个示例中,该方法可以(例如进一步地)包括例如:基于用户限定的迁移指令,将经部署工作负载的至少一部分从边缘迁移向云,从边缘迁移向边缘和云,从云迁移向边缘、或者从云迁移向云和边缘。
在一个示例中,该方法可以(例如进一步地)包括例如:例如基于对工作负载性能统计和工作负载迁移准则的分析,确定经部署工作负载的至少一部分有资格从边缘迁移向云,从边缘迁移向边缘和云,从云迁移向边缘、或者从云迁移向云和边缘。
在一个示例中,该方法可以(例如进一步地)包括例如:创建工作负载迁移计划,以从至少一个迁移源向至少一个迁移目标迁移对查询逻辑的至少一部分的部署,例如包括以下至少一项:边缘到边缘、边缘到云、边缘到边缘和云、云到云、云到边缘、云到云和边缘;以及调用工作负载迁移计划。
在一个示例中,调用工作负载迁移计划可以包括例如:停止被工作负载迁移计划影响的至少一个源查询逻辑节点;对至少一个源查询逻辑节点设置检验点,以创建至少一个源查询逻辑节点的状态的快照;创建具有与至少一个源查询逻辑节点的配置和连接相匹配的配置和连接的至少一个目标查询逻辑节点;向至少一个目标查询逻辑节点提供至少一个源查询逻辑节点的来自检验点的状态;以及启动至少一个目标查询逻辑节点。
在一个示例中,至少一个源查询逻辑节点可以包括例如源上游节点和源输出节点。至少一个目标查询逻辑节点可以包括例如目标上游节点和目标输出节点。向至少一个目标查询逻辑节点提供至少一个源查询逻辑节点的来自检验点的状态可以包括例如:将针对源输出节点的锚指派为目标输出节点的锚;由目标输出节点将锚提供给目标上游节点;以及通过使用由目标输出节点提供的锚访问检验点,将源上游节点的状态提供给目标上游节点。
在一个示例中,该方法可以(例如进一步地)包括:目标输出节点从目标上游节点拉取数据,其中该数据未由源输出节点从源上游节点拉取,作为在迁移之前和之后提供对至少一个数据流的一次性处理的一个示例。
在一个示例中,至少一个数据流可以包括例如个人可标识信息(PII)。工作负载放置计划可以例如在云和边缘之间拆分对查询逻辑的部署,例如基于指定用于PII处置的客户约束的工作负载放置准则来将对PII的处理限制于边缘。
在一个示例中,一种计算机可读存储介质可以在其上记录有程序指令,该程序指令在由处理电路执行时执行方法,该方法包括例如:通过分析工作负载性能统计和工作负载迁移准则来监测数据流处理工作负载,以确定是否迁移工作负载逻辑的至少一部分,包括部署在边缘和云计算设备之间的工作负载逻辑,该工作负载逻辑提供对至少一个数据流的一次性流数据处理;基于分析来创建工作负载迁移计划,以将工作负载逻辑的至少一部分从至少一个迁移源迁移向至少一个迁移目标;以及调用工作负载迁移计划以创建经迁移工作负载,该经迁移工作负载包括经迁移逻辑,该经迁移逻辑继续对提供至少一个数据流的一次性流数据处理。
在一个示例中,经迁移工作负载将经部署工作负载的至少一部分从边缘迁移向云、从边缘迁移向边缘和云、从云迁移向边缘、或者从云迁移向云和边缘。
在一个示例中,调用工作负载迁移计划可以包括例如:停止被工作负载迁移计划影响的至少一个源工作负载逻辑节点;对至少一个源工作负载逻辑节点设置检验点,以创建至少一个源工作负载逻辑节点的状态的快照;创建具有与至少一个源工作负载逻辑节点的配置和连接相匹配的配置和连接的至少一个目标工作负载逻辑节点;向至少一个目标工作负载逻辑节点提供至少一个源工作负载逻辑节点的来自检验点的状态;以及启动至少一个目标工作负载逻辑节点。
V.结论
虽然本发明的各种实施例已经在上面描述,但是应该理解的是,它们仅通过示例而非限制呈现。由(多个)相关领域的技术人员理解的是,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,形式和细节上的各种改变可以在其中进行。因此,本发明的宽度和范围不应被上述示例性实施例中的任何一个限制,而应该仅根据以下权利要求及其等效物来限定。

Claims (15)

1.一种由至少一个计算设备执行的方法,包括:
由云服务接收关于至少一个数据流的查询;
确定包括用于实现所述查询的查询逻辑的工作负载;
分析所述工作负载和工作负载放置准则;
基于所述分析创建工作负载放置计划,以通过在边缘部署、云部署以及云和边缘上的拆分部署之间进行选择来部署所述查询逻辑;以及
调用所述工作负载放置计划以创建经部署工作负载,所述经部署工作负载基于所述查询逻辑提供对所述至少一个数据流的流处理。
2.根据权利要求1所述的方法,其中所述经部署工作负载包括云和边缘上的拆分部署。
3.根据权利要求2所述的方法,其中调用所述工作负载放置计划以创建提供对所述至少一个数据流的所述流处理的所述经部署工作负载包括:
调用所述工作负载放置计划以创建如下提供对所述至少一个数据流的所述流处理的所述经部署工作负载:使用描述所述至少一个数据流中的点的锚利用基于拉取的一次性处理来提供对所述至少一个数据流的所述流处理。
4.根据权利要求3所述的方法,还包括:
通过分析工作负载性能统计和工作负载迁移准则来监测所述经部署工作负载,以确定是否迁移所述经部署工作负载的至少一部分。
5.根据权利要求4所述的方法,其中所述工作负载迁移准则包括以下一项或多项:
边缘和云通信质量;
边缘负载或容量;
云负载或容量;
工作负载性能要求;
云工作负载部署的成本;或者
客户约束。
6.根据权利要求4所述的方法,还包括:
基于用户限定的迁移指令,将所述经部署工作负载的至少一部分从边缘向云迁移、从边缘向边缘和云迁移、从云向边缘迁移、或者从云向云和边缘迁移。
7.根据权利要求4所述的方法,还包括:
基于对所述工作负载性能统计和所述工作负载迁移准则的所述分析,确定所述经部署工作负载的至少一部分有资格从边缘向云迁移、从边缘向边缘和云迁移、从云向边缘迁移、或者从云向云和边缘迁移。
8.根据权利要求7所述的方法,还包括:
创建工作负载迁移计划,以从至少一个迁移源向至少一个迁移目标迁移对所述查询逻辑的至少一部分的部署,包括以下至少一项:从边缘向边缘、从边缘向云、从边缘向边缘和云、从云向云、从云向边缘、从云向云和边缘;以及
调用所述工作负载迁移计划。
9.根据权利要求8所述的方法,其中调用所述工作负载迁移计划包括:
停止被所述工作负载迁移计划影响的至少一个源查询逻辑节点;
对所述至少一个源查询逻辑节点设置检验点,以创建所述至少一个源查询逻辑节点的状态的快照;
创建具有与所述至少一个源查询逻辑节点的配置和连接相匹配的配置和连接的至少一个目标查询逻辑节点;
向所述至少一个目标查询逻辑节点提供所述至少一个源查询逻辑节点的来自所述检验点的所述状态;以及
启动所述至少一个目标查询逻辑节点。
10.根据权利要求9所述的方法,所述至少一个源查询逻辑节点包括源上游节点和源输出节点,并且所述至少一个目标查询逻辑节点包括目标上游节点和目标输出节点,其中向所述至少一个目标查询逻辑节点提供所述至少一个源查询逻辑节点的来自所述检查点的所述状态包括:
将针对所述源输出节点的锚指派为所述目标输出节点的锚;
由所述目标输出节点将所述锚提供给所述目标上游节点;以及
通过使用由所述目标输出节点提供的所述锚访问所述检验点,将所述源上游节点的状态提供给所述目标上游节点。
11.根据权利要求10所述的方法,还包括:
由所述目标输出节点从所述目标上游节点拉取未由所述源输出节点从所述源上游节点拉取的数据,以在迁移之前和之后提供对所述至少一个数据流的一次性处理。
12.根据权利要求1所述的方法,所述至少一个数据流包括个人可标识信息(PII),其中所述工作负载放置计划在所述云和边缘之间拆分对所述查询逻辑的部署,基于包括用于PII处置的客户约束的所述工作负载放置准则来将对所述PII的处理限制于所述边缘。
13.一种系统,包括:
处理系统,包括一个或多个处理器;以及
存储器,被配置为存储供所述处理系统执行的程序代码,所述程序代码被配置为在数据流工作负载的迁移之前和之后利用一次性流数据处理来管理分布在云和边缘计算设备之中的所述数据流工作负载的放置和迁移。
14.根据权利要求13所述的系统,其中所述程序代码包括:
流工作负载放置管理器,被配置为:
接收关于至少一个数据流的查询;
确定包括用于实现所述查询的查询逻辑的工作负载;
基于对所述工作负载和工作负载放置准则的分析,创建工作负载放置计划以部署所述查询逻辑;以及
调用所述工作负载放置计划以创建经部署工作负载,所述经部署工作负载基于所述查询逻辑提供对所述至少一个数据流的一次性流数据处理;以及
流工作负载迁移管理器,被配置为:
通过分析工作负载性能统计和工作负载迁移准则来监测所述经部署工作负载,以确定是否迁移所述经部署工作负载的至少一部分;
创建工作负载迁移计划,以从至少一个迁移源向至少一个迁移目标迁移对所述查询逻辑的至少一部分的部署;以及
调用所述工作负载迁移计划以创建经迁移工作负载,所述经迁移工作负载继续提供对所述至少一个数据流的所述一次性流数据处理。
15.根据权利要求14所述的系统,其中对所述至少一个数据流的所述一次性流数据处理包括:
使用描述所述至少一个数据流中的点的锚利用基于拉取的一次性处理来处理所述至少一个数据流。
CN202080040034.7A 2019-05-30 2020-04-23 具有无损一次性处理的自动化云边缘流工作负载分布和双向迁移 Withdrawn CN113924554A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/426,993 US20200379805A1 (en) 2019-05-30 2019-05-30 Automated cloud-edge streaming workload distribution and bidirectional migration with lossless, once-only processing
US16/426,993 2019-05-30
PCT/US2020/029667 WO2020242679A1 (en) 2019-05-30 2020-04-23 Automated cloud-edge streaming workload distribution and bidirectional migration with lossless, once-only processing

Publications (1)

Publication Number Publication Date
CN113924554A true CN113924554A (zh) 2022-01-11

Family

ID=70614686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080040034.7A Withdrawn CN113924554A (zh) 2019-05-30 2020-04-23 具有无损一次性处理的自动化云边缘流工作负载分布和双向迁移

Country Status (4)

Country Link
US (1) US20200379805A1 (zh)
EP (1) EP3977278A1 (zh)
CN (1) CN113924554A (zh)
WO (1) WO2020242679A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055126A (zh) * 2021-03-09 2021-06-29 华夏云融航空科技有限公司 一种飞行数据译码方法、装置及终端设备

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915418B1 (en) * 2019-08-29 2021-02-09 Snowflake Inc. Automated query retry in a database environment
US11924060B2 (en) * 2019-09-13 2024-03-05 Intel Corporation Multi-access edge computing (MEC) service contract formation and workload execution
US11579929B2 (en) * 2020-01-31 2023-02-14 Salesforce. Inc. Cross platform application flow orchestration by transmitting the application flow including a transition rule to a plurality of computation layers
US11517825B2 (en) * 2020-09-30 2022-12-06 International Business Machines Corporation Autonomic cloud to edge compute allocation in trade transactions
US11474880B2 (en) * 2020-10-19 2022-10-18 Pensando Systems Inc. Network state synchronization for workload migrations in edge devices
US11740942B2 (en) * 2020-12-09 2023-08-29 Amazon Technologies, Inc. Smart deployment of industrial IoT workloads
US11627472B2 (en) 2020-12-10 2023-04-11 Amazon Technologies, Inc. Automated deployment of radio-based networks
US11310733B1 (en) 2020-12-10 2022-04-19 Amazon Technologies, Inc. On-demand application-driven network slicing
US11729091B2 (en) 2020-12-10 2023-08-15 Amazon Technologies, Inc. Highly available data-processing network functions for radio-based networks
US11601348B2 (en) 2020-12-10 2023-03-07 Amazon Technologies, Inc. Managing radio-based private networks
US11886315B2 (en) 2020-12-10 2024-01-30 Amazon Technologies, Inc. Managing computing capacity in radio-based networks
US11252655B1 (en) * 2020-12-10 2022-02-15 Amazon Technologies, Inc. Managing assignments of network slices
CN112615742A (zh) * 2020-12-18 2021-04-06 北京百度网讯科技有限公司 用于预警的方法、装置、设备以及存储介质
CN112596914B (zh) * 2020-12-29 2024-03-15 贵州大学 一种面向IoT的边缘节点系统体系架构及其工作方法、计算迁移方法
US11392444B1 (en) * 2021-03-09 2022-07-19 Dell Products L.P. Method and apparatus for analysis of runtime behavior
US11977907B2 (en) 2021-03-16 2024-05-07 Red Hat, Inc. Hybrid push and pull event source broker for serverless function scaling
US11711727B1 (en) 2021-03-16 2023-07-25 Amazon Technologies, Inc. Provisioning radio-based networks on demand
US11895508B1 (en) 2021-03-18 2024-02-06 Amazon Technologies, Inc. Demand-based allocation of ephemeral radio-based network resources
US11838273B2 (en) 2021-03-29 2023-12-05 Amazon Technologies, Inc. Extending cloud-based virtual private networks to radio-based networks
US11743953B2 (en) 2021-05-26 2023-08-29 Amazon Technologies, Inc. Distributed user plane functions for radio-based networks
US20220414577A1 (en) * 2021-06-28 2022-12-29 Dell Products L.P. System and method for performance-centric workload placement in a hybrid cloud environment
US11811862B1 (en) * 2023-04-26 2023-11-07 Dell Products L.P. System and method for management of workload distribution
US11888930B1 (en) * 2023-04-26 2024-01-30 Dell Products L.P. System and method for management of workload distribution for transitory disruption
US11876858B1 (en) * 2023-09-05 2024-01-16 Armada Systems Inc. Cloud-based fleet and asset management for edge computing of machine learning and artificial intelligence workloads
US12014219B1 (en) 2023-09-05 2024-06-18 Armada Systems Inc. Cloud-based fleet and asset management for edge computing of machine learning and artificial intelligence workloads
US12014634B1 (en) 2023-09-05 2024-06-18 Armada Systems Inc. Cloud-based fleet and asset management for edge computing of machine learning and artificial intelligence workloads
US11960515B1 (en) 2023-10-06 2024-04-16 Armada Systems, Inc. Edge computing units for operating conversational tools at local sites
US11995412B1 (en) 2023-10-06 2024-05-28 Armada Systems, Inc. Video based question and answer
CN117376403B (zh) * 2023-10-08 2024-05-14 上海知享家信息技术服务有限公司 一种云端数据迁移方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140067758A1 (en) * 2012-08-28 2014-03-06 Nokia Corporation Method and apparatus for providing edge-based interoperability for data and computations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055126A (zh) * 2021-03-09 2021-06-29 华夏云融航空科技有限公司 一种飞行数据译码方法、装置及终端设备

Also Published As

Publication number Publication date
WO2020242679A1 (en) 2020-12-03
US20200379805A1 (en) 2020-12-03
EP3977278A1 (en) 2022-04-06

Similar Documents

Publication Publication Date Title
CN113924554A (zh) 具有无损一次性处理的自动化云边缘流工作负载分布和双向迁移
US10042636B1 (en) End-to end project management platform with artificial intelligence integration
US10505869B2 (en) Mimicking a presence notification from an application executing on a virtual component to optimize computing resource allocation/utilization
US9135141B2 (en) Identifying software responsible for a change in system stability
CN105357038B (zh) 监控虚拟机集群的方法和系统
US9128773B2 (en) Data processing environment event correlation
US9529613B2 (en) Methods and apparatus to reclaim resources in virtual computing environments
US8988998B2 (en) Data processing environment integration control
US9053004B2 (en) Virtual data storage service with sparse provisioning
US9336061B2 (en) Integrated metering of service usage for hybrid clouds
US10198284B2 (en) Ensuring operational integrity and performance of deployed converged infrastructure information handling systems
US20190146830A1 (en) Template-driven multi-tenant workflow processing
US9535754B1 (en) Dynamic provisioning of computing resources
JP2014532247A (ja) 容易にクラウド化可能なアプリケーションの発見型の識別および移行
US11474905B2 (en) Identifying harmful containers
US10303678B2 (en) Application resiliency management using a database driver
US8966316B2 (en) Identifying software responsible for changes in system stability
US10255127B2 (en) Optimized diagnostic data collection driven by a ticketing system
US20190140894A1 (en) System and method for enabling hybrid integration platform through runtime auto-scalable deployment model for varying integration
CN114564249A (zh) 推荐调度引擎、推荐调度方法及计算机可读存储介质
JP2023538941A (ja) コンテナ化された環境のインテリジェントバックアップ及び復元
US10713103B2 (en) Lightweight application programming interface (API) creation and management
US11381468B1 (en) Identifying correlated resource behaviors for resource allocation
US11645164B2 (en) Adjusting data backups based on system details
US20230214265A1 (en) High availability scheduler event tracking

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20220111

WW01 Invention patent application withdrawn after publication