CN105324760A - 预配置和预启动计算资源 - Google Patents

预配置和预启动计算资源 Download PDF

Info

Publication number
CN105324760A
CN105324760A CN201480034965.0A CN201480034965A CN105324760A CN 105324760 A CN105324760 A CN 105324760A CN 201480034965 A CN201480034965 A CN 201480034965A CN 105324760 A CN105324760 A CN 105324760A
Authority
CN
China
Prior art keywords
calculated examples
machine image
request
preheating
client
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
Application number
CN201480034965.0A
Other languages
English (en)
Other versions
CN105324760B (zh
Inventor
克里斯托弗·理查德·雅克·德卡得特
阿琼·拉达克里希南
雅各布·约翰尼斯·尼古拉斯·范德莫维
詹姆士·阿尔弗雷德·戈登·格雷费德
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105324760A publication Critical patent/CN105324760A/zh
Application granted granted Critical
Publication of CN105324760B publication Critical patent/CN105324760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/5033Allocation 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 data affinity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本文描述用于预热数据中心中的计算实例的系统、方法和计算机可读介质。与所述数据中心相关联的服务提供商可预期对所述计算实例的需求,并预配置所述数据中心内的计算资源来预启动所述计算实例。由此,当用户请求计算实例时,所述服务提供商可通过将经预热的计算实例分配给所述用户来满足所述请求。

Description

预配置和预启动计算资源
相关申请的交叉参考
本申请要求2013年6月10日提交的美国专利申请第13/914,225号的权益,该案的公开内容以全文引用的方式并入本文中。
背景技术
服务提供商向各种实体提供计算资源,例如公司、大学、政府机构和其它类型的客户。服务提供商所提供的服务允许所述实体具有资源分配灵活性、改进的可缩放性、降低操作成本等等。
服务提供商通常以实例的形式提供计算资源。所述实例有时实施为虚拟机、虚拟机实例等。以实例的形式提供计算资源的能力允许服务提供商动态地缩放可用的计算资源来满足使用所述服务的各种实体的需要和要求。
附图简述
在图式中,参考编号可再用来指示所参考元件之间的对应性。提供图式是为了示出本文所描述的实例实施方案,并且无意限制本公开的范围。
图1说明根据实施方案的数据中心的实例操作环境。
图2说明根据实施方案的数据中心的实例配置。
图3是描绘用于启动实例的实例程序的流程图。
图4是描绘根据实施方案的用于启动实例的另一实例程序的流程图。
图5是描绘根据实施方案的用于确定预期需求的实例程序的流程图。
图6说明根据实施方案的预热实例的数据中心的实例配置。
图7说明根据实施方案的预热实例的数据中心的另一实例配置。
图8是描绘根据实施方案的用于将经预热实例放置在计算资源上的实例程序的流程图。
图9说明用于实施本文所呈现的实施方案中所描述的各种计算装置的实例计算机硬件架构。
具体实施方式
如上文所述,服务提供商通常以计算实例的形式动态地向实体提供计算资源。在大多数情况下,本文可互换地称为客户(即,服务提供商的客户)的实体向服务提供商提供输入,以定义所需的计算实例的类型和配置,以及提供关于客户何时需要所述计算实例的信息。所有此输入信息由服务提供商所操作的服务用来配置和启动计算实例。启动过程通常按需发生,且对客户需要有反应。然而,启动过程不是瞬时的且甚至不是近瞬时的。相反,在请求启动的时间与实例准备好供客户使用的时间之间,客户可经历显而易见的时间延迟。由于所述服务配置其计算资源和启动所述实例,所述客户所经历的时间延迟可大约为数分钟。所述量的时间延迟可影响客户体验。
为了改进客户体验,服务提供商可分析实例请求的历史,并使用所述信息来确定实例的预期需求。此预期需求信息可包括例如服务提供商预期其客户将请求的实例的数目和类型。基于预期需求信息,服务提供商可预配置计算资源,并在经预配置的计算资源上提供计算实例,以减少从客户请求实例时到所述实例可供所述客户使用时所花费的时间。当服务提供商从客户的计算装置接收到启动特定配置的实例的请求时,服务提供商通过从所提供的实例分配一实例来服务所述请求。由于所提供的实例可预配置且预先位于计算资源上,因此所述客户可仅需要等待所述实例的控制传送给所述客户,或等待所述实例被激活(例如,闲置装置恢复或从高速缓存的图像起动)来连接到所述实例。
本文提供关于预配置服务的实例和计算资源的进一步细节。应了解,本文所呈现的标的物可实施为计算机进程、计算机控制的设备、计算系统或制品,例如计算机可读存储介质。虽然本文所描述的标的物是在一或多个计算装置上执行的程序模块的一般上下文中呈现,但所属领域的技术人员将认识到,可结合其它类型的程序模块来执行其它实施方案。一般来说,程序模块包括例程、程序、组件、数据结构以及其它类型的执行特定任务或实施特定抽象数据类型的结构。
所属领域的技术人员还将了解,本文所描述的标的物可在超越本文所描述的配置的其它计算机系统配置上实践或结合其它计算机系统配置来实践,包括多处理器系统、基于微处理器的或可编程消费型电子设备、迷你计算机、大型计算机、手持式计算机、个人数字助理、电子阅读器、蜂窝式电话装置、专用硬件装置、网络家电等。本文所描述的实施方案还可在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理装置执行。在分布式计算环境中,程序模块可位于本地和远程存储器存储装置两者中。
可称为计算节点(computingnode)的计算节点(computenode)可在各种各样的计算环境上实施,例如日用品-硬件计算机、虚拟机、计算群集和计算器具。为了方便,这些计算装置或环境中的任一者可描述为计算节点。
图1说明其中可实施本文所描述的实施方案的合适计算环境的实例。服务提供商可配置所说明的计算环境,来使计算资源虚拟化,并为其客户启动实例。明确地说,图1是示出例示性操作环境100的系统和网络图,操作环境100包括可编程执行服务(“PES”)平台108,其可称为PES108,用于提供对实例的按需存取。PES平台108可在永久或按需基础上提供用于执行应用的计算资源,且可配置为私人网络。这些计算资源可包括各种类型的资源,例如数据处理资源、数据存储资源、数据通信资源等。每一类型的计算资源可为通用的,或可在若干特定配置中可用。举例来说,数据处理资源可作为虚拟机实例可用。所述实例可被配置来执行应用,包括网络服务器、应用服务器、介质服务器、数据库服务器等等。数据存储资源可包括文件存储装置、块存储装置等等。
每一类型或配置的计算资源可以不同大小可用,由许多处理器、大量存储器和/或大存储容量组成的较大资源,以及由较少的较少处理器、较小量的存储器和/或较小存储容量组成的较小资源。举例来说,客户可选择分配若干小处理资源作为网络服务器,和/或一个大处理资源作为数据库服务器。
PES平台108所提供的计算资源可由一个或多个数据中心102A、102B、102C、…、102N实现,所述数据中心在本文可以单数形式称为“数据中心102”或以复数形式称为“多个数据中心102”。数据中心102可为容纳和操作计算机系统以及相关联的组件的设施,且可包括冗余和后备电力、通信、冷却和安全系统。数据中心102可位于同一地理区域中,例如同一设施中,且可使用私人网络,例如高速光纤网络互连,由PES平台108的服务提供商控制和管理。数据中心102还可分布在地理上不同的位置上,且可部分地使用公共网络(例如因特网)来互连。下文关于图2来描述实施本文所公开的概念和技术的数据中心102的一个例示性配置。
PES平台108的客户可经由广域网(“WAN”)106来存取数据中心102所提供的计算资源。尽管图1中说明WAN,但应了解,可利用局域网(“LAN”)、因特网,或此项技术中已知的将数据中心102连接到远程客户和其它用户的任何其它连网拓扑和网络连接。还应了解,也可利用此类网络的组合。
PES平台108的客户可利用计算系统104来存取数据中心102所提供的计算资源。客户计算系统104(其也可称为“客户节点”、“用户节点”等)可为能够接入PES平台108的计算机,例如服务器计算机、桌上型或膝上型个人计算机、平板计算机、无线电话、PDA、电子阅读器、游戏控制台、机顶盒或任何其它计算装置。
如下文更详细地描述,可利用客户计算系统104来配置PES平台108所提供的计算资源的方面。在这点上,PES平台108可提供网络接口,通过所述网络接口,可借助于使用在客户计算系统104上执行的网络浏览器应用来配置其操作的方面。或者,在客户计算系统104上执行的独立应用可接入PES平台108所暴露的应用编程接口(“API”),用于执行配置操作。还可利用用于配置PES平台108的操作的其它机制,包括在PES平台108上启动新的虚拟机实例。
根据本文所公开的实施方案,可响应于需求来按比例缩放PES平台108所提供的所购买计算资源的能力。在这点上,按比例缩放是指例示的过程,其在本文也可称为“启动”或“创建”或“终止”,其在本文也可称为“响应于需求来“解除按比例缩放”计算资源的实例。
自动按比例缩放可为响应于对资源的需求的增加或减弱来按比例缩放计算资源的一种机制。自动按比例缩放可允许PES平台108的客户根据客户所定义的条件来按比例缩放其所购买的计算资源。举例来说,可定义用于响应于指定条件的发生(例如需求中的尖峰)以特定方式来按比例放大容量的规则。类似地,还可定义响应于其它条件的发生(例如需求的减弱)以特定方式按比例缩小容量的规则。当客户手动启动实例时,或当PES平台108中的自动按比例缩放组件所启动的实例时,可利用本文所公开的用于启动虚拟机实例的机制。
PES平台108还可配置有部署组件,以辅助客户部署资源的新实例。部署组件可从客户接收配置,其可包括描述应如何配置新实例的数据。举例来说,所述配置可指定应安装在新实例中的一个或多个应用或软件组件,提供将在实例中执行的脚本和/或其它类型的代码,提供应如何准备应用高速缓冲存储器的高速缓冲存储器预热逻辑。部署组件利用客户提供的配置和高速缓冲存储器预热逻辑来启动、配置和准备好计算资源的新实例。
图2是说明实施PES平台108的数据中心102的一种配置的计算系统图。图2中所示的实例数据中心102可包括若干服务器计算机202A、202B、202C、202D、…、202N,其在本文中以单数形式称为“服务器计算机202”或以复数形式称为“多个服务器计算机202”,其用于为托管实例和执行应用提供计算资源。服务器计算机202可为经适当地配置以用于提供上文所描述的计算资源的标准塔安装或支架安装服务器计算机。举例来说,在一个实施方式中,服务器计算机202可被配置来提供计算资源的实例206A、…、206D、…、206G、…、206J、…、206N,其在本文可以单数形式称为“实例206”或以复数形式称为“多个实例206”。
实例206可为虚拟机实例。如此项技术中已知,虚拟机实例是如物理机器等执行程序的机器(即,计算机)的软件实施方式的实例。服务器可使用机器(例如,操作系统、应用服务器和应用)的图像来启动虚拟机实例。此图像也可称为机器图像,其为含有软件配置和起动所述实例所必需的所有信息的模板。在虚拟机实例的例子中,每一服务器202可被配置来执行能够执行所述实例的实例管理器208。实例管理器208可例如为被配置来实现多个实例206在单个服务器202上的执行的管理程序或另一类型的程序。如上文所论述,实例206中的每一者可被配置来执行应用的全部或一部分。
应了解,尽管本文所公开的实施方案主要在虚拟机实例的上下文中描述,但可结合本文所公开的概念和技术来利用其它类型的实例。举例来说,本文所公开的技术可结合存储资源的实例、数据通信资源的实例,且结合其它类型的资源利用,所述资源可全部称为计算实例。本文所公开的实施方案也可直接在计算机系统上执行应用的全部或一部分,而不利用虚拟机实例。
图2中所示的数据中心102还可包括一个或多个服务器计算机204(其可以单数形式称为“服务器计算机204”或以复数形式称为“多个服务器计算机204”),其保留以用于执行用于管理数据中心102、服务器计算机202和实例206的操作的软件组件。明确地说,服务器计算机204可执行管理组件210。如上文所论述,PES平台108的客户可利用客户计算系统104来存取管理组件210,以配置客户所购买的PES平台108和实例206的操作的各种方面。举例来说,客户可购买实例,并定义实例的配置和对所述配置作出改变。所述实例的配置可包括指定数据中心102用来启动计算实例的机器图像的操作系统、应用服务器、应用等的参数。客户还可提供启动实例来管理组件210的请求,且可指定关于如何响应于需求来按比例缩放所购买的实例的设定。
如上文还简要描述,自动按比例缩放组件212可基于PES平台108的客户所定义的规则来按比例缩放实例206。举例来说,自动按比例缩放组件212可允许客户指定:按比例放大规则,以用于确定应何时例示新的实例;以及按比例缩小规则,以用于确定应何时终止现有的实例。
自动按比例缩放组件212可在单个服务器计算机204上执行,或跨PES平台108中的多个服务器计算机202并行地执行。另外,自动按比例缩放组件212可由在PES平台108中的不同服务器计算机202或其它计算装置上执行的若干子组件组成。自动按比例缩放组件212可实施为软件、硬件或两者的任何组合。自动按比例缩放组件212可例如经由内部管理网络来监视PES平台108中的可用计算资源。
如上文简要论述,数据中心102还可配置有部署组件214,以辅助客户部署计算资源的新实例206。部署组件214可从客户接收包括描述应如何配置新实例206的数据的配置。举例来说,所述配置可指定应安装在新实例206中的一个或多个应用,提供将执行以用于配置新实例206的脚本和/或其它类型的代码,提供指定应如何准备应用高速缓冲存储器的高速缓冲存储器预热逻辑,以及其它类型的信息。在另一实例中,从客户接收到的所述配置信息可包括机器图像的识别符以及新实例206的类型。
部署组件214可利用客户提供的配置和高速缓冲存储器预热逻辑来配置、准备好和启动新实例206。所述配置、高速缓冲存储器预热逻辑和其它信息可由客户使用管理组件210或通过将此信息直接提供给部署组件214来指定。还可利用其它机制来配置部署组件214的操作。举例来说,部署组件214可基于机器图像的识别符且基于被配置来托管新实例206的类型的实例的计算资源(例如,服务器计算机202)来启动新实例206。
数据中心102还可执行负载平衡器组件216来跨服务器计算机分配所述实例的执行。负载平衡器组件216可为部署组件214、管理组件210内的应用,或可在不同于服务器计算机204的服务器上执行。在一例子中,负载平衡器组件216接收来自部署组件214的指令,确定数据中心102内可用的资源,并在所述可用资源上分配所述实例,使得无资源被过度使用或未使用,且因此保护所述实例抵御数据中心102内的单个失效点。
在图2中所示的实例数据中心102中,可利用适当的LAN218来互连件服务器计算机202与服务器计算机204。LAN218也可连接到图1中说明的WAN106。应了解,图1和2中所说明的网络拓扑已高度简化,且可利用更多的网络、网络连接和连网装置来互连本文所公开的各种计算系统。还可利用适当的负载平衡装置或软件模块来平衡数据中心102中的每一者之间、每一数据中心102中的服务器计算机202中的每一者之间以及PES平台108的每一客户所购买的实例206之间的负载。所属领域的技术人员应明白这些网络拓扑和装置。
应了解,图2中所描述的数据中心102仅为例示性的,且可利用其它实施方案。明确地说,本文描述为由管理组件210、自动按比例缩放组件212、部署组件214和负载平衡器组件216执行的功能性可由彼此执行,可由其它组件执行,或可由这些或其它组件的组合执行。另外,这些组件中的每一者可实施为在可编程执行服务PES108内部的服务。另外,应了解,此功能性可在软件、硬件或软件和硬件的组合中实施。所属领域的技术人员应明白其它实施方案。
图3和4中描述用于启动图2的数据中心102中的实例的例子程序。为了阐释的清楚性,相对于与单个客户相关联的单个实例来描述图3和4。然而,所述程序还可结合可与多个客户相关联的多个实例使用。另外,与单个客户相关联的实例可在单个数据中心内或跨多个数据中心启动。此外,数据中心102和数据中心102的例子组件在图3和4中描述为执行例子程序。然而,可使用且所属领域的技术人员应明白其它组件或组件的组合。
一般来说,响应于从客户计算系统104接收到启动实例的请求,数据中心102(即,如下文所述的数据中心中的计算组件)确定是否可使用经预热实例来满足所述请求。如果可以,那么数据中心执行图4中所描述的程序;否则,数据中心执行图3中所描述的程序。如图3中所示,当无法从经预热实例启动所述实例时,数据中心102响应于所述请求配置其计算资源,启动所述实例,并提供信息以允许客户计算系统建立到所述实例的连接。首先呈现图3来说明准备实例以供在计算装置上操作的一般端到端过程。此后,呈现与图3对比的图4,以示范在经预热实例可用时实现的启动时间的减少。
参看图3,操作302说明数据中心102接收来自客户计算系统的启动所述实例的请求。所述请求可呈对网络API的调用的形式,且通常包括识别客户的属性和所需实例的属性的信息。举例来说,管理组件210可接收客户的用户名、口令和证书,以及定义所述实例的一些配置属性的输入参数。所述输入参数可例如指定应从中启动实例的机器图像的识别符、计算实例类型(例如,指示将分配给所述实例的硬件资源的量的类型识别符,例如处理器的数目、存储器的量、存储量、网络带宽的量等)、将应用的网络安全性、将与所述实例相关联的存储容量,以及其它信息。所述参数还可例如指定应安装在所述实例中的一个或多个应用或软件组件、将在所述实例中执行的脚本和/或其它类型的代码、指定应如何准备应用高速缓冲存储器的高速缓冲存储器预热逻辑,以及其它类型的信息。
在一实施方案中,管理组件210响应于提供客户可从中选择的各种实例配置的列表,从客户计算系统接收所述请求。所述客户选择可包括服务提供商所提供的机器图像以及计算实例类型。另外,管理组件210允许客户选择呈例如控制可到达所述实例的网络业务量的防火墙规则的形式的默认或定制网络安全性。客户还可在请求中指定的信息类型的其它实例包括在其中启动所述实例的区、位于所述区内的区域、所述实例的名称、将启动的实例的数目等等。
操作304说明数据中心102使所述请求生效。在一例子中,管理组件210基于API请求中的数字签名、用户名和口令等来验证客户,基于所述请求中接收到的客户的证书来确定客户是否具有启动所述实例的许可。如果请求是有效的,那么管理组件210请求部署组件214起始所述实例的启动(图3的操作308到318中所示),或满足来自经预热实例的请求(图4的操作中所示)。
操作306说明数据中心102确定使用经预热实例无法满足所述请求。此操作可包括部署组件214确定经预热实例中无一者具有与所需实例的属性匹配的属性。在此情况下,数据中心102的部署组件214和其它组件继续为客户启动新的实例,如在操作308到318中所描述。
操作308说明数据中心102将实例识别返回到客户计算系统。此操作可包括部署组件214进一步使请求生效,以确定例如数据中心处是否有充足的容量可用来托管所述实例。此确定考虑来自所述请求的各种参数,例如实例类型、机器图像、所述实例是否可连同其它客户的实例一起在服务器计算机202上托管,以及所述客户的包括其使用模式的简档。如果生效,那么部署组件214产生实例识别,将实例状态更新为待决,并将信息返回到管理组件210。反过来,管理组件将实例识别发射到客户计算系统,所述实例识别具有所述实例的状态的指示以及其它实例相关信息。
操作302到308可同步执行,并在几秒或更短的时间内完成。在比较时,用于启动所述实例的其余操作通常消耗较大量的时间,例如大约数分钟,且异步执行。
操作310说明数据中心102配置各种计算资源来启动所述实例。在此操作中,部署组件214可使用请求中接收到的信息来设置各种计算资源,以允许服务器计算机202通过起动机器图像来启动所述实例。举例来说,部署组件214确定含有机器图像的根存储装置,将块等级持久存储分配给所述实例,将因特网协议(IP)住址指派给所述实例,设置网络接口,产生路径选择信息,配置防火墙,并将其它物理和虚拟资源附接到与所述实例相关联的服务器计算机。
操作312说明数据中心102为所述实例确定主机。此操作涉及部署组件214确定其中将启动所述实例的特定区域,且负载平衡器组件216确定所述实例将放置的区域内的特定服务器计算机。区域是被配置来最小化来自一个区域的失效对另一区域的影响且允许部署组件214和负载平衡器组件216跨多个服务器计算机和区域分配实例的计算资源的集合。实例的此分配可经受与例如计算资源可用性、故障容差要求、用于托管所述实例的资金成本等相关联且可限制所述实例跨多个服务器计算机和区域的放置若干约束。
可使用各种参数来优化当将所述实例放置在服务器计算机上时可满足的约束的数目。这些参数可与所述实例的配置、服务器计算机的配置、商业考虑、故障公差要求等等有关。举例来说,负载平衡器组件216考虑特定服务器计算机,且确定其是否可支持所述实例的架构和网络要求。负载平衡器组件还确定当前在特定服务器计算机上运行的现有实例,且核实不同客户的新实例可由同一服务器计算机托管。如果特定服务器计算机满足这些要求,那么负载平衡器将所述实例指派给所述服务器计算机。
在另一实例中,所述实例和服务器计算机上所托管的现有实例具有与卖主相关联的相同操作系统。如果卖主收取并不取决于在服务器计算机上托管且执行其操作系统的实例的数目的许可费用,那么负载平衡器组件将所述实例指派给此服务器计算机,从而降低启动所述实例的资金费用。
在另一实例中,负载平衡器组件216将所述实例指派给服务器计算机,以满足服务器计算机处的实例的目标密度。负载平衡器还考虑服务器计算机上是否正同时启动大量其它实例,且如果是,那么选择另一服务器计算机来避免形成热点。当选择其它服务器计算机时,负载平衡器考虑托管与所述客户相关联的其它实例的服务器计算机,且如果可能,那么将所述实例指派给当前并不托管任何实例或托管最小数目的这些实例的服务器计算机。此选择减少了服务器计算机中的任一者的失效对客户的影响。所属领域的技术人员将认识到,这些和其它参数可组合并用于选择服务器计算机来启动所述实例。
一旦选定服务器计算机,负载平衡器组件216就将关于所述实例的配置的信息传递到服务器计算机,并将关于服务器计算机的信息传递到部署组件214。操作314说明调用主机来启动所述实例的数据中心102。举例来说,部署组件214将命令发送到服务器计算机,以起始所述实例的启动。
操作316说明数据中心102启动主机上的实例。在此操作中,在服务器计算机上执行的实例管理器208配置其中启动所述实例的分区。举例来说,实例管理器从根存储装置存取、高速缓存、解密和解压缩机器图像。实例管理器还根据所述实例的配置参数来剖析机器图像中的配置文件以及所述配置文件。接下来,实例管理器开始所述实例,其又安装并读取经修改的机器图像,查找主起动记录并起动所述操作系统。实例管理器还将存储容量、装置接口和网络接口附接到所述实例。当起动过程完成时,所述实例的应用和其它组件准备好执行,且实例管理器向管理组件210发射实例准备好供客户使用的指示。
操作318说明数据中心102通过向客户计算系统提供信息以允许其建立到所述实例的连接,来通知客户所述实例已准备好。举例来说,管理组件210将所述实例的状态更新为运行状态,并通过应用例如使用客户的证书的安全外壳(SSH)协议,来促进客户计算系统到所述实例的安全连接。所述管理组件还更新客户的接口来反映所述实例的运行状态,并指令所述客户在其计算系统上启动SSH客户端。
如上文所述,当数据中心102确定可从经预热实例满足所述请求时,数据中心102执行图4的程序。一般来说,数据中心102(即,如下文所述的数据中心中的计算组件)在接收到请求之前,基于对实例的预期需求来预配置和预启动所述实例。此程序允许数据中心102最小化从接收到对实例的请求时到客户可使用所述实例时的时间。
操作402说明数据中心102基于对实例的预期需求来预热实例。此操作可涉及确定预期需求,以及相应地预热实例。用于确定预期需求的例子程序在图5中进一步描述,且包括例如确定预热实例的目标,以及需要预热的实例的配置参数。此程序可实施为托管在数据中心102处的服务,或实施为在数据中心102外托管且提供给数据中心102的计算组件的服务。
一旦确定预期需求,数据中心102的计算组件就基于对应的配置参数来预热这些实例。一般来说,预热所述实例涉及在从客户接收对这些实例的请求之前,预配置和预启动可用计算资源上的实例。预配置可涉及类似于图3的操作310到316的操作,使得计算组件在接收请求之前,基于对应的配置参数来预配置实例的机器图像以及各种计算资源。举例来说,所述预配置包括确定将托管所述实例的区、区域和服务器计算机,附接存储机器图像的根存储装置,将存储容量分配给所述实例,设置网络安全性和接口等等。另外或代替此例子,计算组件可实施图8的例子程序,来通过考虑与将经预热实例放置在各种计算资源上相关联的约束来优化预配置。
预启动操作包括存取、高速缓存、解密和解压缩机器图像,以及修改其配置文件。图7中进一步描述此实施方式的例子。在图6中所描述的另一实例中,预启动所述实例还涉及启动所述实例和使所述实例闲置,以及将闲置的实例交换到根存储装置。
计算组件还可使用其它技术来预热所述实例。在一例子中,计算组件启动和暂停所述实例,且接着响应于来自客户的请求而重启若干实例。在另一实例中,计算组件启动所述实例,产生所述实例的快照,将所述快照存储在存储容量上,停止所述实例,且接着响应于请求,从对应快照重新启动若干实例。
一旦实例经预热,计算组件就可管理所述实例持续某一时间段。举例来说,计算组件可基于对所述实例的配置参数的更新,来在此时间段中重新配置所述经预热实例。如果计算组件在所述时间段内,并未响应于来自客户的请求而启动经预热实例,那么其去除所述经预热实例,并释放与之相关联的计算资源。但如果接收到所述请求,那么计算组件接下来如本文所描述启动所述实例。
操作404说明数据中心102(例如,管理组件210)接收对实例的客户请求,并使其生效。此操作可类似于图3的操作302、304和308,但在时间上压缩。更明确地说,所接收到的请求包括与所述实例相关联的客户信息和配置参数。数据中心(例如,管理组件210)验证所述客户,并基于客户信息来确定他或她是否具有运行所述实例的许可。如果经验证并授权,那么数据中心将所述实例的状态更新为待决,并将状态的指示以及所述实例的识别连同其它信息返回给客户。数据中心还将所述请求中的配置参数与经预热实例的参数进行比较,从可服务所述请求的经预热实例确定经预热实例,并向与所述经预热实例相关联的服务器计算机发送请求来完成经预热实例的启动。
操作406说明数据中心102(例如,部署组件214)从所述经预热实例启动所请求的实例。一般来说,操作406可包括经预热实例的激活,使得所述实例的启动完成,且所述实例处于运行状态。此操作还可包括通过例如将所述请求中接收到的网络安全性和证书应用于所述实例,来使所述实例与所述客户相关联。此操作的实施方式取决于操作402的实施方式。举例来说,如果经预热实例闲置,那么服务器计算机调用闲置的实例来执行。类似地,如果经预热实例是经预配置的且准备好起动,那么服务器计算机起动机器图像的操作系统。同样地,如果实例被挂起,那么服务器计算机恢复所述实例,或如果服务器计算机已产生了快照并停止了所述实例,那么服务器计算机从所述快照重启所述实例。
操作408说明数据中心102(例如,管理组件210)通过向客户计算系统提供信息以允许其建立到所述实例的连接,来通知客户所述实例已准备好。此操作可类似于图3的操作318。更明确地说,数据中心102(例如,管理组件210)将实例的状态更新为运行,并使用客户的证书来向客户计算系统提供信息,以允许其建立到所述实例的安全连接。
当请求实例启动时,客户可从较大的可用和可组合配置参数库中为所述实例选择配置。举例来说,客户具有来自较大数目的机器图像的机器图像的选择、来自较大数目的计算实例的实例类型的选择,以及其它实例配置参数的选择,如上文所论述。另外,可根据客户的特定需要来定制每一机器图像和实例。因为数据中心102可被配置来服务大量客户,这些客户可请求的实例的数目和配置可至少基于可用配置选择呈指数增长。因此,基于可能请求的每一配置选择来预热实例可能是不可行的。代替的是,服务可被配置来确定实例的预期需求,确定预期可用的计算资源,用预期计算资源可用性来平衡预期需求,并相应地预热所述实例。
此服务可托管在数据中心102处或数据中心102之外的计算节点(例如,服务器、不同数据中心处的计算组件、第三方计算资源等)处。举例来说,所述服务可实施为服务器计算机204上所托管的独立应用,或实施为与数据中心的计算组件(例如管理组件210或部署组件214)集成的应用。图6和7中将独立应用的例子示出为预热组件618。在替代例子中,服务可配置于计算节点上,使得所述服务与数据中心102的计算组件介接,接收来自所述计算组件的必要信息(图5中进一步描述),使用接收到的信息来确定预期需求,并将关于所述预期需求的信息返回到计算组件。
转到图5,该图说明用于确定预期需求的例子程序。为了阐释的清楚性,所述用于确定预期需求的服务在本文称为预热组件,其可配置为数据中心102内或之外的应用,如本文在上文所描述。操作502说明预热组件,其考虑表示对实例的请求历史的数据集,且分析所述数据集来确定对实例的预期请求。所考虑的数据集可包括与所请求的和/或所启动的实例相关联的历史数据,以及指示当前托管的实例的数据。预热组件可使用例如所请求的位置、请求客户、请求时间等因素的组合来选择所述数据集。举例来说,预热组件可考虑对特殊位置例如,区、可用性区域等)内的实例的请求、某些客户(例如,特定客户、若干客户或所有其客户)对实例的请求,或某一时间周期(例如,天、周、月且甚至年)内对实例的请求,取决于分析需要多广泛。
接下来,预热组件可通过使所考虑的数据集经历数学模型来分析所述数据集。举例来说,预热组件可基于机器图像和实例类型来将来自所述数据集的数据分类成若干组,以获得每一组的计数。所述组中的每一者可表示一对机器图像和实例类型。预热组件可标绘随着时间的过去,每一组的计数,并使用例如外推过程来确定适合所标绘曲线的数学等式。此等式可估计每一组的预期需求,且可通过考虑与每一组相关联的额外数据来随时间过去而连续地细化。由此,对于特定的一对机器图像和实例类型,预热组件可将预期需求表达为时间的函数(例如,在一周的第一天预热对应于特定实例类型和机器图像的一千个实例,在这周的第二天预热两千个这些实例,在这周的第三天预热五百个这些实例,等等)。
预热组件还可基于实例类型或机器图像或基于所述实例的其它配置参数来应用类似分析。举例来说,当配置数据中心102,使得特定类型的实例可仅在特定计算资源上托管时,预热组件可确定按实例类型估计预期需求的数学等式。这些等式可用来估计对可支持实例类型的计算资源的预期需求。由此,在此例子中,预热组件可估计预热所述实例所需的计算容量。
操作的504说明预热组件为预热所述实例设定目标。在已估计对所述实例的预期需求的情况下,且在一些情形中,在已估计对计算资源的预期需求的情况下,预热组件可基于此估计为预热计算资源上的实例设定目标。此目标可包括所述实例的配置参数(例如,实例类型、机器图像的识别符等)、实例的总数、每一实例类型的数目、预期将在其内请求所述实例的时间段、应在其内预热这些实例的区和区域,等等。举例来说,对请求历史的分析可指示在长度为一周的时间周期内,在十万个所请求的实例之中,一万个是使用FEDORA操作系统并运行加利福尼亚的特定数据中心内的32位架构上的APACHE网络服务器的实例。基于此例子分析,预热组件预期客户在每周基础上,请求在加利福尼亚的特定数据中心内启动这些FEDORA/APACHE/32位架构实例中的一万个。由此,预热组件旨在预热特定数据中心中的这些实例中的一万个。
然而,当基于可请求的每一配置选择(例如,实例类型和机器图像的组合)来预热实例可能不可行时,预热组件可通过将各种因素应用于预期需求,来进一步修正与各种配置选择相关联的目标。这些各种因素可包括可由预热组件用来确保预热的目标实例可由数据中心102的资源支持的计算资源可用性和约束的统计因素和考虑的组合。
操作506说明预热组件基于应用于预期需求的各种统计因素来细化所述目标。在一实施方案中,预热组件可通过将平均值、峰值、谷值、阈值和标准偏差中的任一者或组合应用于所分析的与预期需求相关联的数据集来修正所述目标。继续先前的例子来说明操作506,如果预热组件确定在长度为一周的时间周期内,一天平均请求FEDORA/APACHE/32位架构实例约一千五百次,那么预热组件可将所述平均数字设定为每日基础上特定机器图像的目标。类似地,如果预热组件确定在长度为一周的时间周期内,最大数目的具有所述特定i配置的实例在一周的某一天(例如,星期三)启动,且最小数目的所述相同实例在另一天(例如,星期五)启动,那么预热组件可将所述最大和最小数目分别设定为特定实例类型在每一周的星期三和星期五的目标。并且,如果预热组件确定在长度为一周的时间周期内,仅较小百分比(例如,百分之0.1)的请求与另一实例配置相关联,那么当初始目标下降为低于预定义阈值(例如,需要预热实例的最流行配置的上部百分之十的阈值)时,预热组件可将其预热此配置类型的实例的目标从百分之一(例如,一百个实例)修正为零。
操作508说明预热组件基于数据中心102的计算资源的可用性和约束来细化目标。预热组件可进一步修正所述目标,来用其计算资源的预期可用性来平衡对实例和/或计算资源的预期需求。为了确定预期可用的计算资源,预热组件还可如上文将类似分析应用于其资源的历史使用。举例来说,预热组件可确定在长度为一周的时间周期内,加利福尼亚的特定数据中心平均以百分之八十的容量运行。因此,预热组件可预期在每周基础上在加利福尼亚的所述数据中心处具有百分之二十的可用容量,且可为经预热实例保留此可用容量。为了说明,如果百分之一的容量表示托管一百个实例的能力,那么加利福尼亚的所述数据中心处的百分之二十的可用容量相当于每周基础上两千个实例。因此,预热组件可将其目标从预热一万个FEDORA/APACHE/32位架构实例修正为两千个所述实例。
在另一实施方案中,预热组件还可分析可影响资源可用性且可基于此分析来更新保留的容量的任何计划的断电或维护。举例来说,如果预热组件确定加利福尼亚的特定数据中心由于计划的维护在下周将下降到百分之九十的容量,那么预热组件可决定将保留容量从百分之二十约束到百分之十,使得不超过总的可用计算容量。
接下来,预热组件可也通过用可限制所述实例在计算资源上的放置的约束来平衡对实例和/或计算资源的预期需求,来进一步细化其目标。图8中描述此平衡,且可经实施来确保不超过数据中心处的可用容量,且支持经预热实例跨多个计算资源和数据中心的平衡分布。所属领域的技术人员将认识到,这些和其它类型的分析可组合,且用来量化预期需求,并细化预热实例的目标。
转向图6,该图说明数据中心102的例子配置,其中经预热实例包括可用于执行图4的程序的闲置计算实例。在从客户计算系统接收到对实例的请求之前,数据中心102的各种计算资源被配置来从机器图像620预热实例650。举例来说,服务器计算机204执行预热组件(图6中示出为预热组件618)来确定经预热实例的配置参数,且执行管理组件210、部署组件214和负载平衡器组件216来将服务器计算机202选择为经预热实例650的主机,并使含有机器图像、存储容量640、网络接口和装置以及其它资源的根存储装置630与所述经预热实例相关联。
尽管图6将预热组件618说明为服务器计算机204上所托管的独立应用,但此预热组件可在数据中心102之外的计算节点上托管,使得经预热实例的配置参数以及与预期需求相关联的信息作为服务被提供到数据中心的计算组件(例如,管理组件210、部署组件214、负载平衡器组件216),如本文在上文所述。同样地,在另一例子中,预热组件618可托管在数据中心102内的计算机服务器上,并与服务器计算机204介接,使得预热组件618将与经预热实例相关联的信息提供到服务器计算机204所执行的计算组件。
为了预启动所述实例,实例管理器208存取机器图像620,修改其配置文件626,并从经修改的机器图像起动实例650。此时,启动实例650,且实例管理器208将虚拟存储器分配给其客操作系统622。此虚拟存储器通常映射到服务器计算机202的物理存储器,例如其RAM。并且此时,实例650不连接到客户计算系统,且并不执行应用624。因此,在从客户计算系统接收到请求之前,实例650处于闲置状态。
当实例管理器检测到实例闲置时,其可通过将此物理存储器交换到磁盘,来将相关联的物理存储器释放给在服务器计算机上运行的其它实例举例来说,实例管理器将相关联物理存储器的内容存储到根存储装置632上的交换文件632,并更新物理到虚拟存储器映射。
所述实例保持闲置,直到数据中心102接收到来自客户计算系统的请求为止。随后,管理组件210验证所述客户,并确定他或她是否具有使用所述实例的许可。如果具有,那么部署组件214确定可通过使用实例650来满足所述请求。接下来,部署组件214指令负载平衡器组件216启动实例650。负载平衡器组件又调用实例管理器208来激活实例。
当实例管理器208从负载平衡器接收到激活实例650的指令时,实例管理器将交换文件加载到所分配的物理存储器,更新物质和虚拟存储器之间的映射,且允许所述实例借助于所映射的虚拟存储器来使用物理存储器。此时,所述实例被视为启动,且准备好连接到客户计算系统。
图7说明用以在从客户计算系统接收到对所述实例的请求之前预热实例的数据中心102的另一例子配置。在图7的配置中,数据中心的各种计算组件(例如,管理组件210、部署组件214、负载平衡器组件216和预热组件618)预配置服务器计算机202上的实例750,但不起动实例750,直到接收到请求为止。在例子实施方案中,预热组件618可指令并致使实例管理器208存取、高速缓存、解密和解压缩机器图像620,并在接收到请求之前,基于与经预热实例750相关联的各种参数来剖析和修改配置文件626。这些参数包括例如经预热实例的配置参数、服务器计算机202的硬件和系统配置、附加存储容量的寻址、网络接口等等。图7中将经修改且高速缓存的机器图像示出为机器图像760。
一旦接收到对所述实例的请求,管理组件210就验证并授权客户启动所述实例。接下来,部署组件214确定可从经预热实例750满足所述请求,且指令负载平衡器组件216完成经预热实例的启动。负载平衡器组件又调用服务器计算机202来激活经预热实例。服务器计算机的实例管理器208安装并读取经预配置的机器图像760,并起动其操作系统。一旦起动完成,就将所述实例视为启动,且可连接到客户计算系统。
尽管上文在单个实例的上下文中描述了图4的操作404到408和图6和7的系统,但其也可适用于较大数目的实例,大约数百和数千以及以上。并且,除基于预期需求为预热实例设定目标之外,各种计算组件(例如,预热组件618、部署组件214)可通过考虑与将经预热实例放置在服务器计算机上相关联的约束,来将所述经预热实例放置在特定服务器计算机上。
图8是此程序的例子,且经实施来优化计算资源和资金成本的使用。为了阐释的清楚性,将预热组件618描述为执行图8的例子程序。然而,可使用且所属领域的技术人员应明白其它组件或数据中心102的组件的组合。
操作802说明预热组件618确定指示各种服务器计算机处的可用容量的密度参数。预热组件618使用这些参数来定密度的目标,使得服务器计算机得以高效使用(例如,定高容量使用的目标),且使得服务器计算机内以及服务器计算机上的失效的影响得以减少(例如,特定客户的经预热实例应跨多个服务器计算机分布)。
操作804说明预热组件618确定指示在服务器计算机处同时预热的实例的数目的同时发生参数。预热组件618使用这些参数来避免形成与在单个服务器计算机上在较短时间周期内预热较大数目的实例相关联的热点。
操作806说明预热组件618确定经预热实例应可用于所述客户的时间段。此时间段通常取决于例如与可用容量和对应的可用性周期相关联的各种参数。一旦设定时间段,如果可用容量减小或如果数据中心102接收到非预期的新业务量,那么所述时间段就可缩短。同样地,如果可用容量增加或如果计划的业务量意外地减小,那么所述时间段可加长。
操作808说明预热组件618确定指示多个区域和/或区上的资源可用性的区和区域参数。预热组件618使用这些参数来将经预热实例分配给多个区域和区上的服务器计算机,使得所述区或区域中的一者内的失效对客户的影响得以最小化。此操作还可涉及预热组件618确定服务器计算机的兼容性来最好地支持经预热实例。举例来说,经预热实例可能需要在仅一个区中可用的特定连网接口。在此实例中,预热组件618将经预热实例放置在所述区内的服务器计算机上。
操作808说明预热组件618确定指示可支持所述经预热实例的计算资源的兼容性参数。当数据中心102被配置来使得特定类型的实例可仅在特定计算资源上托管时,预热组件618可使用这些参数。由此,在此操作中,预热组件可确定可实际上支持经预热实例的服务器计算机,且可前摄地将所述经预热实例放置在这些服务器计算机上,以确保所述经预热实例的配置与所述计算机服务器的配置之间的满足兼容性。
操作812说明预热组件618确定指示与预热所述实例相关联的资金费用的资金参数。举例来说,特定操作系统的卖主可在每服务器计算机基础上而不是每实例基础上收取许可费用。换句话说,不管有多少执行特定操作系统的实例在服务器计算机上托管,收费保持平稳。在此例子中,预热组件将执行特定操作系统的经预热实例放置在已经托管具有所述特定操作系统的实例的服务器计算机上,以避免招致额外的许可费用收取。
操作814说明预热组件618将经预热实例放置在服务器计算机上。在此操作中,预热组件618组合上述参数来优化所述实例的部署。此优化可包括优先化和最大化与将经预热实例放置在服务器计算机上相关联的约束的数目。一旦选择,预热组件618就起始将经预热实例部署在这些计算机资源上,如图4的程序中所描述。
转向图9,此图示出能够执行上文所述的软件组件的计算机800的例子计算机架构。图9中的计算机架构说明常规服务器计算机、工作站、桌上型计算机、膝上型计算机、平板计算机、网络家电、PDA、电子阅读器、数字蜂窝式电话或其它计算装置,且可用来执行本文所呈现的描述为在数据中心102内、服务器计算机202上、客户计算系统104上或本文所提到的任何其它计算系统上执行的软件组件的任何方面。
计算机900可包括底板或“母板”,其为大量组件或装置可借助于系统总线或其它电通信路径连接到的印刷电路板。一个或多个中央处理单元(“CPU”)904可接合芯片组906来操作。CPU904可为执行计算机900的操作所必需的算术和逻辑运算的标准可编程处理器。
CPU904可通过经由区分和改变这些状态的切换元件的操纵,从一个离散物理状态转变到下一状态来执行必要的操作。切换元件通常可包括维持两个二进制状态中的一个的电子电路(例如触发器),以及基于一个或多个其它切换元件(例如逻辑栅极)的状态的逻辑组合来提供输出状态的电子电路。可组合这些基础切换元件来创建较复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。
芯片组906可提供CPU904与底板上组件和装置中的其余组件和装置之间的接口。芯片组906可提供到用作计算机900中的主存储器的随机存取存储器(“RAM”)908的接口。芯片组906可进一步提供到例如用于存储基础例程的只读存储器(“ROM”)920或非易失性RAM(“NVRAM”)等计算机可读存储介质的接口,所述基础例程可帮助起动计算机900,并在各种组件和装置之间传送信息。根据本文所描述的实施例,ROM920或NVRAM也可存储其它软件组件,例如计算机900的操作所必需的计算机可读指令。
计算机900可在使用通过网络218到远程计算装置和计算机系统的逻辑连接的连网环境中操作。芯片组906可包括用于通过网络接口控制器(“NIC”)922,例如千兆位以太网适配器,来提供网络连接性的功能性。NIC922可能够经由网络218将计算机900连接到其它计算装置。应了解,多个NIC922可存在于计算机900中,其将计算机连接到其它类型的网络和远程计算机系统。
计算机900可连接到大容量存储装置928,其为计算机提供非易失性存储。大容量存储装置928可存储系统程序、应用程序、其它程序模块和数据,其已在本文更详细地描述。大容量存储装置928可通过连接到芯片组906的存储控制器924连接到计算机900。大容量存储装置928可由一个或多个物理存储单元组成。存储控制器924可通过串行附接SCSI(“SAS”)接口、串行高级技术附接“SATA”)接口、光纤信道(“FC”)接口或其它类型的用于物理上连接计算机与物理存储单元并在其之间传送数据的接口与物理存储单元介接。
计算机900可通过变换物理存储单元的物理状态以反映正存储的信息,来将数据存储在大容量存储装置928上。物理状态的特定变换可取决于各种因素,且取决于此描述的不同实施方案。此类因素的例子可包括但不限于用于实施所述物理存储单元的技术,不管大容量存储装置928被表征为主要还是次要存储以及类似称谓。
举例来说,计算机900可通过经由存储控制器924发出更改磁性磁盘驱动器单元内的特定位置的磁特性、光学存储单元中的特定位置的反射或折射特性,或固态存储单元中的特定电容器、晶体管或其它离散组件的电特征的指令,来将信息存储到大容量存储装置928。在不脱离本发明描述的范围和精神的情况下,物理介质的其它变换是可能的,仅为了促进此描述而提供前面的实例。计算机900可进一步通过检测物理存储单元内的一个或多个特定位置的物理状态或特性,从大容量存储装置928读取信息。
除上文所述的大容量存储装置928之外,计算机900可具有对其它计算机可读存储介质的存取权,以存储和检索信息,例如程序模块、数据结构或其它数据。所属领域的技术人员应了解,计算机可读存储介质可为提供非暂时性数据的存储且可由计算机900存取的任何可用介质。
作为实例而非限制,计算机可读存储介质可包括在任何方法或技术中实施的易失性和非易失性、可装卸和非可装卸介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、快闪存储器或其它固态存储器技术、压缩光盘ROM(“CD-ROM”)、数字多功能磁盘(“DVD”)、高清DVD(“HD-DVD”)、BLU-RAY或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁性存储装置,或可用来以非暂时性方式存储所需信息的任何其它介质。
大容量存储装置928可存储用来控制计算机900的操作的操作系统。根据一个实施方案,所述操作系统包括LINUX操作系统的版本。根据另一实施方案,所述操作系统包括来自MICROSOFT公司的WINDOWSSERVER操作系统的版本。根据进一步实施例,操作系统可包括UNIX操作系统的版本。应了解,还可利用其它操作系统。大容量存储装置928可存储计算机900所利用的其它系统或应用程序和数据,例如上文所述的管理组件210和/或其它软件组件。
大容量存储装置928或其它计算机可读存储介质也可编码有计算机可执行指令,其在加载到计算机900中时,将计算机从通用计算系统变换为能够实施本文所描述的实施方案的专用计算机。这些计算机可执行指令通过指定CPU904如何在状态之间转变来变换计算机900,如上文所述。计算机900可具有对存储计算机可执行指令的计算机可读存储介质的存取权,所述计算机可执行指令在由计算机900执行时,执行关于图3和4而描述的程序。
计算机900还可包括用于从若干输入装置(例如键盘、鼠标、触摸垫、触摸屏、电子铁笔或其它类型的输入装置)接收输入并处理所述输入的输入/输出控制器932。类似地,输入/输出控制器932可将输出提供到显示器,例如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪或其它类型的输出装置。将了解,计算机900可不包括图9中所示的所有组件,可包括图9中未明确示出的其它组件,或可利用完全不同于图9中所示架构的架构。
应了解,图中所说明的网络拓扑已大大简化,且可利用更多的网络和连网装置来互连本文所公开的各种计算系统。所属领域的技术人员应明白这些网络拓扑和装置。
还应了解,图中的系统仅为例示性的,且可使用其它实施方案。另外,应了解,本文所公开的功能性可在软件、硬件或软件和硬件的组合中实施。所属领域的技术人员应明白其它实施方式。还应了解,服务器、网关或其它计算装置可包括硬件或软件的任何组合,其可相互作用并执行所描述类型的功能性,包括但不限于桌上型或其它计算机、数据库服务器、网络存储装置和其它网络装置、PDA、平板计算机、手机、无线电话、寻呼机、电子记事本、因特网设备、基于电视机的系统(例如,使用机顶盒和/或个人/数字视频记录仪),以及包括适当通信能力的各种其它消费型产品。另外,在一些实施方案中,所说明的模块所提供的功能性可组合在较少的模块中,或分布在额外模块中。类似地,在一些实施方案中,可不提供所说明模块中的一些的功能性,和/或其它额外功能性可为可用。
之前部分中所描述的操作、过程、方法和算法中的每一者可体现在由一个或多个计算机或计算机处理器所执行的代码模块中,且完全地或部分地由所述代码模块自动化。所述代码模块可存储在任何类型的非暂时性计算机可读介质或计算机存储装置上,例如硬盘驱动器、固态存储器、光盘和/或类似装置。所述过程和算法可部分地或完全在专用电路中实施。所公开的过程和过程步骤的结果可持续地或以其它方式存储在任何类型的非暂时性计算机存储装置中,例如易失性或非易失性存储装置中。
上文所述的各种特征和过程可彼此独立使用,或可以各种方式组合。所有可能的组合和子组合既定属于本发明的范围内。另外,在一些实施方式中,可省略某些方法或过程块。本文所描述的方法和过程也不限于任何特定序列,且与之有关的块或状态可以适当的其它序列执行。举例来说,所描述的块或状态可以与明确公开的次序不同的次序执行,或多个块或状态可组合在单个块或状态中。可以串行、并行或以某一其它方式来执行例子块或状态。可将块或状态可添加到所公开的例子实施方案或从所公开的例子实施方案去除。本文所描述的例子系统和组件可与所描述不同地配置。举例来说,可将元件添加到所公开的例子实施方案,从所公开的例子实施方案去除,或与所公开的例子实施方案相比重新布置。
还将了解,将各种项目说明为在使用时存储在存储器中或存储在存储装置上,且这些项目或其部分可在存储器与其它存储装置之间传送,以用于存储器管理和数据完整性的目的。或者,在其它实施方案中,软件模块和/或系统中的一些或全部可在另一装置上的存储器中执行,且经由计算机间通信与所说明的计算系统通信。此外,在一些实施方案中,可以其它方式,例如至少部分地在固件和/或硬件中实施或提供所述系统和/或模块中的一些或全部,所述固件和/或硬件包括但不限于一个或多个专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当指令,且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程的逻辑装置(CPLD)等。所述模块、系统和数据结构中的一些或全部还可存储(例如,作为软件指令或结构化数据)在计算机可读介质上,例如将由适当的驱动器或经由适当的连接读取硬盘、存储器、网络或便携式介质物品。所述系统、模块和数据结构也可作为所产生的数据信号(例如,作为载波或其它模拟或数字传播的信号的部分)在多种计算机可读传输介质上传输,包括基于无线和基于有线/缆线的介质,且可采取多种形式(例如,作为单个或经多路复用的模拟信号的部分,或作为多个离散数字包或帧)。在其它实施方案中,此类计算机程序产品还可采取其它形式。因此,可用其它计算机系统配置来实践本发明。
本文所使用的条件语言,例如“可”、“可能”、“例如”等等,除非另有具体陈述,或在所使用的上下文内另有理解,否则通常既定传达某些实施方案包括,而其它实施方案不包括某些特征、元件和/或步骤。因此,此类条件语言一般无意暗示一个或多个实施方案以任何方式需要特征、元件和/或步骤,或一个或多个实施例必定包括用于在具有或无作者输入的情况下决定或提示是否包括这些特征、元件和/或步骤,或这些特征、元件和/或步骤是否将在任何特定实施方案中执行。术语“包括(comprising)”、“包含(including)”、“具有”等是同义的,且以开放方式包括性地使用,且并不排除额外元件、特征、动作、操作等。并且,术语“或”是在其包括性意义上(且不在其排它性意义上)使用,使得当例如用来连接元素列表时,术语“或”表示所述列表中的元素中的一个、一些或全部。
虽然已描述了某些例子实施方案,但这些实施方案已仅以例子方式呈现,且无意限制本文所公开的本发明的范围。因此,前面的描述中没有什么意在暗示任何特定特征、特性、步骤、模块或块是必要的或不可缺少的。事实上,本文所描述的新颖方法和系统可以多种其它形式体现;此外,可在不脱离本文所公开的本发明的精神的情况下,进行呈本文所描述的方法和系统的形式的各种省略、替代和改变。所附权利要求书及其均等物意在涵盖如将属于本文所公开的发明中的某些发明的范围和精神内的形式或修改。
可鉴于以下条款来描述本发明的实施方案:
1.一种用于提供和启动计算实例的系统,所述系统包括:
一个或多个数据中心,其包括被配置来经由网络连接彼此通信的多个计算装置;以及
一个或多个存储器,其中存储有计算机可读指令,所述计算机可读指令在所述系统上执行后,致使所述系统至少:
确定对多个计算实例的预期需求,所述多个计算实例与多个机器图像和多个计算实例类型相关联;
至少部分地基于所述预期需求,从所述多个计算装置确定被配置来托管所述多个计算实例的一个或多个计算装置;
在接收到来自客户节点的启动计算实例的请求之前,至少部分地基于所述多个机器图像和所述多个计算实例类型来启动并闲置所述一个或多个计算装置上的所述多个计算实例;以及
响应于接收到来自所述客户节点的启动所述计算实例的所述请求,从所述多个机器图像中的一者激活所述一个或多个计算装置上闲置的所述计算实例。
2.如条款1所述的系统,其中至少部分地基于从客户节点接收到的请求历史来确定所述预期需求,且其中至少部分地基于与所述请求相关联的计算实例的配置参数,来对所述请求历史进行分类。
3.如条款1所述的系统,其中确定对多个计算实例的预期需求的所述指令包括于所述系统上执行后致使所述系统至少进行以下操作的指令:
分析对计算实例的请求历史来为所述多个计算实例和所述一个或多个计算装置确定目标;以及
至少部分地基于与所述请求相关联的统计因素来修正所述目标。
4.如条款1所述的系统,其中从所述多个计算装置确定一个或多个计算装置的所述指令包括于所述系统上执行后致使所述系统至少进行以下操作的指令:
确定所述多个计算装置的预期可用性;
平衡所述预期需求与所述预期可用性,来满足与启动并闲置所述多个计算实例相关联的约束;以及
至少部分地基于所述平衡来确定所述一个或多个计算装置。
5.一种方法,其包括:
在多个计算节点上提供多个经预配置的机器图像,其中所述多个经预配置的机器图像至少部分地基于预期需求;
在接收到来自用户节点的启动计算实例的请求之后,确定所述计算实例与所述多个经预配置的机器图像中的至少一机器图像相关联;以及
至少部分地基于所述确定,使用所述多个计算节点中的计算节点上的所述相关联机器图像来完成所述计算实例的启动。
6.如条款5所述的方法,其中所述预期需求至少部分地基于先前接收到的对计算实例的请求。
7.如条款5所述的方法,其中所述预期需求包括与所述多个经预配置的机器图像相关联的多个计算实例的类型以及与所述多个经预配置的机器图像相关联的识别符。
8.如条款7所述的方法,其中所述预期需求还包括预期接收到来自用户节点的对所述多个计算实例的请求的时间段以及预期将在来自所述用户节点的所述请求中指示的区。
9.如条款5所述的方法,其中所述机器图像被预配置来至少部分地基于以下各项而在所述计算节点上启动:
从存储所述机器图像的根存储装置高速缓存所述机器图像;
至少部分地基于所述计算实例的配置来修改所述机器图像的配置文件;以及
至少部分地基于所述计算实例的所述配置来将存储容量分配给所述计算实例。
10.如条款9所述的方法,其中所述完成所述计算实例的启动包括至少部分地基于经修改的所述配置文件,在所述计算节点上起动所述机器图像的操作系统。
11.如条款5所述的方法,其中所述完成所述计算实例的启动包括:
在接收到来自所述用户节点的所述请求之前,启动所述计算实例;
在接收到来自所述用户节点的所述请求之前,闲置所述启动的计算实例;以及
响应于接收到来自所述用户节点的所述请求,激活所述闲置的计算实例。
12.一种包括指令的非暂时性计算机可读介质,所述指令于系统上执行后,致使所述系统执行包括以下各项的操作:
确定对与多个机器图像相关联的多个计算实例的需求;
确定被配置来从所述多个机器图像启动所述多个计算实例的多个计算节点,所述确定是至少部分地基于与在所述多个计算节点上启动所述多个计算实例相关联的约束;
在从用户节点接收到启动所述多个计算实例中的计算实例的请求之前,在所述多个计算节点上配置所述多个机器图像;以及
在接收到来自所述用户节点的所述请求之后,使用所述多个计算节点中的一者上的所述多个经配置机器图像中的一者来完成特定计算实例的启动。
13.如条款12所述的非暂时性计算机可读介质,其中对所述多个计算实例的所述需求与对启动所述多个计算实例的预期请求相关联。
14.如条款13所述的非暂时性计算机可读介质,其还包括于所述系统上执行后致使所述系统执行包括以下各项的操作的指令:
分析与所启动的实例相关联的历史,以确定与对启动多个计算实例的所述预期请求相关联的多个配置参数;
至少部分地基于所述多个计算节点的可用性,确定与启动多个计算节点上的所述多个计算实例相关联的目标;以及
至少部分地基于所述目标来设定所述需求,所述需求包括来自所述多个配置参数的一个或多个配置参数。
15.如条款14所述的非暂时性计算机可读介质,其中所述多个配置参数包括所述多个计算实例的数目、所述多个计算实例的类型以及所述多个机器图像的识别符。
16.如条款14所述的非暂时性计算机可读介质,其中所述历史至少部分地基于对与多个用户节点相关联的所述所启动实例的请求,其中所述所启动的实例托管在特定位置。
17.如条款12所述的非暂时性计算机可读介质,其中所述约束至少部分地基于所述多个计算节点处的可用计算容量。
18.如条款12所述的非暂时性计算机可读介质,其中所述约束至少部分地基于被配置来在所述多个计算节点中的计算节点上同时启动的计算实例的数目。
19.如条款12所述的非暂时性计算机可读介质,其中所述约束至少部分地基于计算节点跨区域或区的可用性。
20.如条款12所述的非暂时性计算机可读介质,其中所述约束至少部分地基于与执行与所述多个机器图像中的一者相关联的应用或操作系统相关联的费用。
21.如条款12所述的非暂时性计算机可读介质,其中所述约束至少部分地基于与从在所述多个计算节点中的一者上的所述多个机器图像中的一者启动所述多个计算实例中的一者相关联的费用。
22.如条款12所述的非暂时性计算机可读介质,其中所述约束至少部分地基于用于启动所述多个计算实例的所述多个计算节点的兼容性。

Claims (15)

1.一种用于提供和启动计算实例的系统,所述系统包括:
一个或多个数据中心,其包括被配置来经由网络连接彼此通信的多个计算装置;以及
一个或多个存储器,其中存储有计算机可读指令,所述计算机可读指令于所述系统上执行后,致使所述系统至少:
确定对多个计算实例的预期需求,所述多个计算实例与多个机器图像和多个计算实例类型相关联;
至少部分地基于所述预期需求,从所述多个计算装置确定被配置来托管所述多个计算实例的一个或多个计算装置;
在接收到来自客户节点的启动计算实例的请求之前,至少部分地基于所述多个机器图像和所述多个计算实例类型来启动并闲置所述一个或多个计算装置上的所述多个计算实例;以及
响应于接收到来自所述客户节点的启动所述计算实例的所述请求,从所述多个机器图像中的一者激活所述一个或多个计算装置上闲置的所述计算实例。
2.根据权利要求1所述的系统,其中至少部分地基于从客户节点接收到的请求历史来确定所述预期需求,且其中至少部分地基于与所述请求相关联的计算实例的配置参数,来对所述请求历史进行分类。
3.根据权利要求1所述的系统,其中确定对多个计算实例的预期需求的所述指令包括于所述系统上执行后致使所述系统至少进行以下操作的指令:
分析对计算实例的请求历史来为所述多个计算实例和所述一个或多个计算装置确定目标;以及
至少部分地基于与所述请求相关联的统计因素来修正所述目标。
4.根据权利要求1所述的系统,其中从所述多个计算装置确定一个或多个计算装置的所述指令包括于所述系统上执行后致使所述系统至少进行以下操作的指令:
确定所述多个计算装置的预期可用性;
平衡所述预期需求与所述预期可用性,来满足与启动并闲置所述多个计算实例相关联的约束;以及
至少部分地基于所述平衡来确定所述一个或多个计算装置。
5.一种方法,其包括:
在多个计算节点上提供多个经预配置的机器图像,其中所述多个经预配置的机器图像至少部分地基于预期需求;
在接收到来自用户节点的启动计算实例的请求之后,确定所述计算实例与所述多个经预配置的机器图像中的至少一机器图像相关联;以及
至少部分地基于所述确定,使用所述多个计算节点中的计算节点上的所述相关联机器图像来完成所述计算实例的启动。
6.根据权利要求5所述的方法,其中所述预期需求至少部分地基于先前接收到的对计算实例的请求。
7.根据权利要求5所述的方法,其中所述预期需求包括与所述多个经预配置的机器图像相关联的多个计算实例的类型以及与所述多个经预配置的机器图像相关联的识别符。
8.根据权利要求7所述的方法,其中所述预期需求还包括预期接收到来自用户节点的对所述多个计算实例的请求的时间段以及预期将在来自所述用户节点的所述请求中指示的区。
9.根据权利要求5所述的方法,其中所述机器图像被预配置来至少部分地基于以下各项而在所述计算节点上启动:
从存储所述机器图像的根存储装置高速缓存所述机器图像;
至少部分地基于所述计算实例的配置来修改所述机器图像的配置文件;以及
至少部分地基于所述计算实例的所述配置来将存储容量分配给所述计算实例。
10.根据权利要求9所述的方法,其中所述完成所述计算实例的启动包括至少部分地基于经修改的所述配置文件,在所述计算节点上起动所述机器图像的操作系统。
11.根据权利要求5所述的方法,其中所述完成所述计算实例的启动包括:
在接收到来自所述用户节点的所述请求之前,启动所述计算实例;
在接收到来自所述用户节点的所述请求之前,闲置所述启动的计算实例;以及
响应于接收到来自所述用户节点的所述请求,激活所述闲置的计算实例。
12.一种方法,其包括:
确定对与多个机器图像相关联的多个计算实例的需求;
确定被配置来从所述多个机器图像启动所述多个计算实例的多个计算节点,所述确定是至少部分地基于与在所述多个计算节点上启动所述多个计算实例相关联的约束;
在从用户节点接收到启动所述多个计算实例中的计算实例的请求之前,在所述多个计算节点上配置所述多个机器图像;以及
在接收到来自所述用户节点的所述请求之后,使用所述多个计算节点中的一者上的所述多个经配置机器图像中的一者来完成特定计算实例的启动。
13.根据权利要求12所述的方法,其中所述约束至少部分地基于所述多个计算节点处的可用计算容量或计算节点跨区域或区的可用性。
14.根据权利要求12所述的方法,其中所述约束至少部分地基于被配置来在所述多个计算节点中的计算节点上同时启动的计算实例的数目。
15.根据权利要求12所述的方法,其中所述约束至少部分地基于与执行与所述多个机器图像中的一者相关联的应用或操作系统相关联的费用,或与从在所述多个计算节点中的一者上的所述多个机器图像中的一者启动所述多个计算实例中的一者相关联的费用。
CN201480034965.0A 2013-06-10 2014-06-10 预配置和预启动计算资源 Active CN105324760B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/914,225 2013-06-10
US13/914,225 US10489175B2 (en) 2013-06-10 2013-06-10 Pre-configure and pre-launch compute resources
PCT/US2014/041794 WO2014201053A1 (en) 2013-06-10 2014-06-10 Pre-configure and pre-launch compute resources

Publications (2)

Publication Number Publication Date
CN105324760A true CN105324760A (zh) 2016-02-10
CN105324760B CN105324760B (zh) 2018-05-11

Family

ID=52006437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480034965.0A Active CN105324760B (zh) 2013-06-10 2014-06-10 预配置和预启动计算资源

Country Status (8)

Country Link
US (1) US10489175B2 (zh)
EP (1) EP3008616A4 (zh)
JP (1) JP6580035B2 (zh)
CN (1) CN105324760B (zh)
AU (3) AU2014278257A1 (zh)
CA (1) CA2914940C (zh)
SG (1) SG11201510128UA (zh)
WO (1) WO2014201053A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108616397A (zh) * 2018-04-28 2018-10-02 无锡华云数据技术服务有限公司 部署确定方法及装置
CN108770369A (zh) * 2016-04-15 2018-11-06 谷歌有限责任公司 具有场境任务管理和执行的模块化电子设备
CN109660658A (zh) * 2018-11-26 2019-04-19 广州微算互联信息技术有限公司 获取预启动的云手机的方法和云手机服务器
CN109857464A (zh) * 2017-11-30 2019-06-07 财团法人工业技术研究院 用于平台部署与操作移动操作系统的系统及其方法
CN112506583A (zh) * 2020-12-21 2021-03-16 北京百度网讯科技有限公司 一种实例控制方法、装置、设备、存储介质以及程序产品
CN113614694A (zh) * 2019-03-22 2021-11-05 亚马逊技术股份有限公司 使用预测容量使用情况对虚拟机工作负载进行装箱

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489175B2 (en) 2013-06-10 2019-11-26 Amazon Technologies, Inc. Pre-configure and pre-launch compute resources
US10200301B1 (en) * 2014-03-28 2019-02-05 Amazon Technologies, Inc. Logical control groups for distributed system resources
US9998320B2 (en) * 2014-04-03 2018-06-12 Centurylink Intellectual Property Llc Customer environment network functions virtualization (NFV)
CN105204923A (zh) * 2014-06-27 2015-12-30 国际商业机器公司 用于资源预配置的方法和装置
US10924482B1 (en) * 2014-12-18 2021-02-16 Amazon Technologies, Inc. Virtual service authorization
CN104636186B (zh) * 2015-01-27 2018-02-13 华为技术有限公司 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备
JP6478219B2 (ja) * 2015-02-13 2019-03-06 Kddi株式会社 統合制御サーバ、仮想アプリケーション構築システムおよびプログラム
US20170041386A1 (en) * 2015-08-05 2017-02-09 International Business Machines Corporation Provisioning a target hosting environment
WO2017075492A1 (en) * 2015-10-29 2017-05-04 Idac Holdings, Inc. Dynamic virtual machine management platform
US11385919B1 (en) * 2016-07-12 2022-07-12 Amazon Technologies, Inc. Machine image launch system
US10397189B1 (en) * 2016-09-27 2019-08-27 Amazon Technologies, Inc. Peered virtual private network endpoint nodes
US10228955B2 (en) * 2016-09-29 2019-03-12 International Business Machines Corporation Running an application within an application execution environment and preparation of an application for the same
US9888615B1 (en) 2016-12-22 2018-02-06 Amazon Technologies, Inc. Tape library rack module with environmentally isolated interior
US11102285B2 (en) * 2017-01-05 2021-08-24 Bank Of America Corporation Network routing tool
US10601954B2 (en) 2018-03-09 2020-03-24 Microsoft Technology Licensing, Llc Sandboxing requests for web services
US10911367B2 (en) * 2018-06-27 2021-02-02 Oracle International Corporation Computerized methods and systems for managing cloud computer services
US11157292B2 (en) * 2018-11-13 2021-10-26 Servicenow, Inc. Instance mapping engine and tools
US10963282B2 (en) 2018-12-11 2021-03-30 Amazon Technologies, Inc. Computing service with configurable virtualization control levels and accelerated launches
US10761875B1 (en) * 2018-12-13 2020-09-01 Amazon Technologies, Inc. Large scale compute instance launching
US20220129800A1 (en) * 2019-01-30 2022-04-28 IC Manage Inc. Global File Flow Forecasting System and Methods of Operation
US11228643B2 (en) * 2019-06-04 2022-01-18 Capital One Services, Llc System and method for fast application auto-scaling
US11474827B1 (en) * 2019-08-20 2022-10-18 Amazon Technologies, Inc. Reboot migration between bare-metal servers
US10979534B1 (en) * 2019-11-29 2021-04-13 Amazon Technologies, Inc. Latency-based placement of cloud compute instances within communications service provider networks
US11418995B2 (en) 2019-11-29 2022-08-16 Amazon Technologies, Inc. Mobility of cloud compute instances hosted within communications service provider networks
US10965737B1 (en) * 2019-11-29 2021-03-30 Amazon Technologies, Inc. Cloud computing in communications service provider networks
US11676013B2 (en) * 2019-12-30 2023-06-13 International Business Machines Corporation Job-launch time reduction by node pre-configuration
CN111475235B (zh) * 2020-04-13 2023-09-12 北京字节跳动网络技术有限公司 函数计算冷启动的加速方法、装置、设备及存储介质
US12003385B2 (en) * 2021-03-02 2024-06-04 Cisco Technology, Inc. Dynamic network routing based on application load
US11954473B2 (en) * 2021-09-20 2024-04-09 Microstrategy Incorporated Deployment architecture for multi-tenant cloud computing systems
WO2024186667A1 (en) * 2023-03-07 2024-09-12 Oracle International Corporation System selected fungible configurable attributes for a compute instance

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120147894A1 (en) * 2010-12-08 2012-06-14 Mulligan John T Methods and apparatus to provision cloud computing network elements
CN102611734A (zh) * 2011-12-16 2012-07-25 广州市品高软件开发有限公司 一种基于云计算的镜像实例启动方法及装置
US20120240110A1 (en) * 2011-03-16 2012-09-20 International Business Machines Corporation Optimized deployment and replication of virtual machines
US20130139152A1 (en) * 2011-11-29 2013-05-30 International Business Machines Corporation Cloud provisioning accelerator

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7603463B2 (en) * 2003-12-12 2009-10-13 Nortel Networks Limited Method and apparatus for allocating processing capacity of system processing units in an extranet gateway
JP4739272B2 (ja) 2007-04-19 2011-08-03 株式会社富士通アドバンストエンジニアリング 負荷分散装置、仮想サーバ管理システム、負荷分散方法および負荷分散プログラム
JP2009163440A (ja) 2007-12-28 2009-07-23 Nec Corp 負荷分散方法、負荷分散システム、負荷分散サーバ及び負荷分散プログラム
US8424007B1 (en) * 2008-09-30 2013-04-16 Symantec Corporation Prioritizing tasks from virtual machines
EP2404412B1 (en) 2009-03-02 2019-05-01 Twilio Inc. Method and system for a multitenancy telephone network
US8090797B2 (en) * 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8984503B2 (en) * 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
US9170847B2 (en) 2010-01-08 2015-10-27 Sauce Labs, Inc. Real time verification of web applications
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
JP2012068790A (ja) * 2010-09-22 2012-04-05 Internatl Business Mach Corp <Ibm> Osのイメージの選択装置、選択方法、及び選択プログラム
US8560699B1 (en) * 2010-12-28 2013-10-15 Amazon Technologies, Inc. Enforceable launch configurations
US8417578B1 (en) * 2011-03-17 2013-04-09 Amazon Technologies, Inc. Customizing component configurations for utility computing
US9712379B2 (en) * 2013-01-25 2017-07-18 Red Hat, Inc. Robust cloud instance launching
US9298443B2 (en) * 2013-02-14 2016-03-29 International Business Machines Corporation System and method for determining when cloud virtual machines need to be updated
US10489175B2 (en) 2013-06-10 2019-11-26 Amazon Technologies, Inc. Pre-configure and pre-launch compute resources

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120147894A1 (en) * 2010-12-08 2012-06-14 Mulligan John T Methods and apparatus to provision cloud computing network elements
US20120240110A1 (en) * 2011-03-16 2012-09-20 International Business Machines Corporation Optimized deployment and replication of virtual machines
US20130139152A1 (en) * 2011-11-29 2013-05-30 International Business Machines Corporation Cloud provisioning accelerator
CN102611734A (zh) * 2011-12-16 2012-07-25 广州市品高软件开发有限公司 一种基于云计算的镜像实例启动方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IVAN KRSUL等: "VMPlants:Providing and Managing Virtual Machine Execution Environments for Grid Computing", 《SUPER COMPUTING,2004.PROCEEDINGSOF THE ACM/IEEE SC2004 CONFERENCE PITTSBURGH》 *
SHOHEI YAMASAKI等: "Model-based resource selection for efficient virtual cluster deployment", 《VIRTUALIZATION TECHNOLOGY IN DISTRIBUTED COMPUTING》 *
XUEHAI ZHANG等: "Virtual Workspaces in the Grid", 《PROCESSING:11TH INTERNATIONAL EURO-PAR CONFERENCE》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108770369A (zh) * 2016-04-15 2018-11-06 谷歌有限责任公司 具有场境任务管理和执行的模块化电子设备
CN108770369B (zh) * 2016-04-15 2020-01-10 谷歌有限责任公司 具有场境任务管理和执行的模块化电子设备
CN109857464A (zh) * 2017-11-30 2019-06-07 财团法人工业技术研究院 用于平台部署与操作移动操作系统的系统及其方法
CN109857464B (zh) * 2017-11-30 2022-02-25 财团法人工业技术研究院 用于平台部署与操作移动操作系统的系统及其方法
CN108616397A (zh) * 2018-04-28 2018-10-02 无锡华云数据技术服务有限公司 部署确定方法及装置
CN108616397B (zh) * 2018-04-28 2019-05-03 无锡华云数据技术服务有限公司 部署确定方法及装置
CN109660658A (zh) * 2018-11-26 2019-04-19 广州微算互联信息技术有限公司 获取预启动的云手机的方法和云手机服务器
CN113614694A (zh) * 2019-03-22 2021-11-05 亚马逊技术股份有限公司 使用预测容量使用情况对虚拟机工作负载进行装箱
CN113614694B (zh) * 2019-03-22 2024-04-16 亚马逊技术股份有限公司 使用预测容量使用情况对虚拟机工作负载进行装箱
CN112506583A (zh) * 2020-12-21 2021-03-16 北京百度网讯科技有限公司 一种实例控制方法、装置、设备、存储介质以及程序产品

Also Published As

Publication number Publication date
CN105324760B (zh) 2018-05-11
JP2016527604A (ja) 2016-09-08
JP6580035B2 (ja) 2019-09-25
SG11201510128UA (en) 2016-01-28
EP3008616A4 (en) 2017-03-01
US20140365626A1 (en) 2014-12-11
AU2017218941A1 (en) 2017-09-07
US10489175B2 (en) 2019-11-26
EP3008616A1 (en) 2016-04-20
WO2014201053A1 (en) 2014-12-18
CA2914940A1 (en) 2014-12-18
AU2019213422B2 (en) 2020-05-28
AU2019213422A1 (en) 2019-08-29
AU2014278257A1 (en) 2015-12-24
CA2914940C (en) 2021-03-23

Similar Documents

Publication Publication Date Title
CN105324760A (zh) 预配置和预启动计算资源
US9798635B2 (en) Service level agreement-based resource allocation for failure recovery
CN103649914B (zh) 对于云计算选项的自动推荐
US10198284B2 (en) Ensuring operational integrity and performance of deployed converged infrastructure information handling systems
US9002893B2 (en) Optimizing a clustered virtual computing environment
US8984134B2 (en) Unified cloud computing infrastructure to manage and deploy physical and virtual environments
CN105049268A (zh) 分布式计算资源分配系统和任务处理方法
US11216261B1 (en) Deployment in cloud using digital replicas
CN109614227A (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
CN105095103A (zh) 用于云环境下的存储设备管理方法和装置
US10884845B2 (en) Increasing processing capacity of processor cores during initial program load processing
CN105074660A (zh) 部署数据-路径相关插件
US11442781B2 (en) Master image for deploying workloads in a heterogeneous computing environment
US10884818B2 (en) Increasing processing capacity of virtual machines
US10228743B2 (en) Hierarchical prioritized charging for battery backup units on computing data centers
CN115016862A (zh) 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质
US11875202B2 (en) Visualizing API invocation flows in containerized environments
US11770306B2 (en) Deployment of computer system services
US11797284B2 (en) Composable deployer architecture
US20240095099A1 (en) Decentralized framework for providing application programming interface gateways
GB2557255A (en) Automatic selection of infrastructure on a hybrid cloud environment
Ayanlowo et al. Conceptual Design and Implementation of a Cloud Computing Platform Paradigm
JP2024521633A (ja) デバイス間での計算共有方法、システム、プログラム
Süß et al. IT Infrastructure

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant