CN104040485A - Paas分层调度和自动缩放 - Google Patents
Paas分层调度和自动缩放 Download PDFInfo
- Publication number
- CN104040485A CN104040485A CN201280066600.7A CN201280066600A CN104040485A CN 104040485 A CN104040485 A CN 104040485A CN 201280066600 A CN201280066600 A CN 201280066600A CN 104040485 A CN104040485 A CN 104040485A
- Authority
- CN
- China
- Prior art keywords
- task
- pond
- virtual machine
- work item
- resource
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Abstract
在各实施例中,提出用于在分布式计算环境中按照平台即服务(a platform as a service)的方式提供资源来执行作业的系统和方法。该系统可包括多个组件,诸如任务机、任务位置服务机、以及高等级位置服务机,它们组合起来能用于完成本文提供的功能。构想:该系统执行用于通过以下方式提供资源的方法:确定系统的资源(诸如虚拟机),并且向该系统应用自动缩放规则来缩放那些资源。基于自动缩放规则的确定,可分配所述资源以实现期望结果。
Description
背景
用于执行大规模计算作业的传统方法通常需要用户积极管理分布式环境中的承租人(tenant)并且管理作业队列。用户的这种活跃参与可能阻止作业跨越大资源群集以及以高效方式缩放那些群集的使用的能力。而且,通常作业可能是按以下方式创建的:作业、用于完成作业的资源、以及作业在资源上的调度(schedule)紧密耦合而阻止作业响应于故障或负载平衡而高效迁移的能力。此外,传统系统的分布式计算环境可能不提供允许自动缩放资源池的有效机制。
发明内容
在各实施例中,提出用于在分布式计算环境中按照平台即服务(a platformas a service)的方式提供资源来执行作业的系统和方法。该系统可包括多个组件,诸如组合起来能用于完成本文提供的功能的任务机(例如,本文所用的“机”可包括包含节点群集的承租人并且不限于单个物理机)、任务位置服务机、以及高等级位置服务机。构想了:该系统执行用于通过以下方式提供资源的方法:确定系统的资源(诸如虚拟机),并且向该系统应用自动缩放规则来缩放那些资源。基于自动缩放规则的确定,可分配所述资源以实现期望结果。
提供本概述是为了以简化的形式介绍将在以下具体实施方式中进一步描述的选择的概念。该概述不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在独立地用于帮助确定所要求保护的主题的范围。
附图说明
下面将参考附图详细描述本发明,其中:
图1示出根据本发明的方面的适于实现本发明的实施例的示例性操作环境;
图2示出图解根据本发明的方面的示例性作业的框图;
图3示出图解根据本发明的方面的示例性池的框图;
图4示出了图解根据本发明的方面的适于在分布式计算环境内执行任务的示例性系统的各架构层的框图;
图5示出了图解根据本发明的方面的可集成在单一分布式计算架构中的不同位置处的处理器的示例性布置;
图6示出了图解根据本发明的方面的用于任务位置服务的可能配置的框图;
图7示出图解根据本发明的方面的示例性任务位置服务前端(“TLSFE”)的框图;
图8示出图解根据本发明的方面的示例性工作项/作业调度器(“WIJ”)的框图;
图9示出图解根据本发明的方面的任务承租人的框图;
图10示出图解根据本发明的方面的示例性池服务器的框图;
图11示出根据本发明的方面的提供示例性分布式计算系统中的各组件之间的示例性工作流的通信图。
图12示出图解根据本发明的方面的一种用于在分布式计算环境中提供资源的示例性方法的框图;
图13示出图解根据本发明的方面的一种用于在分布式计算环境中提供资源的附加示例性方法的框图;
图14示出图解根据本发明的方面的一种用于在分布式计算环境中提供资源的另一方法的框图;以及
图15示出图解根据本发明的方面的一种用于在分布式计算环境中提供解耦(decouple)的资源、调度以及作业的方法的框图。
具体实施方式
在各实施例中,提出用于在分布式计算环境中按照平台即服务(a platformas a service)的方式提供资源来执行作业的系统和方法。该系统可包括多个组件,诸如任务机(其在本文中被构想为节点和/或机器的集群)、任务位置服务机(其被构想为在利用处理器和存储器的一个或多个节点上操作的服务)、以及高等级位置服务机(其被构想为在利用处理器和存储器的一个或多个节点上操作的服务),这些组件组合起来能用于完成本文提供的功能。构想:该系统执行用于通过以下方式提供资源的方法:确定系统的资源(诸如虚拟机),并且向该系统应用自动缩放规则来缩放那些资源。基于自动缩放规则的确定,可分配所述资源以实现期望结果。
第一示例性方面包括分布式计算系统,该分布式计算系统具有分层调度(hierarchical scheduling)能力。该系统包括具有处理器和存储器的任务机。该任务机(在本文中也被称为任务承租人)维护一个或多个任务虚拟机,每个任务虚拟机运行一任务。该系统还包括具有处理器和存储器的任务位置服务机,该任务位置服务机用于控制任务机并且管理任务机群组内的任务帐户。此外,该系统包括具有处理器和存储器的高等级位置服务机,其用于创建任务帐户以及与任务位置服务机协调任务帐户管理。
本文提供的第二示例性方面包括存储计算机可用指令的计算机存储介质,该计算机可用指令在被具有处理器和存储器的计算设备执行时执行一种用于在分布式计算环境中提供资源的方法。该方法包括确定与池相关联的虚拟机的数量。该方法还包括用具有池服务器的任务位置服务机的处理器和存储器应用自动缩放规则,以便调整与该池相关联的虚拟机。此外,该方法包括响应于经自动缩放规则调整过的与该池相关联的虚拟机的数量来针对该池动态分配一个或多个虚拟机。
本文提供的本发明的第三个示例性方面涉及一种用于在分布式计算环境中提供资源的计算机实现的方法。该方法包括从用户接收工作项。该方法还包括从该用户接收自动缩放规则。此外,构想了该方法包括在无需该用户干预的情况下,将第一任务机(即,任务承租人)中的第一虚拟机分配给一池。此外,构想了该方法包括在无需该用户干预的情况下,将与该第一任务机物理分开的第二任务机中的第二虚拟机分配给该池。在示例性方面中,第一任务机和第二任务机可以在一公共数据中心中或者在不同数据中心中。还构想该方法包括在该池的第一虚拟机和该第二虚拟机上实例化来自该工作项的任务。该方法还可包括,在无需该用户干预的情况下,向该池应用该自动缩放规则。该方法还包括重新分配(例如,添加或移除)与该池相关联的一个或多个虚拟机。
概览
由于通过网络的数据传输速度的增长和其他网络特征的改善,在其中计算资源分布在大型网络上的环境中执行大规模计算任务越来越有可能。第一位置中的用户可以向计算服务提交作业或计算任务并且使该任务在该用户不直接知晓的计算机群组上执行。用于执行该用户的任务的计算资源可以分布在多个物理位置上,这些物理位置可能跨越不同的州、国家、和/或洲。位于一个或多个位置中的第一计算资源群组可以存储用于执行用户的计算任务的数据和其他信息,而位于相同位置或者可能位于一组不同的一个或多个位置中的第二计算资源群组可被用于执行该计算任务。此外,构想用于存储该数据的一个或多个位置可以跨不同的地理区域分散,而用户可以对此知晓或不知晓。类似地,构想该计算资源可跨不同地理位置分散,而用户可以对此知晓或不知晓。
对各种分布式计算资源的访问允许用户执行作业任务(例如,运行进程)而不关心计算资源位于何处。分布式资源还为用户提供了扩展(scale out)(或收缩(scale in))所使用的资源量以便满足计算任务的目标(诸如按照指定时间或者以期望的成本价值完成该计算任务)的机会。然而,为用户提供这种灵活性对分布式计算资源的运营者(和/或拥有者)提出了许多挑战。为了满足需求,分布式资源网络的运营者将优选地具有足够多的可用资源来满足峰值需求时刻的资源请求。
示例性计算环境
大体上参考附图,并且首先具体参考图1,示出了适用于实现本发明的各实施例的示例性操作环境,并将其概括指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应将计算设备100解释为对所示出的任一模块/组件或其组合有任何依赖性或要求。
各实施例可以在计算机代码或机器可使用指令的一般上下文中描述,包括由计算机或诸如个人数据助理或其他手持式设备等其他机器执行的诸如程序模块等的计算机可执行指令。一般而言,包括例程、程序、对象、模块、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。各实施例可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。各实施例也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。
继续参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现模块116、输入/输出(I/O)端口118、I/O模块120、和说明性电源122。总线110表示可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。尽管为了清楚起见图1的各框用线条示出,但是在实际上,各模块的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等的呈现模块认为是I/O模块。而且,处理器也具有存储器。发明人此点认识到,这是本领域的特性,并且重申,图1的图示只是例示可结合一个或多个实施例来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算机”或“计算设备”。
计算设备100通常包括各种计算机可读介质。作为示例而非限制,计算机可读介质可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其他存储器技术;CDROM、数字多功能盘(DVD)或其他光或全息介质;磁带盒、磁带、磁盘存储或其他磁存储设备;或可用于对所需信息进行编码并且可由计算设备100访问的任何其他介质。
存储器112包括易失性和/或非易失性存储器形式的非暂态计算机存储介质。存储器可以是可移动的,不可移动的,或两者的组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O模块120等各种实体读取数据的一个或多个处理器。呈现模块116向用户或其他设备呈现数据指示。示例性呈现模块包括显示设备、扬声器、打印模块、振动模块等等。I/O端口118允许计算设备100在逻辑上耦合至包括I/O模块120的其他设备,其中某些设备可以是内置的。说明性模块包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备等等。
定义
“帐户”是分布式计算环境内的全局唯一标识实体。在一实施例中,下面讨论的所有资源和任务均在一帐户范围内。通常,用户将在使用分布式计算系统的资源之前首先创建帐户。在创建帐户之后,用户可以使用该帐户向系统提交工作项并且基于工作项来管理用于执行作业的资源。
“工作项”是要在分布式计算环境中运行的作业的静态表示。工作项可以指定作业的各个方面,包括作业二进制代码、指向要处理的数据的指针、以及任选的用于启动用于执行该作业的任务的命令行。此外,工作项可以指定重复出现调度(schedule)、优先级和约束。例如,工作项可指定要在每天下午5点启动。
“作业”是工作项的运行实例。作业包含任务的集合,这些任务一起工作以执行分布式计算。这些任务可运行在分布式计算环境中的一个或多个虚拟机上。在后文中参考图2更详细地讨论作业。
“任务”是作业的基础执行单元。每个任务运行在一虚拟机上。用户可针对每个任务指定对命令行的附加输入以及指向输入数据的指针。任务可以在该任务执行过程期间在执行该任务的虚拟机上的它的工作目录下创建文件的分层结构(hierarchy)。
“作业管理器任务”(在本文中也被称为“JM任务”)是作业中的一种特殊任务。作业管理器任务是任选的,所以一些作业可在不使用JM任务的情况下执行。作业管理器任务可为作业内的所有任务提供单一控制指针,并且可被用作该作业的“主”任务。如果一作业具有JM任务,则该系统将该JM任务作为该作业的第一个任务启动。该JM任务随后可以向该作业提交更多任务,并且可以监视这些任务的进程并且控制何时提交下一批次任务。然而,还构想了:即便一JM任务与该作业相关联,任务也可由该系统之外的一个或多个服务来提交。以此方式,JM任务可以协调作业中的各任务的调度并且管理任务间的依赖关系。如果该作业管理器任务的节点或虚拟机故障,则可以在另一虚拟机上重启该JM任务,以便该JM任务总是为该相应作业而运行。在一示例性方面中,在另一虚拟机上自动重启该JM任务。此外,用户可以向该系统指定:一旦该JM任务完成,该系统可以终止相应作业中的所有任务。在后文中参考图2讨论示例性JM任务(也被称为作业任务管理器)。
作业
如同上面定义的,“作业”是工作项的运行实例。图2示出根据本发明的方面的示例性作业200的框图。作业200包括多个任务,诸如任务204。同样如同上面定义的,任务是作业的基础执行单元,作业由任务承租人(在本文中也被称为任务机,并且在下面讨论)内的虚拟机执行。除了多个任务以外,作业200可任选地包括作业任务管理器202(在本文中也被称为JM任务)。作业任务管理器202可为作业200内的所有其他任务(例如任务204)提供单一控制指针。
如同本文中将更详细地讨论的,工作项是作业的静态表示。在一示例性实施例中,一旦分布式计算系统的资源启动了计算资源(例如,加载该作业、将该作业排队、实例化该作业内的任务),则工作项被称为作业。换言之,在一示例性方面中,一旦该系统开始处理一工作项,该工作项就变成作业。
虚拟机池
虚拟机是指处理能力的一逻辑单元。虚拟机与物理处理器可具有一对一的对应关系,或者一虚拟机可对应于多个处理器,或者一虚拟机可代表一个或多个处理器上的处理时间/周期的一百分比。无论如何,构想了:在一示例性方面中,虚拟机可至少部分由图1的计算设备100描述。
在各实施例中,在使用之前,虚拟机(其可基于工作项执行作业)与用于该工作项的帐户相关联。“池”是虚拟机的逻辑群组。图3示出了根据本发明的方面的池300的框图,该池包括多个虚拟机(诸如虚拟机302)。构想了,池可具有跨越不同数据中心、不同地理位置、以及不同物理配置的所分配的虚拟机。
在一示例性方面中,工作项总是具有至少一个相关联的池来运行与该工作项相对应的作业。每个帐户(例如,任务帐户)可创建一个或多个池,该帐户可对该一个或多个池具有独占访问权以用于执行与该帐户相关联的工作项。可在用户提交工作项时创建池,或者可以将工作项与现有的池相关联。任选地,可将一池进行关联以与单个工作项一起使用,或者与对应于一帐户的工作项的另一子集一起使用。另外,构想了:可针对作业由系统自动创建池。例如,一重复的工作项可能在每天特定时间运行并且通常需要两个小时来完成。在此示例中,可以每天在创建该作业时自动创建一池,并且在作业完成时删除该池。
在一示例性方面中,当用户提交一工作项时,可将该工作项与一个或多个虚拟机池相关联。此外,构想了:该工作项可与单一池独占地关联(此外,构想了:多个工作项/作业可与一公共池相关联)。可以按照任何方便的方式组织池内的虚拟机。例如,无论虚拟机的底层处理器的地理位置如何,可以将所有虚拟机组织在单一池中。另一选项是基于地理位置来组织虚拟机,使得池的所有虚拟机均在给定地理位置。又一选项是按照不同于地理位置的基础来组织虚拟机,诸如对其他变量(例如,存储资源、网络等待时间、用户位置/偏好、以及安全要求)的邻近性。
所构想的用于形成池的另一过程利用系统资源来自动生成该池。自动池创建允许在工作项被创建时或者在作业本身被创建时由系统自动地创建池。此过程从顾客/用户/客户抽象出池的创建。在此操作模式中,顾客/用户/客户在他们对要运行的工作项或作业的责任是有限的。在一示例性方面中,该池在运行该作业时被自动创建,并且该池在该作业已结束时被自动拆除。此外,构想了:该池在该工作项被创建时被自动创建,并且该池在该工作项被删除/结束时被自动拆除。
构想了:在一示例性方面中,一虚拟机可运行一个任务和/或许多任务。此外,构想了:多个作业可在同一虚拟机池上运行。在一示例性方面中,VM池的大小可以自动增长或收缩而无需用户干预并且无需来自作业的显式处理。例如,作业可不负责补偿池的扩张或收缩。类似地,构想了:作业可跨越多个池。对多个池的这种跨越可以通过跨越在VM资源中能够独立增长和收缩的多个池对作业进行负载平衡来实现。另外,构想了:在给定时刻,池可包括0个虚拟机。当针对该作业没有任务要执行时这可能发生。结果是,构想了:在一时间段期间,池可收缩到0个虚拟机以便节省计算资源。
专用、待机、和可抢占(preemptible)机器
在一示例性实施例中,当一虚拟机被分派给池时,该虚拟机可至少为两种类型之一。该虚拟机可被作为专用虚拟机或可抢占虚拟机而被分派给该池。虚拟机是专用还是可抢占的状态也可以在该虚拟机处于池中时变化。
“专用”虚拟机是被分派给池以供被分配给该池的工作项/作业专门使用的机器。任选地,专用虚拟机可被分派以供一个或多个相关联的工作项专门使用,而不是一般性地可用于被提交给池的任何作业。在虚拟机具有专用状态时,预留该虚拟机以供与该池相关联的工作项/作业使用。
“可抢占”虚拟机是一种当前正在代表帐户执行作业、但是不保证该虚拟机将继续可用于该池的虚拟机。当使一可抢占虚拟机对一池可用时,该可抢占虚拟机被添加到该池,随后该池可被工作项/作业使用。随后该可抢占机器被提供(provision)并被用于执行该池的作业。可通过任何方便的方法使该可抢占机器对该池可用,诸如通过代表帐户使该池在资源拍卖中赢得该可抢占虚拟机上的处理时间。
可用于帐户的虚拟机通常将是在分布式计算环境中具有另一用途的虚拟机。例如,可抢占虚拟机的一个来源是分布式计算环境所有者/运营者为了灾难恢复目的而所提供的虚拟机。为了提供稳定操作,分布式计算环境可包括被预留的一组或多组虚拟机。这些预留虚拟机可用于取代由于处理器故障、网络故障、或导致分布式环境的一部分不再适于执行作业的任何其他类型的事件而丢失的资源。当被分派给一池的一个或多个专用虚拟机由于一事件而丢失时,可使用预留的虚拟机来取代丢失的虚拟机。这改善了分布式计算环境中的资源的可用性。然而,因为期望故障事件是稀少的,所以具有预留灾难恢复机器通常将意味着很大数量的虚拟机空闲并等待被使用。为处理故障事件而指定的这些虚拟机的CPU周期可作为可抢占VM被分派给池以便运行工作项/作业,而不是浪费这些虚拟机的CPU周期。如果故障发生并且该系统需要占用可抢占资源来满足专用资源的需要,则在这种虚拟机上运行的可抢占作业将一旦可行就尽早停止(并且有可能立即停止),以便该可占用虚拟机可用于其取代丢失或故障资源的原始用途。
可抢占机器的另一来源是有过剩能力的虚拟机。通常,任何网络的峰值负载将不同于平均负载。结果是,具有足够资源来处理峰值负载情形的计算环境通常将在其他时间期间有多余资源可用。这些过剩资源提供了资源缓冲。当用户请求额外的专用虚拟机时,过剩的虚拟机可用于满足用户的请求。当分布式计算环境具有少于专用机器的峰值负载的负载时,一个或多个虚拟机将空闲。为提供空闲能力而指定的这些虚拟机的CPU周期可在抢占基础上被分派给用户和池,而不是浪费这些虚拟机的CPU周期。随着专用虚拟机的请求的负载增加,这些过剩虚拟机上运行的可抢占作业将一旦可行尽快停止(并且有可能立即停止)。这允许可抢占虚拟机在需要时被用于其提供附加专用资源的原始目的。附加地或替代地,专用机器的负载的一些增加将由于对专用机器的经调度的请求。如果虚拟机将由于在经调度的时间被用作专用机器而变得不可用,则被分派给该虚拟机的可抢占作业可在该经调度的时间之前停止以便允许从可抢占作业到专用资源的有序过渡。
虚拟机的又一来源是处于“待机”预留的与池或帐户相关联的虚拟机。“待机”虚拟机预留是一种这样的虚拟机预留:其与第一帐户或池相关联,并且被提供以便供该第一帐户或池使用。此外,构想了:待机虚拟机预留不被标记到特定的池,相反该系统维持定义数量的VM,这些VM由帐户或池保持待机。当需要待机VM时,可以减少待机VM的预留数量以满足VM的所需数量。在一示例性方面中,系统中的VM的总数可以等于专用VM+预留待机VM+没有被分派到别处而空闲的可用于计算的VM+为了灾难且过度提供而预留的VM。在此示例中,构想了:系统中所使用的可抢占VM的数量小于或等于预留待机VM+空闲而可用于计算的VM的数量。
提供待机机器预留可包括在系统中某处(例如,池级、帐户级)预留VM能力。待机虚拟机预留不是对虚拟机的分配。相反,待机虚拟机预留预留了在未来占用空闲或可抢占VM并将其改变为供该池或帐户使用的专用VM的权利。可将待机VM(其为计数)与两个不同的池相关联。
待机机器的一个用途是针对具有仅在特定时间帧期间发生的高优先级计算作业的用户。例如,金融公司可能希望对一个或多个金融市场的日常活动(诸如股票交易或商品交易)执行分析。继续此示例,金融市场可能按预定日程安排开市和闭市,诸如在上午9:30开市并在下午4:00闭市。金融公司想要聚集在金融市场开市的时间的数据以用于执行分析或模拟。分析的目标是在第二天市场开市之前为他们的员工提供信息。这种分析可能需要大量的虚拟机,但是虚拟机仅在例如从下午6:00直到第二天早晨3:30之间的时间需要。在此时间期间,金融公司期望保证虚拟机的可用性。在当天的其他时间,该金融公司不需要这些机器。向该金融公司的帐户分派待机虚拟机预留可以实现这一目标。作为支付预留价格的交换,向金融公司保证在所需时间期间机器的可用性。在所需时间窗口之外,这些虚拟机可用作该金融公司和/或其他用户的可抢占机器。在执行需要取得可抢占VM来完成预留的待机预留时,可在调度的可用性事件之前有序地停止可抢占作业。
在将待机VM预留转换为专用机器时,这被定义为基于时间标准的转换。换言之,至少部分基于预定时间和/或日期而将待机VM预留转换为专用机器。基于时间的标准不同于活动标准,活动标准被用于定义活动阈值。活动阈值对应于基于一个或多个分布式资源的使用和/或性能的阈值。例如,在一帐户中,顾客可能付费来保留一定数量的待机VM并且该待机VM预留可被用于基于时间的标准或动态阈值自动缩放标准之一者。此外,构想了:不管预留时间或其他调度预留策略如何,待机VM预留可在任何点被转换。例如,用户(或管理员)可提供以下请求:来自该预留的一个或多个待机VM将被转换。
待机VM预留的另一用途是允许在扩张作业时的改善的性能。例如,零售商店可以使用分布式计算资源来在假日之前的购物季期间处理额外在线流量,诸如用于审阅零售商的网站并下订单的在线流量。基于过去的经验,零售商期望一定水平的在线活动,并且预留相应数量的专用虚拟机。然而,在在线活动大于预期的情况下,零售商还将更多机器预留在待机模式中。零售商随后可以设置一个或多个阈值,所述阈值指示高于预期的活动水平。在这些阈值出现时,待机VM预留可用于转换空闲的或可抢占的机器以允许零售商处理附加的在线流量而无需使零售商的顾客经历慢响应时间。在此情形中,待机VM预留可在不可预测的时间被转换为专用机器,因为可能不知道何时满足活动阈值。当满足活动阈值时,空闲VM被使用或者可抢占任务被停止而该机器被转换为专用机器。
分布式网络环境中的计算资源的组织的示例
分布式计算环境的用户通常希望使用分布式计算资源(例如,云计算资源)来执行作业。所述作业通常涉及对存储在经由该分布式计算环境(诸如通过网络(例如因特网))可访问的位置中的数据执行作业。运营者提供分布式计算环境的一种方式是将该环境作为多个层来提供。图4示出了形成根据本发明的各实施例的适于在分布式计算环境内执行任务的示例性系统的层的框图。图4的系统包括系统代理运行时层408(也可被称为任务运行时层)系统代理运行时层408、应用运行时层406(也可被称为第三方任务运行时层)、资源管理层402、以及调度和执行层404。
在图4中示出的实施例中,系统代理运行时层408负责设置池的执行环境和安全上下文以及要在该执行环境中运行的工作项/作业/任务。系统代理运行时层408还可启动任务并监视任务的状态。系统代理运行时层408可采用运行在每个虚拟机上的系统代理的形式。该任务运行时层还可包括链接到用户的任务可执行代码中的运行时库。使运行时库作为系统代理运行时层408的一部分可以潜在地向该系统代理所执行的任务提供更丰富的能力。运行时库的示例包括:用于允许任务间的快速通信的一个或多个高效通信库;用于支持从其他虚拟机和/或其他任务读取文件的高效远程文件访问库;用于允许任务检查点(例如,存入到二进制大对象中)和恢复的检查点库;日志记录库;以及用于提供跨虚拟机池内、执行给定任务的虚拟机使用的分布式文件系统的库。
应用运行时层406允许附加的运行时被构建并且在系统代理运行时层408顶上运行。应用运行时层406还可提供用于协调作业的任务的运行的附加能力。示例可包括到库的映射归约运行时(Map Reduce runtime),用于提供要跨越VM池内、执行给定任务的VM使用的分布式文件系统。这允许用户按照针对用户的作业或任务定制的方式组织分布式计算环境。
资源管理层402负责管理分布式计算环境中可用的计算资源。一个选项是使资源管理层402管理三个不同层级的资源。在第一级,资源管理层402管理与作业(即,工作项的执行)相关联的虚拟机的分配和解除分配以及存储在与一任务相关联的每个虚拟机上的文件,其由虚拟机级410示出。
在第二级,与作业相关联的虚拟机可被分组为机器池,其在池级412示出。池可包含与一个或多个作业和/或工作项相关联的虚拟机。取决于实施例,单一池可跨越多个群集,诸如一数据中心中的所有群集或跨越多个数据中心的多个群集。单一池可包含大量的虚拟机,诸如数百万。所述虚拟机可被包含在大量的池中,诸如多达数十亿个池中。
在资源管理层402的第三级,资源管理层管理每个任务承租人的大小(将在后文中讨论)。这允许系统作为整体来基于多个度量动态地调整被利用的计算资源的量,所述度量诸如是系统的当前负载以及将未使用的虚拟机及时释放回系统以供其他分配。这一级由承租人级414示出。
在图4中示出的实施例中,调度和执行层404管理用户正执行的工作项、作业和任务。调度和执行层404作出调度决策并且负责启动作业和任务以及在故障时重试。这种调度和执行层404可包括用于在各个级管理作业和/或任务的组件。
示例性的组件可包括:工作项和作业管理组件416、任务管理和调度组件418、以及作业管理器任务组件420。工作项和作业管理组件416维护一个或多个用户(或所有用户)已创建/传递给系统的所有工作项。基于每个活动工作项的规范,该系统随后可以创建所述任务被提交至的作业和作业队列。该工作项可具有所指定的重复发生日程安排(例如,每天下午5点)。该系统随后可根据该工作项的重复发生日程安排来创建作业。工作项和作业管理组件416还可负责管理系统中的工作项和作业的终止和清洁。
任务管理和调度组件418允许系统的用户将任务提交(传递)到该系统的作业。此组件负责跨越系统中的所有作业/工作项调度任务,同时跟踪这些任务的状态。任务管理和调度组件418可包括跨越一个/一些/所有任务承租人(例如,任务机)分布的一组任务调度器,从而允许每个调度器仅与有限的一组资源(例如,虚拟机)和任务相关联。因此,在一示例性方面中,任务管理和调度组件418允许系统支持在跨越各种任务承租人的虚拟机上运行的数十亿活动任务。
作业管理器任务组件420允许JM任务,JM任务可以任选地与每个作业相关联,以作为作业的初始任务被启动。如同前面讨论的,JM任务(也被称为任务作业管理器)提供特定作业内的任务的单一控制点。这允许JM任务向作业提交附加的任务并且监视这些任务的进程,这允许JM任务控制何时终止该作业。JM任务可以是帮助应用运行时层406控制和运行其系统的机制的示例。
上面描述的各层可以在包括处于多个地理位置处的处理器的分布式计算环境中实现。图5示出了图解根据本发明的方面的可集成在单一分布式计算系统500中的不同位置处的处理器的示例性布置。
在图5中,一个或多个任务承租人514可被用来管理虚拟机池。任务承租人514可维护一组虚拟机(如同后文将参考图9更详细地讨论的)。一个或多个用户的作业可作为一个或多个虚拟机池的一部分运行在任务承租人514内的虚拟机上。一个或多个任务承租人514可在给定地理区域中使用。任务承租人514的责任可包括维护该组虚拟机并基于该任务承租人内的资源利用来增长或收缩该任务承租人。这允许任务承租人514增加任务承租人内的虚拟机的数量以便容纳增加的顾客需求。这还允许任务承租人514释放未使用的虚拟机以便所述虚拟机能够被分配给数据中心中处理其他顾客的服务的其他托管服务。任务承租人514的另一责任可以是实现池分配/解除分配/管理逻辑的一部分。这允许任务承租人514参与确定如何将虚拟机分派到与顾客的任务相关联的池。任务承租人514还可负责该任务承租人内的虚拟机上的任务的调度和执行。
在图5中示出的实施例中,提供一个或多个任务位置服务512(“TLS”)(如同后文中将针对图6-8更详细地讨论的),所述任务位置服务控制给定地理区域中和/或跨越各种地理位置的所有任务承租人514。在图5中,示出任务位置服务512,其服务被标记为“地理区域1”和“地理区域2”的区域。任务位置服务512的责任可包括管理该给定地理区域的任务帐户。任务位置服务512还可提供应用编程接口(API)以便允许用户与该分布式计算环境交互。这些API可包括处理与虚拟机池、池管理逻辑、以及跨越给定地理区域中的任务承租人的池管理逻辑的协调相关联的API。这些API还可包括用于处理用户所提交的任务、以及用于维护、调度以及终止与该用户任务相关联的工作项或作业的API。这些API还可包括用于地理区域中的所有工作项、作业、任务和池的统计数据收集、聚合和报告的API。此外,这些API可包括用于允许基于虚拟机的现货市场短期地将可用虚拟机作为可抢占VM向用户拍卖的API。这些API还可包括用于计量使用率并且提供计费支持的API。
可通过全局位置服务502(“XLS”)将各任务位置服务512链接在一起。全局位置服务502可负责帐户创建和帐户的管理,包括结合任务位置服务512来管理任务帐户。例如,该全局位置服务可负责数据中心灾难情况下的灾难恢复以及工作项和作业的可用性。这可包括由于该数据中心不可用而在一不同位置运行工作项或作业,并且允许顾客将其工作项、作业和池从一个数据中心迁移到另一数据中心。通常,在任何给定时刻,在系统500中将只存在一个活动的全局位置服务502。该活动全局位置服务502与各个任务位置服务512以及服务组件通信以管理数据存储(未示出)。全局位置服务可维护全局帐户命名空间,诸如域名服务器504。
作为图5的系统的操作的示例,假想顾客或用户可使用客户端门户506访问系统500以经由全局位置服务502所提供的接口来创建任务帐户。在此示例中,假想顾客被称为Sally。创建任务帐户的用户请求可任选地指定需要在其中创建帐户的地理区域。在此示例中,Sally请求与地理区域1相关联的帐户,其具有地理区域2作为故障转移区域。作为响应,全局位置服务502联系与所请求的地理区域(例如,地理区域1)相对应的任务位置服务512以便创建该帐户。如果没有请求区域,则该任务帐户可在按任何方便方法选择的区域中创建,诸如基于与进行请求的用户或可用资源相关联的位置。任务位置服务512维护其地理区域中的所有帐户的所有信息。在针对地理区域1的任务位置服务512中成功创建帐户(并且可能在地理区域2中创建灾难恢复副本)之后,全局位置服务502为Sally的帐户注册任务服务端点以便指向地理区域1的任务位置服务512的虚拟IP地址。例如,域名服务(DNS)记录可被创建以将诸如“sally.task.core.servicecompany.net”等主机名映射到地理区域1中的任务位置服务512的虚拟IP地址。在此示例性方面中,这完成了Sally的任务帐户的创建。此外,构想了:在地理区域1出现故障的情况下,该全局位置服务可以更新DNS记录来指向地理区域2。
在创建该帐户之后,顾客Sally可以访问该任务帐户并且发送请求以访问API以针对主机名“sally.task.core.servicecompany.net”与该分布式计算环境交互。例如,Sally可访问API以发出创建新工作项或任务的请求。DNS服务器随后可以解析该主机名并且该请求将被路由到正确的任务位置服务512。在此示例中,该请求被路由到地理区域1的任务位置服务512,该任务位置服务处理该请求并创建所请求的工作项、作业或任务。
构想了:在本发明的示例性方面中,可按任何组合来实现任何数量的客户端门户506、地理区域508、510、任务位置服务512、和/或任务承租人514。例如,构想了:在一示例性方面中,任务位置服务512可与数十、数百或数千个任务承租人相关联。
图6示出了图解根据本发明的方面的用于任务位置服务602的可能配置的框图。在图6中示出的配置中,任务位置服务可包括一个或多个帐户服务器612。该帐户服务器处理给定地理区域中的帐户的帐户管理,包括创建、删除、或属性更新。帐户前端608担当帐户服务的前端节点。帐户前端608在该图中所示出的帐户虚拟IP地址604后。帐户前端608处理来自全局位置服务的帐户API请求,诸如用于创建帐户或删除帐户的API请求。
图6中的配置还包括一个或多个池服务器614。池服务器614处理给定地理区域中的虚拟机池的池管理和池事务。池服务器614处理池创建、删除和属性更新。池服务器614还管理跨多个任务承租人的高等级虚拟机分配算法。虚拟机分配可将虚拟机与给定用户的存储的连接性纳入考虑。池服务器还可执行与虚拟机的分配有关的其他任务。
此外,构想了:池服务器614还可包括自动缩放组件616。该自动缩放组件616可被形成为负责运行用户提供的自动缩放规则(例如,公式)的模块,所述自动缩放规则针对一池自动确定专用、待机和/或可抢占虚拟机的期望数量。换言之,所述自动缩放组件可负责基于与给定池相关联的自动缩放规则来做出自动缩放决策。自动缩放组件616可接收与该池或者被分派到该池的作业有关的度量并且向其应用用户提供的(或系统提供的)规则以计算该池上的自动缩放动作。自动缩放动作可包括增加或减少专用虚拟机的数量、增加或减少预留的待机虚拟机的数量、增加或减少该池的可抢占虚拟机的目标数量,同时还更新那些资源的竞标价格。
图6中的配置还包括一个或多个工作项或作业调度器(“WIJ”)618(如后文参考图8更详细地讨论的)。WIJ调度器618处理工作项和作业的创建、删除和更新。在一示例性实施例中,WIJ还负责基于在相关工作项中指定的日程安排来创建作业以及向该作业添加JM任务(如果要添加JM任务的话)。此外,在需要自动池配置(而不是传统的由用户手动创建)时,WIJ调度器618可发起与该工作项相关联的池的创建和删除。WIJ调度器618还可使用通用分区机制来在任务位置服务内缩放。在一实施例中,在每个任务位置服务中存在多个WIJ调度器618,并且每个WIJ调度器处理一定范围的工作项。
池服务器614和WIJ调度器618经由任务位置服务前端610从用户接收请求(如后文在图7处更详细地讨论的)。任务位置服务前端610还负责调用相应的组件来处理来自用户的请求。任务位置服务前端610在如该图中所示出的帐户虚拟IP地址606后。
图6中的配置还包括任务位置服务主机620。在一实施例中,任务位置服务主机620具有两个主要的职责。首先,任务位置服务主机620担当用于实现任务位置服务602中的相应服务器的分区逻辑的主系统。此外,任务位置服务主机620可负责在该任务位置服务的整个地理区域的每个现货时间段的开始处计算可抢占虚拟机的新市场价格,或者与负责现货定价的外部服务协调可抢占机器的竞标请求。它从池服务器和任务承租人收集现有竞标和资源可用性信息,并且相应地计算新市场价格或将该信息传递给现货市场服务。它还对池服务器做出关于跨地理位置中的所有任务承租人的可抢占虚拟机的高等级分配引导。
为了跟踪计算环境的活动和行为,任务位置服务主机620可与一个或多个统计数据聚集服务器622通信。统计数据聚集服务器负责收集和聚集任务、作业、工作项和池的详细统计数据。该系统中的其他组件发出任务和虚拟机的精细粒度的统计数据。统计聚集服务器将来自任务级或虚拟机级统计数据的这些精细粒度的统计数据聚集为工作项、帐户级、和/或池级统计数据。所述统计数据可经由API被披露以使用。此外,统计数据聚集服务器可负责为每个帐户生成每小时计量记录以供计费使用。
图7示出图解根据本发明的方面的示例性作业位置服务前端(“TLSFE”)700的框图。在一示例性方面中,TLSFE700可类似于上文讨论的图6的任务位置服务前端610。
TLSFE700包括请求处理器702、认证和授权模块704、帐户管理器组件706、以及商业逻辑模块708。构想了:附加或替代的模块和/或组件可被包括在替代实施例中。
请求处理器702是负责在HTTP(S)端点上接收和标识并接受用户请求的组件。请求处理器702随后可使每个请求排队并将其转发到认证和授权模块704。认证和授权模块704负责用户请求认证和授权。在一示例性方面中,TLSFE使用共享密钥认证来认证传入的请求。构想了其它形式的认证。此外,认证和授权模块704与帐户管理器组件706交互以获得关于用户帐户和密钥信息的信息。认证和授权模块704随后可确定用户是否被授权来请求操作的执行(例如,该帐户可在请求的时间被临时禁用)。
帐户管理器组件706可被用来封装存储/访问帐户信息。在一示例性方面中,帐户管理器组件706在接收到请求时按需加载帐户信息,这允许将信息本地高速缓存(在存储器中)以加速频繁访问的帐户的处理。当帐户属性(例如,禁用的状态、认证密钥)改变时,可更新帐户表。当高速缓存的副本(如果存在)过期(这可以是可配置的间隔)时,该TLSFE中运行的帐户管理器组件706可以看到该改变。
一旦该用户所进行的请求通过了认证和授权模块704,商业逻辑模块708处理与该用户所进行的请求有关的所有商业逻辑。商业逻辑模块708还可与分布式计算系统内的其他任务组件交互。此外,构想了:商业逻辑模块708监视JM任务完成队列以找到完成的作业管理器任务,随后其允许在任务完成时向图6的WIJ调度器618传递通知。
图8示出图解根据本发明的方面的示例性工作项/作业调度器(“WIJ”)800的框图。WIJ800可以是图6的示例性WIJ调度器618。
WIJ800包括请求处理器802、高速缓存模块804、心跳模块806、以及调度模块808。如同前面讨论的,WIJ800可以是负责接受用户帐户所提交的工作项并且在工作项日程安排内的适当时间调度作业的角色。因此,构想了:WIJ800为工作项创建作业、为每个派生(spawn)的新作业创建队列,所述队列随后被用来使该作业的任务排队。任务承租人(后文参考图9所讨论的)的任务调度器随后可从该队列拉取任务并且在该任务承租人的虚拟机上调度所述任务。此外,构想了:WIJ负责工作项和相关作业的寿命管理,诸如标记工作项/作业完成以及联系适当的任务承租人以开始作业。
请求处理器802是负责处理与从TLSFE接收的请求有关的各种工作项/作业的模块(诸如图6的任务位置服务前端610)。此外,构想了:在帐户被删除时,帐户服务器(例如,图6的帐户服务器612)向WIJ800传送请求。
高速缓存模块804是WIJ正在伺服的分区、用户帐户、活动工作项、活动作业、任务承租人列表等等的存储器内高速缓存。此模块可负责针对相关的高速缓存策略保持高速缓存是最新的。
心跳模块806与任务位置服务主机(例如,图6的TLSM620)协调以报告WIJ的健康和负载状况。此外,构想了:心跳模块806还经由“心跳”协调从TLSM接收新的分区分派。
调度模块808负责根据工作项的指定日程安排来调度该工作项的新作业。该调度模块还负责将工作项和/或作业标记为已完成。此外,调度模块808可负责创建和删除其寿命绑定于工作项或作业的寿命的池。
图9示出图解根据本发明的方面的任务承租人900的框图。在一示例性方面中,任务承租人被构想为被实现为图5的系统500中的任务承租人514。如上所述,任务承租人可帮助管理虚拟机池。在图9中示出的实施例中,任务承租人包括一个或多个任务承租人前端904。该任务承租人前端904位于任务承租人虚拟IP地址之后,该任务承租人虚拟IP地址内部用于任务承租人和其相应的任务位置服务之间的通信,包括在任务位置服务和任务承租人之间传递请求。
在图9中示出的实施例中,该任务承租人还包括任务调度器902。任务调度器902可负责做出任务承租人内的本地任务调度决策。任务调度器902决定在它所控制的每个虚拟机上运行什么任务。例如,用户所提交的工作项或作业可具有一组队列,所述队列包含要被调度的任务的列表。任务调度器902从该组队列中取出任务,选择与该作业相关联的池中的一个或多个可用虚拟机,并且联系所述虚拟机来调度这些任务。任务调度器902还可基于与作业相关联的优先级值来做出调度决策。此外,任务调度器902跟踪任务承租人内的虚拟机。
任务调度器902与池服务器一起工作以将虚拟机分配到池/从池解除虚拟机的分配。此外,任务调度器902与所有虚拟机保持心跳、经由心跳关于池成员与虚拟机同步,并且控制虚拟机的重启/重新镜像。任务调度器902的又一功能可以是跟踪任务承租人的大小。基于任务承租人内的虚拟机的当前利用率,任务调度器可以增长或收缩该任务承租人,以便该任务承租人具有足够数量的虚拟机来运行与该任务承租人相关联的任务。类似地,如果该任务承租人中有太多虚拟机保持空闲,可以释放这些虚拟机以供该数据中心中的其他托管服务使用。
任务调度器902包括以下组件和模块来实现上述功能性。例如,任务调度器可包括请求处理器910、心跳管理器912、统计数据聚集管理器914、调度循环模块916、池分配管理器918、以及任务承租人管理器920。
在一示例性方面中,任务调度器902“拥有”任务承租人900的虚拟机并且还“拥有”在那些虚拟机上所执行的东西。作为结果,构想了:VM池包括跨多个任务承租人的VM。当作业被分派给池时,任务调度器902可从队列中取出工作项并且在任务调度器902所“拥有”的虚拟机(例如,任务承租人900的TVM908)上运行那些工作项。与具有该池中的TVM的其他任务承租人相关联的其他任务调度器也可从该队列取出工作项并且在与每个任务承租人的唯一任务调度器中的每一个任务调度器相关联的虚拟机上运行那些工作项。
请求处理器910负责处理从WIJ、池服务器、和/或TLSM接收的各请求。所述请求可被从该任务承租人前端路由至该任务调度器。因此,请求处理器910可使请求排队以供正确的子组件消费。
心跳管理器912负责与该任务承租人内的其他虚拟机(例如TVM908)心跳。响应于心跳通信,此模块收集关于虚拟机健康和任务健康的信息。此外,响应于所接收的心跳消息,此模块可确定所述虚拟机中的哪些虚拟机空闲并可用于调度新任务。此外,心跳监视器可收集关于虚拟机的各种统计数据(例如,CPU、存储器、盘使用)。这些统计数据随后可被传递到统计数据聚集管理器914。
统计数据聚集管理器914负责按照池来聚集和组织从该任务承租人的各虚拟机收集的各种统计数据。所聚集的统计数据随后可被传递到池服务器以供在自动缩放操作中使用。
调度循环模块916可负责在池虚拟机上调度作业任务。池分配管理器918负责与池相关联的操作,诸如缩放资源、分配资源、分派作业/工作项等等,如同本文所讨论的。
任务承租人管理器920是关注任务承租人本身的增长和收缩的模块。此模块与分布式计算系统结构交互以扩张/收缩根据该系统上的负载的任务承租人虚拟机的数量。此外,构想了:任务承租人管理器920可负责维护自由重镜像虚拟机的缓冲区以便快速转换成任何给定池的专用虚拟机。
图9还示出了与任务承租人相关联的多个虚拟机。在图9中示出的实施例中,每个虚拟机包括任务虚拟机908(TVM)。在一实施例中,任务虚拟机908负责在虚拟机上启动任务,以及设置任务的目录结构和许可。任务虚拟机还配置虚拟机上的操作系统防火墙以便仅允许同一池内的虚拟机之间的流量(如果该池需要内部通信的话)。如同早先讨论的,任务调度器902机经由任务虚拟机908与所述虚拟机保持心跳。这允许任务调度器902监视虚拟机的健康以及为任务虚拟机代理同步池成员信息。
示例性的任务虚拟机906被示出为包括为简要起见而在TVM908中未示出的多个组件。然而,构想了:任何模块/组件可与任何虚拟机相关联。任务虚拟机906的组件/模块包括请求处理器922、资源管理器924、任务管理器926、以及安全管理器928。
请求处理器922负责处理虚拟机从任务调度器或任务承租人前端获得的各种请求。资源管理器924负责管理磁盘配额、创建系统的目录结构、以及下载用于启动任务和作业任务的资源。任务管理器926管理任务寿命,任务寿命开始于虚拟机从任务调度器接收开始任务命令的时刻,并且直到系统数据(例如,相关目录结构)被从虚拟机清除为止一直有效。安全管理器928负责设置各种防火墙规则并创建具有用于运行用户任务的正确特权的帐户。
图10示出图解根据本发明的方面的示例性池服务器1000的框图。在一示例性方面中,池服务器1000可被实现为上文中讨论的图6的池服务器614。
池服务器1000包括以下组件。请求处理器模块1002,其负责接受传入的操作(例如,创建池、删除池、以及更新池)。任务承租人虚拟机分配管理器模块1004,其执行跨越承租人的虚拟机分解以便预留池中的虚拟机。它是决定要选择哪些任务承租人并且要为池保留任务承租人中的多少虚拟机的决策模块。事务处理器模块1006也可与池服务器相关联。事务处理器模块是维持池事务的寿命的核心模块。此模块持续对事务工作,直到其成功完成或者超时或者被取消。每个事务都被保持在表中并且因此在故障的情况下可跨越各种系统组件完成。示例事务可包括从池服务器到任务承租人的针对给定池分配、预留或解除分配该任务承租人中的特定数量的VM的请求。而且,构想了:自动缩放模块1008也可与池服务器1000相关联。如同前面针对图6的自动缩放组件616所讨论的,该自动缩放组件1008负责运行用户提供的自动缩放规则(例如,公式),所述自动缩放规则针对一池自动确定专用、待机和/或可抢占虚拟机的期望数量。
工作项/作业/任务的管理
图11示出根据本发明的方面的提供示例性分布式计算系统中的各组件之间的示例性工作流1100的通信图。分布式计算系统包括客户端门户1102、任务位置服务前端(TLSFE)1104、池服务器1006、工作项/作业调度器(WIJ)1108、存储单元1112、以及任务承租人1114。所有组件如同上文所讨论的。TLSFE1104、池服务器1106和WIJ1108与任务位置服务1110相关联(诸如图6的TLS600)。
工作流包括用户通过客户端门户1102将工作项提交(1116)到TLSFE1104。此提交可使用对TLSFE的API调用来完成。该TLSFE随后可联系(1118)WIJ1108以向系统注册所接收的工作项。在注册工作项期间,可指定用于工作项任务和选项作业管理器任务的池。在此示例性方面中,此注册可导致从WIJ1108到存储1112的通信以保持(1120)工作项。而且,构想了:WIJ1108将创建存储(1122)在存储1112处的相关联的作业。
因为应当将作业与自动池相关联,所以WIJ1108可以指示池服务器1106创建池,该工作项的任务将被处理至该池。此工作流在以下假定下操作:该工作项被分派到的池尚不存在。在此示例中,用户所提交的工作项可指示其为自动池实施例。当接收到指示自动池设置被包括的工作项时,池服务器1106可动态地且自动地创建(1124)该池。该WIJ可控制该池何时被创建/删除且该WIJ可相应地指示该池服务器。该池服务器随后可如同其他用户发起的池创建/删除请求那样对待该WIJ请求。传统上,池的创建需要用户干预,用户干预阻止了池的创建为动态和自动的。
对于WIJ1108所派生的每个作业,可形成多个队列。例如,该WIJ可创建(1126)若干作业队列,包括专用队列、可抢占队列、“任何VM”队列、和/或作业管理器队列。这些各种队列被用来为该作业保持任务。
如果该作业项具有相关联的作业主机任务,则该WIJ可向系统注册该作业管理器任务以使该作业管理器任务作为与该作业一起开始第一个任务。此外,可将信息添加到作业管理器队列。于是该系统可以确保在系统故障的情况下该作业管理器总是与该作业一起运行。那些通信是通过WIJ添加(1128)作业管理器以及添加作业管理器任务(1130)来指示的。
一旦WIJ派生处作业,则可经由API提交该作业的附加任务。该系统支持针对每个所提交的任务指定重试计数。如果该任务失败,则该系统可以(可能在不同虚拟机上)将该任务重新派生最高重试计数次。如果该作业具有JM任务,则该作业的附加任务可由该作业管理器任务本身提交。该系统可允许在作业被创建后从系统外提交该任务。
TLSFE处理所有添加任务请求并且在接收到添加任务请求之后,该TLSFE将任务信息保持在任务表中并且还将关于该任务的元数据放入三个作业队列之一中。选择哪个作业队列可取决于该任务被标记为要在何处运行(例如,仅专用、仅可抢占、或者池中的任何VM)。
一旦作业被派生,则该WIJ联系具有该给定池的虚拟机的所有任务调度器并且向所述任务调度器通知该作业开始,如在开始作业通信1132中所见。用户可在工作项创建期间指定在作业管理器任务完成时该系统是否应当终止整个作业。该系统随后可维护此信息并且如果指定在JM任务完成时,可以实现以下逻辑:该WIJ可等待关于该WJM任务完成的通信,该通信可在任务承租人1114处理作业队列1134中的作业之后发生。当作业管理器任务完成时,使消息入队到该JM完成队列中。在一示例性方面中,该JM队列是系统队列。该TLSFE可保持监视该队列并且在得到该队列中的消息之后,它们将该消息出队(dequeue)并且通知适当的WIJ处理该作业管理器完成。在从该队列接收作业管理器消息之后,WIJ可以在其持久存储中将该作业标记为已完成并且将该消息从该JM完成队列移除。
如果作业不具有相关联的作业管理器任务或者用户不指定随着作业管理器任务的完成终止该作业,则顾客的独立的结束作业请求可被发出以将该作业标记为已完成。一旦该作业被标记为已完成,则不会处理该作业的附加任务。此外,构想了:可将作业标记为重复发生的或运行一次的。对于重复发生的作业,WIJ可以在下一次重新发生间隔时派生(例如,实例化、创建)新作业。该工作项可具有所指定的“不要在其后运行”时间,这将阻止WIJ在该时间后重新派生该作业。在从WIJ接收到开始作业的通信之后,任务调度器开始在作业队列中查看任务的存在。在一示例性方面中,随着附加任务被排队,任务调度器使任务出队并且在指定池虚拟机上运行该任务。
任务调度器调度
任务调度器(“TS”)(诸如图9的任务调度器902)可按以下示例性方式执行任务调度。该TS可将大部分调度信息维护在存储器中。然而,构想了:与尚未从作业队列拾取的任务有关的信息可不在存储器中维护。
在一示例性方面中,TS执行通过池的调度。因此,TS维护关于可对其调度作业任务的池中的每一个池的信息。该信息可经由开始作业消息(例如,图11的开始作业通信1132)由WIJ传递给该TS。在一示例性方面中,该TS可保持此信息以处理故障转移情况的可能。对于每个池,可能存在多个活动作业。该TS基于作业优先级来在每个池内进行调度。然而,在一示例性方面中,该优先级处于该作业级而不是包罗万象的帐户级。
在一示例性方面中,每个TS均知晓已被分派的作业的列表。对于每个调度量程,该TS从各作业队列中挑选“N”个项(例如,每个作业存在多个作业队列,其针对调度诸如专用和可抢占任务等的不同类型的任务具有不同的优先级),其中每个作业队列可以是优先级队列。在此示例中,“N”个项可等于在用于调度任务的池中可用的VM的数目。换言之,构想了:TS从所述队列挑选数量上等于池中的可用虚拟机的数量的项。
除了关于任务的其他元数据以外,每个队列条目可具有指向主任务表中的指针,这允许该TS从任务表读取关于任务的信息。该任务表可具有任务状态,其可帮助TS确定是否需要运行一任务。例如,如果该任务已完成,则该任务可能不需要再次运行。这可在任务完成后有故障但是VM不能从作业队列中移除该条目时发生。此外,构想了:可从任务表读取任务的紧密度信息。该紧密度可允许TS确定从队列中挑选的“N”个项中的哪个项最适合于特定的虚拟机。
一旦一任务被分派给VM,该TS可将虚拟机信息填充在与该任务相对应的任务表中并且在该虚拟机上调度该任务。一旦虚拟机被分派一任务,则该虚拟机可以接管延长其作业队列中的正在运行的任务的不可见时间,这有效地维持了任务上的承租。一旦该VM接收到该任务,则该VM可将任务的状态更新到“正在运行”(或类似状态)。一旦针对该任务下载了资源,则该VM可将任务状态更新为“正在运行”(或类似状态)并且派生任务过程。因此,该VM于是可从作业队列中删除该任务的相应条目。如果该任务碰巧是JM任务(作业主机任务),则VM可在JM完成队列中包括作业管理器完成条目。
任务重试处理和作业管理器任务重试处理
一般而言,任务重试和JM任务重试处理被类似地执行,然而,在一示例性方面中,这些过程之间存在若干偏离。在一示例性方面中,所提交的每个任务均与一重试计数相关联,该重试计数随该任务指定。在任务执行的应用故障时,该系统在将该任务标记为“错误地完成”之前可将该任务重新调度一定次数,所述次数等于重试计数值。在系统故障(例如,VM故障)的情况下,系统可自动重试故障的任务而不以重试计数为目标进行计数。
虚拟机监视该虚拟机所派生的任务。如果任务失败,则该VM在该VM上重试该任务并且还更新任务表中的重试计数。在一示例性方面中,该任务将任务重试“x”次(x是可配置的),在超出该次数之后,该VM通过使得该任务再次在队列中可见(例如,释放任务上的承租)来允许任务调度器在一替代VM中重新调度该任务。该任务调度器于是可从该队列拾取该可见项,更新重试计数,并且将其分派给另一VM。在此示例中,该任务仅可在存在可用VM时被拾取。此过程可继续,直到任务成功完成或者任务已被重试指定次数为止。
JM任务可沿袭如上概述的类似过程。然而,构想了:如果VM不可用于派生JM任务,则任务调度器可拾取非JM任务之一(例如,在运行时的最低优先级)并且抢占该任务以使得资源可用于该JM任务的运行。这可确保该JM任务总是针对作业重启,即便在系统故障的情况下。
池管理
对于每个任务帐户,可创建(或关联)一个或多个池。在一示例性方面中,池中存在两种类型的虚拟机,并且还存在与该池相关联的待机VM预留(如同前面讨论的)。该VM可以是专用VM,所述专用VM是由该任务帐户或池为独占利益而当前正使用的预留的VM。第二VM可以是可抢占VM。可抢占VM可以是系统中可用于运行可抢占任务的任何非专用VM,包括被预留为待机VM的VM或者系统提供的任何空闲VM。可使用可抢占VM,直到系统需要所述可抢占VM的资源来用于其他用途为止。
在一示例性方面中,帐户可指定池中的专用VM和待机预留VM的各自的数量。待机VM预留可被转换为专用VM,也构想了相反的情况。该系统于是可为特定池保持专用和待机资源。
可将各种属性与池相关联。那些属性可包括待机VM预留、专用VM的数量、VM的类型(例如,小型还是大型)、通信要求(如果作业需要跨任务通信的话)、存储帐户紧密度、池元数据(例如,用户所设置的元数据)、和/或开始任务信息。开始任务信息是在池的初始设置期间以及也在VM重启时在每个池VM上运行的任务。这些属性可至少部分定义池以及池的资源。
如同前面讨论的,作业利用池(以及底层的虚拟机)来运行该作业的任务。任务在池中的专用或可抢占VM上运行。在一示例性实施例中,待机VM预留不被用来直接运行任务,而是待机VM被转换为专用或可抢占VM。构想了各个VM的定价可以变化。例如,待机VM预留可以是预留该资源的成本最小,但是通过预留,待机VM预留可用于被快速转换为专用或可抢占资源。专用VM可具有传统的计算定价。另一方面,可抢占VM可通过竞标操作来定价,竞标操作允许现货定价以及其他可变定价构造的概念。
池的创建可沿袭与以下示例性步骤类似的过程;然而,构想了替代方法。用户可通过指定各种参数来发起池的创建,诸如池名称、VM大小、存储帐户紧密度、跨任务通信要求、元数据等等。用户可向TLSFE发送API请求,TLSFE随后可将相关请求(或相同相求)转发到正确的池服务器。在向池服务器发送请求之前,该系统可认证该用户。进行接收的池服务器于是可开始具有唯一标识符的池事务。池服务器随后可为该任务承租人生成VM预留分解以满足专用VM的目标数量以及被保持预留为待机的VM的数量。此预留操作可包括在系统故障的情况下保持该事务,以便池预留可最终获胜。池服务器于是可定期地传递状态(即,心跳)更新并检查任务调度器以保持对预留的更新。在完成该事务后,池服务器可通过以下操作来提交该事务:通知每个任务承租人提交其事务,并且随后在每个任务承租人响应之后,移除待办的事务。
可通过将待机VM预留转换为专用(或反过来)来更新池。这可以通过系统(或用户)提供期望数量的专用和待机VM来完成。池服务器随后可通过用相关联的任务承租人开始新的事务并将新的VM目标传递给那些任务承租人来处理池的更新。在任务承租人处,传入的请求可通过TTFE被路由到任务调度器。如果期望的目标包括增加专用VM的数量并且预留额外的待机VM,则任务调度器将未分配的VM转换为专用VM并减少待机计数。如果仍需要额外的专用VM,则任务调度器分配来自可抢占池的VM。如果没有足够的VM可用,则任务承租人可增长以满足该请求。换言之,构想了:首先分配空闲的VM,然后转换可抢占VM。然而,还构想了:可抢占VM被首先转换而空闲的VM被分配以满足任何其余的资源需求。
使用平台即服务(PAAS)的作业调度
图12示出图解根据本发明的方面的一种用于在分布式计算环境中提供资源的示例性方法1200的框图。在框1202,从用户接收创建任务帐户的请求。例如,用户可通过客户端门户(包括服务管理API)请求该服务生成该用户可用于执行计算的帐户。可在该系统的高等级位置服务(例如,XLS)处接收该请求。尽管未示出,然而构想了:高等级服务通过与一个或多个所定义的计算资源群集(例如,地理区域)中的较低等级的任务位置服务通信来确保帐户被创建。此外,构想了:如同前面所讨论的,高等级位置服务协调与帐户或者帐户所使用的资源相关联的命名空间的注册。命名空间的这种注册可以至少部分利用域名服务来执行。
在框1204,接收与该任务帐户相关联的工作项。例如,用户可通过客户端门户提交工作项。该工作项被构想为由该用户传递到该系统的任务位置服务。在一示例性方面中,至少部分基于该系统所维护的注册命名空间将该工作项路由到该TLS。例如,如同前面讨论的,可利用帐户虚拟IP地址和/或任务虚拟IP地址传递各通信。
在其他组件中,还构想了:该工作项可包括要由一个或多个虚拟机执行的二进制代码、可被虚拟机使用的命令行参数、和/或规则。例如,所述规则可例如被系统用来自动创建作业、自动创建池、自动在池上运行作业、和/或自动删除池。所述规则可实现其他功能。在框1206处,该系统接收与该工作项相关的规则。如同前面讨论的,所述规则可由用户传递、或可至少部分由系统基于用户提供的信息(例如,与该任务帐户相关联的偏好)生成。所述规则可以是定义工作项、所得的作业、相关联的任务、和/或池的性质的更广泛的规范的一部分。
在框1208处,基于工作项自动创建作业。如同前面讨论的,作业可以通过该系统的WIJ来创建。在一示例性方面中,基于结合该工作项接收的规则/规范来创建该作业。在此规则/规范中包括的其他信息中,还构想了:还可包括优先级和其他计算改变信息,所述信息允许系统自动创建作业以在池(或池的集合)上最终实例化而无需给用户增加负担。
在框1201处,当在该工作项中指定自动池时,将虚拟机自动分配给池以用于处理该作业。如同前面讨论的,被分配给池的虚拟机可以部分基于与该工作项相关联的规范和/或规则。例如,与该工作项相关联的信息可以指定期望的资源花费、期望该工作项在其中完成的时间、要在其中计算所述任务的地理区域等等。利用此信息,池服务器可向池分配0个或更多虚拟机。用于分配的信息可以是规范中指定专用和待机VM的数量的一部分等。
在框1212中,作业队列(或多个作业队列,如同之前讨论的)可由WIJ自动创建。此外,构想了:在一示例性方面中,可创建JM任务。此外,构想了:可通过将作业分派给该池并且随后在该池的VM上调度该作业的任务来将该工作项实例化为该池上的该作业,如在框1214所指示的。因此,构想了:可将工作项作为作业在池上调度。作为实例化作业的一部分,所调度的作业的任务随后可被分派给VM来运行。如同前面讨论的,构想了:任务承租人的任务调度器可负责将队列中的一个或多个任务调度在该池内的一个或多个虚拟机处。还构想了:在该池上实例化第二作业。第二作业可以是该工作项的重复出现的实例或者基于完全不同的工作项的作业。
在框1216处,构想了:该系统自动删除该池而无需用户的干预或请求。可响应于作业或工作项的完成而删除池。例如,可在完成每个作业之后删除该池。此外,构想了:可在完成作业之后维护该池以供该帐户(或另一帐户)或工作项的未来使用。例如,如果工作项被调度为重复发生,则按照该作业重复派生的预期来维护该池并且跨越运行中的作业保持VM上的状态(例如,数据文件和应用)是高效的。此外,构想了:使用自动缩放功能,响应于缩放规则(诸如池上的待办任务的数量),该池可将专用VM自动转换为待机VM或减少VM的数量。此外,构想了:可接收来自用户的请求。该请求可包括用于删除池的指令。
自动缩放池以及分层结构化
图13示出图解根据本发明的方面的一种用于在分布式计算环境中提供资源的示例性方法1300的框图。具体而言,构想了:基于规则、要求和当前资源负载自动缩放资源池允许有效地在分布式计算环境中提供资源。如同前面讨论的,池可以由系统(分布式计算环境)作为在其上实例化作业的资源集合来创建。然而,基于资源需求的变化、调度变化、以及其他变量,可能期望增加大小、减小大小、增加/减少特定的VM类型、以及调整与该池相关联的其他变量。传统上,此过程在本质上是手动的,并且依赖于人类干预来手动调整池资源水平。
构想了:可向资源(诸如池)的缩放提供自动化,以有效利用系统的资源。在一示例性方面中,方法1300允许池的自动缩放而无需用户的干预。在框1302处,该系统自动确定与池相关联的虚拟机的数量。所述确定可以由池服务器完成。确定数量可包括确定虚拟机的总数量或者确定特定类型的虚拟机的总数量。例如,该确定可以是要确定池中的专用VM的总数量。该确定可以从该系统的一个或多个组件/模块所维护的表或其他列表做出。例如,构想了:池服务器可维护具有该池所使用的虚拟机的那些任务承租人的列表。类似地,构想了:任务承租人可维护池所使用的VM的列表(例如,任务调度器可维护这种信息)。因此,该确定可以通过参考该系统内已经维护的信息的一个或多个源来做出。
在框1304处,应用自动缩放规则以调整与该池相关联的虚拟机的数量。例如,构想了:总的VM的数量被减少或增加。而且,构想了:特定类型的VM(例如,专用VM)的数量被增加或减少。如同先前讨论的,自动缩放规则可包括帮助确定池的大小/组成的一个或多个偏好。例如,自动缩放规则可包括用于基于当前池统计数据和调度作业来确定优化的池的一个或多个公式。自动缩放规则可将关于系统的帐户度量纳入考虑,诸如作业队列统计数据(例如,等待运行的待办任务、入队速率、出队速率、任务完成速率等)、现货定价信息、可用资源、资源的效率等等。此外,构想了自动缩放规则还可将工作项、作业、和/或任务的期望完成时间纳入考虑。此外,构想了:自动缩放规则可将被优选花费的期望金融资源(例如,依赖于以比专用VM成本低的可抢占VM)纳入考虑。
作为应用自动缩放规则来调整与该池相关联的虚拟机的数量的结果,该系统可动态分配该池的一个或多个虚拟机,如在框1306所指示的。VM的动态分配可包括添加一个或多个VM、移除一个或多个VM、改变一个或多个VM的类型。例如,自动缩放规则的应用可导致将作为专用VM的一个或多个虚拟机添加到该池。此外,构想了:该分配可包括将空闲的或可抢占的VM转换为专用VM并减少待机计数。还构想了其他分配
分配的动态特性与执行分配而无需用户干预的系统有关。例如,构想了:可按间隔(例如,时间间隔、进程计数间隔)来应用自动缩放规则。作为自动运行自动缩放规则的结果,在此示例性方面中,资源的分配可在分配时无需用户请求的情况下或者作为请求执行分配的用户输入的直接结果而发生。
图14示出图解根据本发明的方面的一种用于在分布式计算环境中提供资源的方法1400的框图。如同前面针对图13讨论的,构想了:在应用到池时自动缩放规则的利用和应用允许在分布式计算环境中提供资源。
在框1402,从用户接收工作项。该用户可通过API传递工作项,这可经由客户端门户到系统的高等级位置服务。工作项可与特定任务帐户相关联,该任务帐户可具有与其相关联的帐户偏好。在框1404,从用户接收自动缩放规则。自动缩放规则可提供针对以下方面的用户偏好:完成该工作项的时间、该工作项的优先级、优选的金融资源花费(例如,相对于专用VM优选可抢占VM)。自动缩放规则还可包括一个或多个公式,所述一个或多个公式利用一个或多个与池相关联的度量来帮助响应于对池的需求缩放池。
在框1406,将位于第一数据中心中的第一VM分配给池。该虚拟机的分配可包括将虚拟机作为该池内可用的资源添加。在一示例性方面中,将第一VM自动分配到第一池。这是在无需指示VM要包括在池中(更别提哪个VM以及哪个池)的用户干预的情况下完成的。例如,过去可能要求用户通过标识要包括在池中的资源来建立池。资源的标识可包括标识VM的数量以及从何处分派VM。在此示例中,系统自行标识池要被创建且多个VM要被分配给该池以便该池满足期望性能或操作性质。
在框1408,将第二虚拟机分配给第一池。第二VM处于第二数据中心中,该第二数据中心与第一数据中心在地理上分开。在一示例性方面中,该第二VM可来自处于同一数据中心中、但是出于不同任务承租人中的一组VM资源。构想了:第二VM被自动分配给第一池而无需用户干预。这种自动化(以及该系统在无需用户干预的情况下执行的其他自动化任务)合并了原本在用户被允许干预时不会被利用的过程和步骤。例如,在本发明的一示例性实施例内构想了关于要将哪个VM分配给第一(或任意)池的判断。
第一任务承租人和第二任务承租人可以是伺服该系统的物理上独立的数据中心(或处于共同的数据中心中)。例如,构想了:第一任务承租人可位于第一地理位置(例如,在特定地址、城市、州、地区、国家、和/或洲)。在一个示例中,构想了:第一任务承租人位于美利坚合众国的第一区域(例如,美国西部)而第二任务承租人位于美利坚合众国的一不同区域(例如,美国东部)。在此示例中,第一任务承租人和第二任务承租人能够由共同的或不同的任务位置服务来寻址。这允许池的自动缩放而无需用户对跨越不同的数据中心增长池(或减小池)的复杂事项进行干预。例如,构想了:物理限制先前可能已经阻止了池扩张到一物理数据中心的大小范围之外。解除作业和池的概念与本地VM资源控制下的调度器(任务承租人)的耦合允许池及其作业扩展以包括两个或更多个数据中心中的资源,而不需要用户编程或以其他方式干预系统来允许这种扩张。因此,构想了:基于系统自动处理池的扩张,用户可以设计能够跨越数十亿个VM并且跨越若干个VM来缩放的工作项。
在框1410,在第一虚拟机和第二虚拟机上实例化该工作项。工作项的实例化可包括任务承租人中的调度器从队列中拉走任务并将其分派到一VM。工作项的实例化还可包括在该虚拟机上调度来自该工作项的任务。实例化还可包括虚拟机从队列拉取任务以处理该任务。实例化还可包括在该虚拟机处处理任务。因此,工作项的实例化可包括导致该工作项的一部分(例如,任务)被VM处理的任何方面。
通过将该工作项的作业实例化到具有第一VM和第二VM两者的池,该工作项由跨越多个数据中心缩放的池处理而用户无需更改该工作项来实现这一结果。因此,构想了:能够在单一任务承租人所服务的池上运行的同一工作项,也可在无需用户干预的情况下,在跨越多个离散的任务承租人和数据中心的池上运行。
在框1412,向池应用自动缩放规则。在一示例性方面中,在无需用户干预的情况下,该系统自动启动自动缩放功能。自动缩放规则可将以下各项纳入考虑:当前正被使用的资源、被调度以提交的资源、以及该池所必需的资源、在被分派到该池的作业的队列中的待办工作的量、任务、作业等等。结合起来,自动缩放规则允许该池扩张、收缩和改变VM类型。
例如,构想了:如果向该作业添加附加的任务,或者用于处理该作业的时间超出初始预测,则可利用自动缩放规则来确定将需要多少附加资源来完成该作业。类似地,构想了:调用自动缩放规则可导致以下确定:该池中的VM的数量可能是过剩的并且那些资源中的一部分可以被转换或丢弃。例如,基于自动缩放规则,可将专用VM转换为可抢占甚至是待机VM预留。此外,构想了:作为被应用的自动缩放规则的确定的结果,可以将一VM从该池完全释放。
在框1414处,进行与池相关联的一个或多个VM的重新分配。例如,如果自动缩放规则确定可将一专用VM从该池释放,则可将该专用VM从该池放出。类似地,如果自动缩放规则确定可用VM的数量不足以实现所需结果(例如,及时完成作业),则可向该池分配一个或多个额外的VM以用于完成队列中的或尚未入队的待办任务。此外,如同前面讨论的,构想了:在一示例性方面中,一个或多个VM的重新分配可包括将VM从第一类型转换为第二类型。在一示例性方面中,此重新分配被构想为至少部分由与该池相关联的池服务器来执行。
解耦的资源、调度和作业
资源、调度、和作业的解耦允许作业从一个资源池到另一资源池继续执行。例如,此功能可在跨越不同的计算资源迁移工作并且对工作进行负载平衡时使用。在一具体示例中,如果特定数据中心故障(例如,自然灾害),则可将该工作迁移到新的数据中心来完成该作业。而且,构想了:资源、调度和作业的解耦允许作业跨越若干资源池和调度执行,这可允许该作业实现高度的缩放性,这样的缩放性否则将是不能获得的。此外,构想了:池跨越多个调度器、任务承租人、和/或数据中心,这允许被分派给该池的作业也跨越那些资源。
在一示例性方面中,解耦构想了利用系统中的三个单独的概念。第一个概念基于虚拟机池的概念。第二个概念是围绕作业管理、作业状态、以及作业队列形成的。第三个概念涉及调度器(例如,图9的作业调度器902)以及这些调度器负责针对这些池将对其调度所分派的作业的VM。这些概念允许基于多承租关系分布式计算系统的负载平衡需求来对作业、调度器和池的灵活的重新分派。而且,构想了:这三个概念还允许灾难恢复。
图15示出图解根据本发明的方面的一种用于在分布式计算环境中提供解耦的资源、调度以及作业的方法1500的框图。在框1502,在系统处接收工作项。例如,可利用在与提交工作项的帐户相关联的任务虚拟IP地址来在任务位置服务处接收工作项。可从该工作项创建作业,如在框1504中所示。在一示例性实施例中,作业创建是工作项应当作为作业被处理的标识。
在框1506,将虚拟机分配给第一池。例如,构想了:池服务器可将该VM分配诶第一池以提供该作业可在其上被实例化(例如,处理)的池。在框1508,将该作业分派给第一池。例如,构想了:与第一池相关联的池服务器分配了第一任务承租人调度器所拥有的VM,以便一旦该作业被分派到该池,则第一调度器可将任务从作业队列取走并将其分派给该调度器所拥有的该池中的VM以运行所述任务。
在框1510处,将作业的任务调度到第一池。如同先前讨论的,将任务调度到池可包括第一任务调度器在与该池相关联的一个或多个VM上处理该作业的一个或多个任务。此外,构想了:从作业队列承租任务的过程是实例化任务的一部分。构想了:该调度器“拥有”所述VM并且还“拥有”在所述VM上运行的进程。
在框1512,做出该作业要被重新分派到第二池的确定。第二池可以在操作上独立于第一池,使得导致故障的、地理上有限的灾难(例如,龙卷风、飓风、地震、电网故障、网络故障)不直接影响第二池。该确定还可以是响应于自动平衡过程,该过程用于跨越两个或更多个池、任务承租人或数据中心来平衡资源负载。例如,基于共同位置(例如,纽约州纽约市)的某些帐户可能在一共同时间(例如,金融交易日的开始)利用资源。在此示例中,聚集于美国东部地理区域的资源池可能比位于美国西部地理区域的资源负担更重。因此,即便将等待时间和其他因素(例如,紧密度)纳入考虑,该负载平衡过程也可确定将该作业的一个或多个部分迁移到第二池是更高效的,如在框1514处所示。迁移不限于“拥有权”的转移,而是构想了仅跨越多于一个池的负载平衡,其是将该作业分派到多个池。此外,迁移的概念包括跨越不同的任务承租人扩展池。作为结果,用户具有作业正在被单一池执行的印象是可能的,即便在该池覆盖多于一个任务承租人的时候。
作业(或作业内的任务)的迁移可包括释放队列中的任务的承租,以便不同池中的资源可以获得该任务的承租。在一替代实施例中,构想了:作业的迁移需要将工作项重新分布到新任务位置服务以与新的任务服务位置的资源相关联地进行重新创建和调度。作业的迁移为以下形式:将该作业从第一池重新分派到第二池。在框1516处,示出作业在第二池处的分派。在框1518处,调度该作业以在第二池上运行。第一池的调度器可以是与第一池相关联的WIJ、任务承租人、以及池服务器,而第二池的调度器可以是与第二池相关联的不同的WIJ、任务承租人和池服务器。因此,通过不将工作项/作业绑定到单一池或单一调度器,工作项可被迁移到不同的池,即便与第一池相关联的资源出现故障。
此外,如同上文中先前结合图9讨论的,构想了:任务承租人的任务调度器是与该系统的池和工作项/作业解耦的调度器。例如,任务调度器可从被分派到池的队列选择任务并且控制该任务调度器所调度的任务承租人内的相关联的VM中的哪个VM运行所述任务。此概念允许在池跨越多个任务承租人的时候,对于与每个任务承租人相关联的每个调度器从要由所述任务调度器中的每一个任务调度器所拥有的VM运行的队列拉取任务。因此,可以按照将作业(例如,工作项)与资源(例如,VM)与调度器(例如,任务调度器)有效解耦的方式在跨越池的资源上运行工作项。
该系统中的负载平衡此时可在各级被执行。例如,负载平衡可发生在与任务承租人相协调(例如,公共TLS所伺服的公共地理区域内的多个任务承租人)的池服务器所调度的公共资源群组内。此公共群组可以是任务承租人群组。因此,构想了:在一示例性方面中,可在两个不同层级执行负载平衡。第一级负载平衡可发生在与公共池服务器相关联的任务承租人之间。在此第一级负载平衡中,池服务器可跨不同任务承租人分配VM。更高的第二级负载平衡可跨不同的TLS(例如,图5的TLS512)发生。在此负载平衡级,负载还可跨越不同池服务器展开。此类负载平衡可被实现以导致跨该系统的负载迁移。所构想的又一级负载平衡通过WIJ跨越系统中的多个池分派工作项/作业来执行。
如同先前讨论的,构想了:作业的迁移可包括迁移完整作业、尚未被处理的作业的一部分、和/或迁移尚未被处理的作业的一部分而维持尚未被处理的该部分的一部分在原始池中。因此,作业的迁移可在故障以及响应于负载平衡操作两种情况下有用。
如本文所提供的,讨论了各种模块、组件、系统、层和过程。构想了:任一者可由唯一机器执行以将信息从第一形式转换为第二可用形式。此转换可由能用于将第一输入转换为第二可用输出的处理器和存储器实施。而且,本文讨论了虚拟机。如同先前讨论的,构想了:虚拟机能用于用有形的处理器和存储器来处理任务以带来将该任务转换为该系统能够使用的第二形式,以有益于分布式计算环境。
从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该结构是显而易见且固有的其他优点。
可理解的是,某些特征和子组合是有用的,并且可以加以利用而无需参考其它特征和子组合。这由权利要求所构想的,并在权利要求的范围内。
Claims (10)
1.一种具有分层调度器的分布式计算系统,包括:
具有处理器和存储器的任务机,所述任务机维护一个或多个各自运行任务的任务虚拟机;
具有处理器和存储器的任务位置服务机,所述任务位置服务机用于控制所述任务机并且管理任务机群组内的任务帐户;以及
具有处理器和存储器的高等级位置服务机,所述高等级位置服务机用于创建任务帐户以及与所述任务位置服务机协调任务帐户管理。
2.如权利要求1所述的系统,其特征在于,所述任务机能用于部分基于资源利用增加或减少所维护的虚拟机的数量。
3.如权利要求1所述的系统,其特征在于,所述任务位置服务机进一步包括池服务器,所述池服务器处理跨越所述任务机群组的池管理。
4.如权利要求3所述的系统,其特征在于,所述池服务器与所述任务机的任务调度器协调以便为池分配虚拟机。
5.如权利要求3所述的系统,其特征在于,所述池服务器与所述任务机的任务调度器协调以从池中移除虚拟机。
6.如权利要求1所述的系统,其特征在于,跨越所述分布式计算环境的只存在所述高等级位置服务机的一个活动实例。
7.一个或多个存储计算机可用指令的计算机存储介质,所述计算机可用指令在被具有处理器和存储器的计算设备执行时执行一种用于在分布式计算环境中提供资源的方法,所述方法包括:
确定与池相关联的虚拟机的数量;
用具有池服务器的任务位置服务机的处理器和存储器应用自动缩放规则,以便调整与所述池相关联的虚拟机的数量;以及
响应于经自动缩放规则调整过的与所述池相关联的虚拟机的数量来针对所述池分配一个或多个虚拟机。
8.如权利要求7所述的计算机存储介质,其特征在于,动态分配一个或多个虚拟机包括跨越两个或更多个任务机分配虚拟机。
9.如权利要求7所述的计算机存储介质,其特征在于,调整过的虚拟机的数量是部分利用所述自动缩放规则和与所述池相关联的度量来确定的,所述度量是通过与所述任务位置服务机的池服务器相关联的度量收集模块获得的。
10.一种用于在分布式计算环境中提供资源的计算机实现的方法,包括:
从用户接收工作项;
从所述用户接收自动缩放规则;
在无需所述用户的干预的情况下,将第一任务机中的第一虚拟机分配给池;
在无需所述用户干预的情况下,将与所述第一任务机物理分开的第二任务机中的第二虚拟机分配给所述池;
在所述池中的所述第一虚拟机和所述第二虚拟机上实例化所述工作项;
在无需所述用户的干预的情况下,向所述池应用所述自动缩放规则;以及
重新分配与所述池相关联的一个或多个虚拟机。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/346,348 US9372735B2 (en) | 2012-01-09 | 2012-01-09 | Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool |
US13/346,348 | 2012-01-09 | ||
PCT/US2012/071890 WO2013106204A1 (en) | 2012-01-09 | 2012-12-28 | Paas hierarchial scheduling and auto-scaling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104040485A true CN104040485A (zh) | 2014-09-10 |
CN104040485B CN104040485B (zh) | 2018-10-23 |
Family
ID=48744884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280066600.7A Active CN104040485B (zh) | 2012-01-09 | 2012-12-28 | Paas分层调度和自动缩放 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9372735B2 (zh) |
EP (1) | EP2802980A4 (zh) |
JP (1) | JP6165777B2 (zh) |
KR (1) | KR101976234B1 (zh) |
CN (1) | CN104040485B (zh) |
WO (1) | WO2013106204A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068859A (zh) * | 2015-07-29 | 2015-11-18 | 上海谐桐信息技术有限公司 | 一种跨虚拟机的多服务调用方法及系统 |
CN105760209A (zh) * | 2014-12-16 | 2016-07-13 | 华为技术有限公司 | 移除虚拟机的方法、装置与自动弹性群组 |
CN106412075A (zh) * | 2016-10-14 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种基于云计算的资源配置方法及装置 |
CN106712998A (zh) * | 2015-11-18 | 2017-05-24 | 中兴通讯股份有限公司 | 一种云平台资源管理方法、装置及系统 |
CN107402806A (zh) * | 2017-04-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 分布式文件架构的任务处理方法和装置 |
CN109313572A (zh) * | 2016-05-17 | 2019-02-05 | 亚马逊科技有限公司 | 通用自动缩放 |
CN110383764A (zh) * | 2016-12-16 | 2019-10-25 | 华为技术有限公司 | 无服务器系统中使用历史数据处理事件的系统和方法 |
CN110442431A (zh) * | 2019-08-12 | 2019-11-12 | 安徽赛福贝特信息技术有限公司 | 一种云计算系统中虚拟机的创建方法 |
CN110958297A (zh) * | 2019-10-29 | 2020-04-03 | 北京邮电大学 | 一种数据迁移方法及系统 |
WO2022100438A1 (en) * | 2020-11-11 | 2022-05-19 | International Business Machines Corporation | Predictive auto-scaler for a hierarchical computing infrastructure |
CN115934299A (zh) * | 2023-02-22 | 2023-04-07 | 智者四海(北京)技术有限公司 | Yarn作业的迁移系统及方法 |
Families Citing this family (165)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8789065B2 (en) | 2012-06-08 | 2014-07-22 | Throughputer, Inc. | System and method for input data load adaptive parallel processing |
US9448847B2 (en) | 2011-07-15 | 2016-09-20 | Throughputer, Inc. | Concurrent program execution optimization |
US9262195B2 (en) | 2012-02-28 | 2016-02-16 | Red Hat Israel, Ltd. | Manageable external wake of virtual machines |
JP2013186745A (ja) * | 2012-03-08 | 2013-09-19 | Fuji Xerox Co Ltd | 処理システム及びプログラム |
US9197489B1 (en) | 2012-03-30 | 2015-11-24 | Amazon Technologies, Inc. | Live migration of virtual machines in a hybrid network environment |
US9928107B1 (en) | 2012-03-30 | 2018-03-27 | Amazon Technologies, Inc. | Fast IP migration in a hybrid network environment |
US9164795B1 (en) * | 2012-03-30 | 2015-10-20 | Amazon Technologies, Inc. | Secure tunnel infrastructure between hosts in a hybrid network environment |
US9641431B1 (en) * | 2012-04-18 | 2017-05-02 | Google Inc. | System and methods for utilization-based balancing of traffic to an information retrieval system |
TWI456944B (zh) * | 2012-05-02 | 2014-10-11 | Quanta Comp Inc | 管理方法及其系統 |
US8904402B2 (en) * | 2012-05-30 | 2014-12-02 | Red Hat, Inc. | Controlling capacity in a multi-tenant platform-as-a-service environment in a cloud computing system |
US9405602B1 (en) * | 2012-06-25 | 2016-08-02 | Google Inc. | Method for application notification and tasking |
US9507612B1 (en) * | 2012-08-31 | 2016-11-29 | United Services Automobile Association (Usaa) | Managing dedicated and floating pool of virtual machines based on demand |
JP5920125B2 (ja) * | 2012-09-05 | 2016-05-18 | 富士通株式会社 | プロセス数制御プログラム、プロセス数制御方法、および情報処理装置 |
US8978035B2 (en) | 2012-09-06 | 2015-03-10 | Red Hat, Inc. | Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
WO2014052843A1 (en) * | 2012-09-28 | 2014-04-03 | Cycle Computing, Inc. | Real time optimization of compute infrastructure in a virtualized environment |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US9405579B2 (en) * | 2012-10-11 | 2016-08-02 | International Business Machines Corporation | Seamless extension of local computing power |
US20140173618A1 (en) * | 2012-10-14 | 2014-06-19 | Xplenty Ltd. | System and method for management of big data sets |
US9342369B2 (en) * | 2013-01-07 | 2016-05-17 | Wal-Mart Stores, Inc. | System and method for increasing throughput of a PaaS system |
US9804890B1 (en) * | 2013-02-15 | 2017-10-31 | Amazon Technologies, Inc. | Termination policies for scaling compute resources |
US9628399B2 (en) * | 2013-03-14 | 2017-04-18 | International Business Machines Corporation | Software product instance placement |
US9633358B2 (en) * | 2013-03-15 | 2017-04-25 | Knowledgevision Systems Incorporated | Interactive presentations with integrated tracking systems |
US8621062B1 (en) | 2013-03-15 | 2013-12-31 | Opscode, Inc. | Push signaling to run jobs on available servers |
JP6157181B2 (ja) * | 2013-04-02 | 2017-07-05 | キヤノン株式会社 | サーバーシステム、その制御方法、およびそのプログラム |
US20140325219A1 (en) * | 2013-04-27 | 2014-10-30 | Wanin International Co., Ltd. | Secret key management method for multi-network platform |
WO2014193361A1 (en) * | 2013-05-29 | 2014-12-04 | Empire Technology Development Llc | Tiered eviction of instances of executing processes |
US9602426B2 (en) | 2013-06-21 | 2017-03-21 | Microsoft Technology Licensing, Llc | Dynamic allocation of resources while considering resource reservations |
US20150067676A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for performing resource management for software defined clouds |
US20150067677A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for defining virtual machine placement logic that is configurable and restricts virtual machine provisioning within a software defined cloud |
CN105493066B (zh) * | 2013-08-30 | 2019-02-05 | 慧与发展有限责任合伙企业 | 基于缩放规则来维护云网络上的服务 |
US9851988B1 (en) * | 2013-09-04 | 2017-12-26 | Amazon Technologies, Inc. | Recommending computer sizes for automatically scalable computer groups |
US9262190B2 (en) * | 2013-11-19 | 2016-02-16 | Xerox Corporation | Method and system for managing virtual machines in distributed computing environment |
US10033825B2 (en) | 2014-02-21 | 2018-07-24 | Knowledgevision Systems Incorporated | Slice-and-stitch approach to editing media (video or audio) for multimedia online presentations |
WO2015126430A1 (en) * | 2014-02-24 | 2015-08-27 | Hewlett-Packard Development Company, L.P. | Virtual network function management with deactivated virtual machines |
US10621002B2 (en) * | 2014-02-28 | 2020-04-14 | Pivotal Software, Inc. | Iterative task centric resource scheduling for a user program between different computing frameworks |
US9703611B1 (en) | 2014-03-21 | 2017-07-11 | Amazon Technologies, Inc. | Isolating resources for utilization by tenants executing in multi-tenant software containers |
US9754122B1 (en) | 2014-03-21 | 2017-09-05 | Amazon Technologies, Inc. | Isolating tenants executing in multi-tenant software containers |
JP6263424B2 (ja) * | 2014-03-31 | 2018-01-17 | 株式会社Nttドコモ | 管理システム及び管理方法 |
CN103957237A (zh) * | 2014-04-03 | 2014-07-30 | 华南理工大学 | 一种弹性云的体系结构 |
RU2568282C2 (ru) * | 2014-04-18 | 2015-11-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ обеспечения отказоустойчивости антивирусной защиты, реализуемой в виртуальной среде |
US10162683B2 (en) | 2014-06-05 | 2018-12-25 | International Business Machines Corporation | Weighted stealing of resources |
WO2015189968A1 (ja) * | 2014-06-12 | 2015-12-17 | 株式会社日立製作所 | Vm管理システム及びその方法 |
CN104168310A (zh) * | 2014-07-24 | 2014-11-26 | 深圳天珑无线科技有限公司 | 云端虚拟服务器的调度方法及装置 |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9678773B1 (en) * | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US10120716B2 (en) * | 2014-10-02 | 2018-11-06 | International Business Machines Corporation | Task pooling and work affinity in data processing |
US9672068B2 (en) * | 2014-10-09 | 2017-06-06 | Vmware, Inc. | Virtual machine scheduling using optimum power-consumption profile |
US9513935B2 (en) | 2014-10-28 | 2016-12-06 | International Business Machines Corporation | Auto-scaling thresholds in elastic computing environments |
US10701169B2 (en) | 2014-11-03 | 2020-06-30 | Electronics And Telecommunications Research Institute | Method for operating relation server and system using the same |
US9900399B2 (en) | 2014-11-03 | 2018-02-20 | Electronics And Telecommunications Research Institute | Method for operating machines and system using the same |
US9647889B1 (en) | 2014-11-12 | 2017-05-09 | Amazon Technologies, Inc. | Standby instances for auto-scaling groups |
US10411960B1 (en) * | 2014-11-12 | 2019-09-10 | Amazon Technologies, Inc. | Detaching instances from auto-scaling group |
US9413626B2 (en) | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
DE102015015196A1 (de) * | 2014-12-16 | 2016-06-16 | Canon Kabushiki Kaisha | Verwaltungssystem und Steuerungsverfahren für Verwaltungssystem |
JP6548540B2 (ja) * | 2014-12-16 | 2019-07-24 | キヤノン株式会社 | 管理システムおよび管理システムの制御方法 |
CN105786587B (zh) * | 2014-12-23 | 2019-11-26 | 华为技术有限公司 | 一种虚拟机vm的伸缩方法和设备 |
US9971621B1 (en) * | 2015-02-02 | 2018-05-15 | Amazon Technologies, Inc. | Hotpooling virtual machines |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US11283697B1 (en) | 2015-03-24 | 2022-03-22 | Vmware, Inc. | Scalable real time metrics management |
US9851933B2 (en) * | 2015-03-25 | 2017-12-26 | International Business Machines Corporation | Capability-based abstraction of software-defined infrastructure |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US10410155B2 (en) | 2015-05-01 | 2019-09-10 | Microsoft Technology Licensing, Llc | Automatic demand-driven resource scaling for relational database-as-a-service |
US9848041B2 (en) * | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US9851999B2 (en) * | 2015-07-30 | 2017-12-26 | At&T Intellectual Property I, L.P. | Methods, systems, and computer readable storage devices for handling virtualization of a physical telephone number mapping service |
US9888127B2 (en) | 2015-07-30 | 2018-02-06 | At&T Intellectual Property I, L.P. | Methods, systems, and computer readable storage devices for adjusting the use of virtual resources providing communication services based on load |
US9866521B2 (en) | 2015-07-30 | 2018-01-09 | At&T Intellectual Property L.L.P. | Methods, systems, and computer readable storage devices for determining whether to forward requests from a physical telephone number mapping service server to a virtual telephone number mapping service server |
US10277736B2 (en) | 2015-07-30 | 2019-04-30 | At&T Intellectual Property I, L.P. | Methods, systems, and computer readable storage devices for determining whether to handle a request for communication services by a physical telephone number mapping service or a virtual telephone number mapping service |
EP3332332A4 (en) | 2015-08-25 | 2018-08-08 | Huawei Technologies Co., Ltd. | System and method for network function virtualization resource management |
US10594562B1 (en) | 2015-08-25 | 2020-03-17 | Vmware, Inc. | Intelligent autoscale of services |
CN105162884A (zh) * | 2015-09-25 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种基于微服务架构的云管理平台 |
US10395219B1 (en) * | 2015-12-18 | 2019-08-27 | Amazon Technologies, Inc. | Location policies for reserved virtual machine instances |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US11137990B2 (en) | 2016-02-05 | 2021-10-05 | Sas Institute Inc. | Automated message-based job flow resource coordination in container-supported many task computing |
US11080031B2 (en) * | 2016-02-05 | 2021-08-03 | Sas Institute Inc. | Message-based coordination of container-supported many task computing |
US10212041B1 (en) | 2016-03-04 | 2019-02-19 | Avi Networks | Traffic pattern detection and presentation in container-based cloud computing architecture |
US10931548B1 (en) | 2016-03-28 | 2021-02-23 | Vmware, Inc. | Collecting health monitoring data pertaining to an application from a selected set of service engines |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10275272B2 (en) | 2016-06-20 | 2019-04-30 | Vmware, Inc. | Virtual machine recovery in shared memory architecture |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
CN106227582B (zh) * | 2016-08-10 | 2019-06-11 | 华为技术有限公司 | 弹性伸缩方法及系统 |
US10565016B2 (en) | 2016-09-20 | 2020-02-18 | International Business Machines Corporation | Time frame bounded execution of computational algorithms |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US10331479B2 (en) | 2017-01-13 | 2019-06-25 | Microsoft Technology Licensing, Llc | Computing on transient resources |
US10382565B2 (en) | 2017-01-27 | 2019-08-13 | Red Hat, Inc. | Capacity scaling of network resources |
US11093297B2 (en) * | 2017-02-08 | 2021-08-17 | Dell Products L.P. | Workload optimization system |
JP6915336B2 (ja) * | 2017-03-24 | 2021-08-04 | 富士フイルムビジネスイノベーション株式会社 | 情報処理システム及び仮想マシン |
US10379898B2 (en) | 2017-03-24 | 2019-08-13 | International Business Machines Corporation | Virtual machine consolidation |
US11003499B1 (en) * | 2017-06-14 | 2021-05-11 | Amazon Technologies, Inc. | Resource allocation based on agent behavior in a simulation environment |
EP3674893B1 (en) * | 2017-08-31 | 2021-07-07 | Shenzhen Heytap Technology Corp., Ltd. | Search resource recommendation method and related product |
US10678574B1 (en) * | 2017-11-01 | 2020-06-09 | Amazon Technologies, Inc. | Reconfiguration rate-control |
US10536332B1 (en) * | 2017-11-15 | 2020-01-14 | Amazon Technologies, Inc. | Configuration invocation management |
US11036532B2 (en) * | 2017-11-29 | 2021-06-15 | Microsoft Technology Licensing, Llc | Fast join and leave virtual network |
US10719344B2 (en) * | 2018-01-03 | 2020-07-21 | Acceture Global Solutions Limited | Prescriptive analytics based compute sizing correction stack for cloud computing resource scheduling |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US11354164B1 (en) * | 2018-04-20 | 2022-06-07 | Automation Anywhere, Inc. | Robotic process automation system with quality of service based automation |
US10908950B1 (en) | 2018-04-20 | 2021-02-02 | Automation Anywhere, Inc. | Robotic process automation system with queue orchestration and task prioritization |
US10999168B1 (en) | 2018-05-30 | 2021-05-04 | Vmware, Inc. | User defined custom metrics |
US10620989B2 (en) | 2018-06-08 | 2020-04-14 | Capital One Services, Llc | Managing execution of data processing jobs in a virtual computing environment |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11070430B2 (en) * | 2018-08-27 | 2021-07-20 | At&T Intellectual Property I, L.P. | Persona/individual based actions based on community specific trigger |
JP7135648B2 (ja) * | 2018-09-20 | 2022-09-13 | 富士フイルムビジネスイノベーション株式会社 | 中継システム |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US10958730B2 (en) * | 2018-09-28 | 2021-03-23 | Hewlett Packard Enterprise Development Lp | Mapping virtual network functions |
EP4239484A3 (en) | 2018-10-26 | 2024-01-03 | VMware, Inc. | Collecting samples hierarchically in a datacenter |
US11164125B2 (en) * | 2018-11-19 | 2021-11-02 | Capital One Services, Llc | Systems and methods for proactive infrastructure resource management for multiple application clusters |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US10887380B2 (en) * | 2019-04-01 | 2021-01-05 | Google Llc | Multi-cluster ingress |
US11106496B2 (en) | 2019-05-28 | 2021-08-31 | Microsoft Technology Licensing, Llc. | Memory-efficient dynamic deferral of scheduled tasks |
US11582120B2 (en) | 2019-05-30 | 2023-02-14 | Vmware, Inc. | Partitioning health monitoring in a global server load balancing system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11169855B2 (en) * | 2019-12-03 | 2021-11-09 | Sap Se | Resource allocation using application-generated notifications |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11481262B1 (en) | 2020-06-25 | 2022-10-25 | Amazon Technologies, Inc. | Rapid autoscaling with preinitialized instance quantity based on historical scale up rate |
US11520638B1 (en) * | 2020-06-25 | 2022-12-06 | Amazon Technologies, Inc. | Combined active and preinitialized resource management for rapid autoscaling |
US11922216B2 (en) | 2020-10-22 | 2024-03-05 | Cisco Technology, Inc. | Compute resources management via virtual service contexts (VSC) in compute clusters |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11928521B2 (en) | 2021-04-17 | 2024-03-12 | UiPath, Inc. | Bring your own machine (BYOM) |
US11811861B2 (en) | 2021-05-17 | 2023-11-07 | Vmware, Inc. | Dynamically updating load balancing criteria |
US11799824B2 (en) | 2021-06-14 | 2023-10-24 | Vmware, Inc. | Method and apparatus for enhanced client persistence in multi-site GSLB deployments |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
CA3226769A1 (en) * | 2021-07-29 | 2023-02-02 | Tushar SOOD | Intent based service scaling |
US20230232195A1 (en) | 2022-01-19 | 2023-07-20 | Vmware, Inc. | Collective scaling of applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883029A (zh) * | 2009-05-05 | 2010-11-10 | 埃森哲环球服务有限公司 | 云中的应用移植方法和系统 |
US20110078303A1 (en) * | 2009-09-30 | 2011-03-31 | Alcatel-Lucent Usa Inc. | Dynamic load balancing and scaling of allocated cloud resources in an enterprise network |
US8065676B1 (en) * | 2007-04-24 | 2011-11-22 | Hewlett-Packard Development Company, L.P. | Automated provisioning of virtual machines for a virtual machine buffer pool and production pool |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5062037A (en) | 1988-10-24 | 1991-10-29 | Ibm Corp. | Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network |
US5392430A (en) | 1992-10-30 | 1995-02-21 | International Business Machines | Hierarchical scheduling method for processing tasks having precedence constraints on a parallel processing system |
US5832262A (en) | 1995-09-14 | 1998-11-03 | Lockheed Martin Corporation | Realtime hardware scheduler utilizing processor message passing and queue management cells |
KR19990013427A (ko) * | 1997-07-15 | 1999-02-25 | 포만제프리엘 | 컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물 |
US6223202B1 (en) | 1998-06-05 | 2001-04-24 | International Business Machines Corp. | Virtual machine pooling |
US7290009B1 (en) | 1999-08-25 | 2007-10-30 | The Trustees Of Columbia University In The City Of New York | System and method for allocating resources using spot market and derivative market techniques |
US8135796B1 (en) | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
US6865591B1 (en) | 2000-06-30 | 2005-03-08 | Intel Corporation | Apparatus and method for building distributed fault-tolerant/high-availability computed applications |
JP2002041305A (ja) | 2000-07-26 | 2002-02-08 | Hitachi Ltd | 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム |
US6985951B2 (en) | 2001-03-08 | 2006-01-10 | International Business Machines Corporation | Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment |
US7251657B2 (en) | 2002-05-10 | 2007-07-31 | Oracle International Corporation | Method and system for implementing dynamic cache of database cursors |
US7395334B2 (en) | 2003-04-25 | 2008-07-01 | International Business Machines Corporation | System for determining unreturned standby resource usage |
US7596790B2 (en) | 2003-08-29 | 2009-09-29 | Intel Corporation | Allocating computing resources in a distributed environment |
US20070124733A1 (en) * | 2004-01-08 | 2007-05-31 | Koninklijke Philips Electronics N.V. | Resource management in a multi-processor system |
JP2005266917A (ja) | 2004-03-16 | 2005-09-29 | Nec Corp | 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム |
JP4308086B2 (ja) * | 2004-05-31 | 2009-08-05 | 富士通株式会社 | 自律制御プログラム及びその記録媒体、自律制御装置並びに自律制御方法 |
US7739685B2 (en) | 2005-01-06 | 2010-06-15 | International Business Machines Corporation | Decoupling a central processing unit from its tasks |
US8429630B2 (en) | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US8151277B2 (en) | 2007-05-15 | 2012-04-03 | Dynatrace Software Gmbh | Method and system for dynamic remote injection of in-process agents into virtual machine based applications |
WO2008084826A1 (ja) * | 2007-01-11 | 2008-07-17 | Nec Corporation | プロビジョニングシステム、方法、及び、プログラム |
US8554981B2 (en) | 2007-02-02 | 2013-10-08 | Vmware, Inc. | High availability virtual machine cluster |
KR20090000631A (ko) | 2007-03-12 | 2009-01-08 | 권혁숙 | 자전거 보관 대여소 |
KR101040117B1 (ko) * | 2007-12-13 | 2011-06-09 | 한국전자통신연구원 | 다중 시스템 워크로드 관리 시스템 및 방법 |
US8930946B1 (en) | 2008-02-14 | 2015-01-06 | Google Inc. | Leasing prioritized tasks |
US8112526B2 (en) | 2008-06-24 | 2012-02-07 | International Business Machines Corporation | Process migration based on service availability in a multi-node environment |
US20100042670A1 (en) | 2008-08-13 | 2010-02-18 | Electronic Data Systems Corporation | Integrated development engine for a cloud computing environment |
US8434087B2 (en) | 2008-08-29 | 2013-04-30 | International Business Machines Corporation | Distributed acceleration devices management for streams processing |
US7870044B2 (en) | 2008-10-02 | 2011-01-11 | Verizon Patent And Licensing Inc. | Methods, systems and computer program products for a cloud computing spot market platform |
US10025627B2 (en) * | 2008-11-26 | 2018-07-17 | Red Hat, Inc. | On-demand cloud computing environments |
US8291414B2 (en) | 2008-12-11 | 2012-10-16 | International Business Machines Corporation | Shared resource service provisioning using a virtual machine manager |
US8775544B2 (en) | 2009-02-04 | 2014-07-08 | Citrix Systems, Inc. | Methods and systems for dynamically switching between communications protocols |
KR20100092850A (ko) * | 2009-02-13 | 2010-08-23 | 경희대학교 산학협력단 | 클라우드 컴퓨팅 환경에서의 리소스 분배 장치 및 그 방법 |
US9201485B2 (en) | 2009-05-29 | 2015-12-01 | Red Hat, Inc. | Power management in managed network having hardware based and virtual resources |
US20100318454A1 (en) | 2009-06-16 | 2010-12-16 | Microsoft Corporation | Function and Constraint Based Service Agreements |
US8112659B2 (en) * | 2009-06-19 | 2012-02-07 | Oracle International Corporation | Reducing recovery time for business organizations in case of disasters |
US8261275B2 (en) * | 2009-06-29 | 2012-09-04 | Oracle America, Inc. | Method and system for heuristics-based task scheduling |
US20110113426A1 (en) | 2009-11-09 | 2011-05-12 | Hsiang-Tsung Kung | Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods |
US8589921B2 (en) | 2009-11-30 | 2013-11-19 | Red Hat Israel, Ltd. | Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm |
WO2011069664A1 (en) | 2009-12-11 | 2011-06-16 | Deutsche Telekom Ag | Computer cluster and method for providing a disaster recovery functionality for a computer cluster |
US8924569B2 (en) * | 2009-12-17 | 2014-12-30 | Intel Corporation | Cloud federation as a service |
US20110173626A1 (en) | 2010-01-12 | 2011-07-14 | Nec Laboratories America, Inc. | Efficient maintenance of job prioritization for profit maximization in cloud service delivery infrastructures |
US8924982B2 (en) | 2010-01-12 | 2014-12-30 | Amazon Technologies, Inc. | Managing private use of program execution capacity |
US8301746B2 (en) | 2010-01-26 | 2012-10-30 | International Business Machines Corporation | Method and system for abstracting non-functional requirements based deployment of virtual machines |
US9703586B2 (en) | 2010-02-17 | 2017-07-11 | Microsoft Technology Licensing, Llc | Distribution control and tracking mechanism of virtual machine appliances |
US20110214124A1 (en) | 2010-02-26 | 2011-09-01 | James Michael Ferris | Systems and methods for generating cross-cloud computing appliances |
US8464255B2 (en) | 2010-03-12 | 2013-06-11 | Microsoft Corporation | Managing performance interference effects on cloud computing servers |
US8271814B2 (en) | 2010-03-22 | 2012-09-18 | Microsoft Corporation | Migrating a client computer to a virtual machine server when the client computer is deemed to be idle |
WO2011123467A1 (en) * | 2010-03-29 | 2011-10-06 | Amazon Technologies, Inc. | Managing committed request rates for shared resources |
US9342801B2 (en) * | 2010-03-29 | 2016-05-17 | Amazon Technologies, Inc. | Managing committed processing rates for shared resources |
US8738745B1 (en) * | 2010-03-31 | 2014-05-27 | Amazon Technologies, Inc. | Managing use of intermediate destination hardware devices for provided computer networks |
US9116731B2 (en) | 2010-04-07 | 2015-08-25 | Accenture Global Services Limited | Cloud reference model framework |
US8606897B2 (en) | 2010-05-28 | 2013-12-10 | Red Hat, Inc. | Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network |
US8667171B2 (en) | 2010-05-28 | 2014-03-04 | Microsoft Corporation | Virtual data center allocation with bandwidth guarantees |
CN102271145A (zh) | 2010-06-04 | 2011-12-07 | 国云科技股份有限公司 | 一种虚拟计算机集群及其实施方法 |
US8656387B2 (en) | 2010-06-17 | 2014-02-18 | Gridcentric Inc. | Method and system for workload distributing and processing across a network of replicated virtual machines |
US9329947B2 (en) | 2010-06-22 | 2016-05-03 | Red Hat Israel, Ltd. | Resuming a paused virtual machine without restarting the virtual machine |
US8887163B2 (en) | 2010-06-25 | 2014-11-11 | Ebay Inc. | Task scheduling based on dependencies and resources |
US8719415B1 (en) * | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US8739170B1 (en) * | 2010-06-30 | 2014-05-27 | Amazon Technologies, Inc. | Managing requests for computing capacity |
US20120011077A1 (en) | 2010-07-12 | 2012-01-12 | Bhagat Bhavesh C | Cloud Computing Governance, Cyber Security, Risk, and Compliance Business Rules System and Method |
CN101938416B (zh) | 2010-09-01 | 2012-08-08 | 华南理工大学 | 一种基于动态重配置虚拟资源的云计算资源调度方法 |
US8533103B1 (en) | 2010-09-14 | 2013-09-10 | Amazon Technologies, Inc. | Maintaining latency guarantees for shared resources |
CN102307208B (zh) | 2010-09-25 | 2014-08-06 | 广东电子工业研究院有限公司 | 基于云计算的虚拟机运行控制装置及其运行控制方法 |
JP2014038364A (ja) * | 2010-10-27 | 2014-02-27 | Hitachi Ltd | リソース管理サーバ、リソース管理方法及びリソース管理プログラム |
US9237194B2 (en) * | 2010-11-05 | 2016-01-12 | Verizon Patent And Licensing Inc. | Load balancer and firewall self-provisioning system |
JP5845571B2 (ja) * | 2010-11-30 | 2016-01-20 | 富士通株式会社 | 計算システムおよび計算システム管理方法 |
US20120159234A1 (en) | 2010-12-15 | 2012-06-21 | Microsoft Corporation | Providing resilient services |
US10678602B2 (en) | 2011-02-09 | 2020-06-09 | Cisco Technology, Inc. | Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures |
US8639595B1 (en) * | 2011-03-10 | 2014-01-28 | Amazon Technologies, Inc. | Statistically cost-following accounting model for dedicated resources |
US8806015B2 (en) | 2011-05-04 | 2014-08-12 | International Business Machines Corporation | Workload-aware placement in private heterogeneous clouds |
US20120311575A1 (en) * | 2011-06-02 | 2012-12-06 | Fujitsu Limited | System and method for enforcing policies for virtual machines |
US9015708B2 (en) | 2011-07-28 | 2015-04-21 | International Business Machines Corporation | System for improving the performance of high performance computing applications on cloud using integrated load balancing |
US20130061220A1 (en) | 2011-09-06 | 2013-03-07 | Xerox Corporation | Method for on-demand inter-cloud load provisioning for transient bursts of computing needs |
US9038063B2 (en) | 2011-09-07 | 2015-05-19 | International Business Machines Corporation | Determining virtual machine image pattern distributions in a networked computing environment |
US20130091376A1 (en) * | 2011-10-05 | 2013-04-11 | International Business Machines Corporation | Self-repairing database system |
US8856797B1 (en) * | 2011-10-05 | 2014-10-07 | Amazon Technologies, Inc. | Reactive auto-scaling of capacity |
US9229749B2 (en) | 2011-10-31 | 2016-01-05 | Cisco Technology, Inc. | Compute and storage provisioning in a cloud environment |
US8966085B2 (en) * | 2012-01-04 | 2015-02-24 | International Business Machines Corporation | Policy-based scaling of computing resources in a networked computing environment |
-
2012
- 2012-01-09 US US13/346,348 patent/US9372735B2/en active Active
- 2012-12-28 JP JP2014552208A patent/JP6165777B2/ja active Active
- 2012-12-28 KR KR1020147018950A patent/KR101976234B1/ko active IP Right Grant
- 2012-12-28 EP EP12864816.9A patent/EP2802980A4/en active Pending
- 2012-12-28 WO PCT/US2012/071890 patent/WO2013106204A1/en active Application Filing
- 2012-12-28 CN CN201280066600.7A patent/CN104040485B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065676B1 (en) * | 2007-04-24 | 2011-11-22 | Hewlett-Packard Development Company, L.P. | Automated provisioning of virtual machines for a virtual machine buffer pool and production pool |
CN101883029A (zh) * | 2009-05-05 | 2010-11-10 | 埃森哲环球服务有限公司 | 云中的应用移植方法和系统 |
US20110078303A1 (en) * | 2009-09-30 | 2011-03-31 | Alcatel-Lucent Usa Inc. | Dynamic load balancing and scaling of allocated cloud resources in an enterprise network |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760209A (zh) * | 2014-12-16 | 2016-07-13 | 华为技术有限公司 | 移除虚拟机的方法、装置与自动弹性群组 |
CN105760209B (zh) * | 2014-12-16 | 2019-06-21 | 华为技术有限公司 | 移除虚拟机的方法、装置与自动弹性群组 |
CN105068859A (zh) * | 2015-07-29 | 2015-11-18 | 上海谐桐信息技术有限公司 | 一种跨虚拟机的多服务调用方法及系统 |
CN106712998A (zh) * | 2015-11-18 | 2017-05-24 | 中兴通讯股份有限公司 | 一种云平台资源管理方法、装置及系统 |
CN109313572A (zh) * | 2016-05-17 | 2019-02-05 | 亚马逊科技有限公司 | 通用自动缩放 |
CN106412075A (zh) * | 2016-10-14 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种基于云计算的资源配置方法及装置 |
CN110383764A (zh) * | 2016-12-16 | 2019-10-25 | 华为技术有限公司 | 无服务器系统中使用历史数据处理事件的系统和方法 |
CN107402806A (zh) * | 2017-04-20 | 2017-11-28 | 阿里巴巴集团控股有限公司 | 分布式文件架构的任务处理方法和装置 |
CN107402806B (zh) * | 2017-04-20 | 2020-08-18 | 阿里巴巴集团控股有限公司 | 分布式文件架构的任务处理方法和装置 |
CN110442431A (zh) * | 2019-08-12 | 2019-11-12 | 安徽赛福贝特信息技术有限公司 | 一种云计算系统中虚拟机的创建方法 |
CN110958297A (zh) * | 2019-10-29 | 2020-04-03 | 北京邮电大学 | 一种数据迁移方法及系统 |
WO2022100438A1 (en) * | 2020-11-11 | 2022-05-19 | International Business Machines Corporation | Predictive auto-scaler for a hierarchical computing infrastructure |
US11762709B2 (en) | 2020-11-11 | 2023-09-19 | International Business Machines Corporation | Predictive auto-scaler for a hierarchical computing infrastructure |
GB2617712A (en) * | 2020-11-11 | 2023-10-18 | Ibm | Predictive auto-scaler for a hierarchical computing infrastructure |
CN115934299A (zh) * | 2023-02-22 | 2023-04-07 | 智者四海(北京)技术有限公司 | Yarn作业的迁移系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130179895A1 (en) | 2013-07-11 |
JP2015507279A (ja) | 2015-03-05 |
US9372735B2 (en) | 2016-06-21 |
KR20140109940A (ko) | 2014-09-16 |
EP2802980A1 (en) | 2014-11-19 |
JP6165777B2 (ja) | 2017-07-19 |
KR101976234B1 (ko) | 2019-05-07 |
EP2802980A4 (en) | 2016-04-13 |
WO2013106204A1 (en) | 2013-07-18 |
CN104040485B (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104040485A (zh) | Paas分层调度和自动缩放 | |
CN104040486A (zh) | 解耦paas资源、作业和调度 | |
US11922198B2 (en) | Assignment of resources in virtual machine pools | |
JP6254949B2 (ja) | 仮想マシンプールにおけるリソースの価格設定 | |
US9280390B2 (en) | Dynamic scaling of a cluster of computing nodes | |
US20130179894A1 (en) | Platform as a service job scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150727 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150727 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |