CN105229609A - 虚拟机实例的用户影响的放置 - Google Patents

虚拟机实例的用户影响的放置 Download PDF

Info

Publication number
CN105229609A
CN105229609A CN201480028885.4A CN201480028885A CN105229609A CN 105229609 A CN105229609 A CN 105229609A CN 201480028885 A CN201480028885 A CN 201480028885A CN 105229609 A CN105229609 A CN 105229609A
Authority
CN
China
Prior art keywords
placement strategy
service provider
provider network
placement
virtual machine
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
CN201480028885.4A
Other languages
English (en)
Other versions
CN105229609B (zh
Inventor
E·G·阿道格拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Priority claimed from US13/889,919 external-priority patent/US20140337834A1/en
Priority claimed from US13/889,914 external-priority patent/US20140337833A1/en
Priority claimed from US13/889,907 external-priority patent/US9665387B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105229609A publication Critical patent/CN105229609A/zh
Application granted granted Critical
Publication of CN105229609B publication Critical patent/CN105229609B/zh
Expired - Fee Related 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

服务提供商网络包括用于允许客户通过指定放置策略而影响虚拟机实例在服务器计算机上的放置的功能。放置策略可以在所述服务提供商网络的客户之间共享且可以对所述放置策略和所述放置策略的发布者评分。还可以利用与供应商无关的放置策略以识别用于执行虚拟机实例的服务提供商网络。还可以利用包括动态评估参数的放置策略以在持续基础上修改客户群队中的虚拟机实例。

Description

虚拟机实例的用户影响的放置
发明背景
一些基于网络的计算服务提供商允许客户在永久或按需基础上购买和利用计算资源,诸如虚拟机实例。除了虚拟机实例之外,这样的计算服务提供商通常允许客户购买和利用其它类型的计算资源。例如,可以允许客户购买对文件和块数据存储资源、数据库资源、联网资源和其它类型的计算资源的访问权和使用权。利用这些计算资源来作为建构块,这样的基于网络的计算服务的客户可以创建定制解决方案,其提供多种类型的功能,诸如应用程序托管、备份和存储、内容递送、万维网(“网络”)托管、企业信息技术(“IT”)解决方案、数据库服务等等。
当启动某些类型的计算资源(诸如虚拟机实例)时,服务提供商网络的客户(诸如上文描述的服务提供商网络的客户)通常未能指定关于其上实例化计算资源的实际硬件和软件平台(其在本文中还可以称作“基础设施平台”)的细节。相反,可以只允许客户一般性地描述所期望的计算资源。例如,在虚拟机实例的情况下,可以允许客户只指定所期望的存储器量、所期望的处理能力级别和所期望的存储量。接着基于网络的计算服务选择特定硬件平台(诸如特定服务器计算机)来利用以实例化由客户请求的计算资源。
关于这些和其它考虑呈现本文提出的公开内容。
附图简述
图1是根据本文公开的一个实施方案的示出用于服务提供商网络中使用放置策略的虚拟机的用户影响的放置的本文描述的一个说明性机制的方面的网络架构图;
图2是根据本文公开的实施方案的示出用于共享放置策略且用于对放置策略和放置策略的发布者评级的本文公开的一个机制的方面的***图;
图3是根据本文公开的一个实施方案的示出用于共享放置策略且用于对放置策略和放置策略的发布者评分的一个说明性例行程序的流程图;
图4是根据本文公开的一个实施方案的示出用于利用与供应商无关的放置策略以选择用于实例化虚拟机实例的服务提供商网络的本文公开的一个机制的方面的***图;
图5是根据本文公开的一个实施方案的示出用于利用与供应商无关的放置策略以选择用于实例化虚拟机实例的服务提供商网络的一个说明性例行程序的流程图;
图6是根据本文公开的一个实施方案的示出用于利用包括动态评估参数的放置策略以修改客户群队中的虚拟机实例的本文公开的一个机制的方面的***图;
图7是根据本文公开的一个实施方案的示出用于利用包括动态评估参数的放置策略以修改客户群队中的虚拟机实例的一个说明性例行程序的流程图;
图8是根据本文公开的一个实施方案的示出包括被配置来提供用于实施虚拟机实例和其它类型的计算资源的功能的服务提供商网络的本文公开的实施方案的一个说明性操作环境的***和网络图;
图9是根据本文公开的一个实施方案的图示实施用于虚拟机实例的用户影响的放置的本文公开的概念和技术的方面的数据中心的一个配置的计算***图;和
图10是示出用于实施可以被利用来实施本文呈现的多种实施方案的方面的计算装置的说明性计算机硬件架构的计算机架构图。
具体实施方式
以下详细描述针对用于虚拟机实例的用户影响的放置的技术。利用本文描述的技术,可以定义和利用放置策略以影响虚拟机实例和其它类型的计算资源在服务提供商网络中的放置。放置策略可以在服务提供商网络的客户之间共享且可以对放置策略和放置策略的发布者评分。在其它实施方案中,可以利用与供应商无关的放置策略以选择用于实例化虚拟机实例的服务提供商网络。在又一实施方案中,可以利用包括动态评估参数的放置策略以修改客户群队中的虚拟机实例。
用于使用放置策略的虚拟机实例的用户影响的放置的本文公开的多种机制可以连同客户可在永久或按需基础上购买和利用计算资源(诸如虚拟机实例、数据存储资源、数据库资源、联网资源和其它类型的计算资源)所通过的服务提供商操作的基于网络的分布式计算环境(其在本文中可以称作“服务提供商网络”)操作。
操作服务提供商网络的服务提供商可以向创建和使用资源的客户收取操作计算资源的费用。服务提供商还可以利用多种购买模型以确定针对由服务提供商提供的计算资源的使用向客户收取多少。如上文提及,这样的服务提供商的客户可以利用计算资源来作为构建块以创建定制解决方案,其提供多种类型的功能,诸如应用程序托管、备份和存储、内容递送、网络托管、企业IT解决方案、数据库服务等等。
还如上文提及,服务提供商网络的客户(诸如上文描述的服务提供商网络的客户)通常未能指定关于其上实例化特定计算资源的实际硬件平台的细节。相反,可以只允许客户一般性地描述所期望的计算资源。例如,在虚拟机实例的情况下,可以允许客户只指定所期望的存储器量、所期望的处理能力级别和所期望的存储量。但是,客户不能指定其上应创建虚拟机实例的特定硬件或基础设施平台。相反,基于网络的计算服务选择特定硬件平台(诸如特定服务器计算机)来利用以实例化由客户请求的计算资源。本文公开的多种实施方案解决这些和可能其它考虑。
为了解决上文提出的至少一些考虑,本文公开的实施方案提供用于使用放置策略的虚拟机实例的用户影响的放置的若干计算机实施的机制。在这些实施方案中,服务提供商网络可以提供虚拟机实例和/或其它类型的计算资源的用户影响的放置的功能。例如,可以允许服务提供商网络的客户指定可以被利用来影响虚拟机实例或其它类型的计算资源在服务提供商网络中的特定硬件平台上的放置的放置策略。可以利用放置策略以基于价格、硬件制造商、制造硬件平台的年份、芯片集、硬件卡或其它类型的***设备、网络连接、处理器类型和/或计算装置的其它属性而影响虚拟机实例在特定硬件平台上的放置。
在本文公开的一个特定实施方案中,可以允许服务提供商网络的客户彼此共享放置策略。例如,服务提供商网络内的组件可以被配置来从服务提供商网络的客户接收放置策略。接收的放置策略可以被定义为适合于在特定类型的计算工作负荷(诸如特定虚拟机图像)下使用。放置策略可以被存储且稍后加以利用以将放置策略推荐给服务提供商网络的其他客户来在相同或类似计算工作负荷下使用。
还可以提供用于允许客户提供放置策略和/或提供放置策略的客户的评分的机制。还可以在选择放置策略以推荐给用户来在特定工作负荷下使用时利用这些评分。这些评分还可以显露给服务提供商网络的客户以用于在选择用于特定类型的计算工作负荷的放置策略中使用。
在另一实施方案中,提供一种用于使用与供应商无关的放置策略的虚拟机实例的用户影响的放置。在这个实施方案中,可以定义和利用与供应商无关的放置策略以选择用于执行虚拟机实例的特定服务提供商。与供应商无关的放置策略是以独立于任何特定服务提供商(即,供应商)和/或服务提供商网络(即,与其无关)的方式定义的放置策略。
在一个实施中,实例放置服务提取用于由不同供应商操作的众多服务提供商网络的实例可用性数据和实例定价数据。实例可用性数据描述虚拟机实例类型和/或用于执行从各个服务提供商网络得到的虚拟机实例类型的硬件平台。实例定价数据描述利用多种虚拟机实例类型的价格。可以在接收启动虚拟机实例的请求之前或在接收这样的请求时获得实例可用性数据和实例定价数据。
实例放置服务还可以接收启动包括与供应商无关的放置策略的虚拟机实例的请求。响应于接收这样的请求,实例放置服务可以利用实例可用性数据、实例定价数据和与供应商无关的放置策略以选择用于启动虚拟机实例的服务提供商网络。在一个实施方案中,被选择来用于启动虚拟机实例的服务提供商网络是可以满足与供应商无关的放置策略的参数且还可以最低成本执行所期望的虚拟机实例的服务提供商网络。一旦已选择服务提供商网络,实例放置服务可以将请求传输至所选择的服务提供商网络以实例化虚拟机实例。
在又一实施方案中,提供一种用于使用动态参数的虚拟机实例的用户影响的放置的机制。在这个实施方案中,可以定义包括动态评估参数的放置策略。动态评估的参数是在评估放置策略时动态定义的参数。例如,可以在评估放置策略时从服务提供商网络内部的数据源提取一个或多个动态评估参数的值。还可以在评估放置策略时从服务提供商网络外部的数据源提取一个或多个动态评估参数的值。
一旦已接收用于放置策略的动态评估参数的值,可以评估放置策略。取决于评估的结果,可以对由服务提供商网络的客户操作的虚拟机实例群队进行多种修改。例如,执行于特定硬件平台上的虚拟机实例可以迁移至不同硬件平台。在另一实例中,新虚拟机实例可以添加至执行于由包含动态评估参数的放置策略指定的硬件平台上的群队。
在一些实施方案中,可以定期地更新和利用动态评估参数的值以评估放置策略。接着可以取决于放置策略的评估的结果相应地更新客户群队中的虚拟机实例。以此方式,可以在持续基础上根据放置策略中提出的参数进行对客户群队的修改。下文将关于图1至图10呈现关于用于虚拟机实例的用户影响的放置的上文简要地描述的多种组件和过程的额外细节。
应了解,本文呈现的主旨可以实施为计算机过程、计算机控制的设备、计算***或一件制造品,诸如计算机可读存储介质。虽然在执行于一个或多个计算装置上的程序模块的一般性上下文中呈现本文描述的主旨,但是所属领域技术人员将认识到,其它实施可以组合其它类型的程序模块执行。一般来说,程序模块包括执行特定任务或实施特定抽象数据类型的例行程序、程序、组件、数据结构和其它类型的结构。
所属领域的技术人员还将了解,本文描述的主旨的方面可以在本文描述的其它计算机***配置之外的其它计算机***配置上实践或连同本文描述的其它计算机***配置之外的其它计算机***配置实践,所述计算机***配置包括多处理器***、基于微处理器或可编程的消费性电子器件、小型计算机、大型计算机、手持式计算机、个人数字助理、电子书阅读器、蜂窝电话装置、平板计算装置、特殊用途硬件装置、网络设备等等。如上文简要地提及,可以在分布式计算环境中实践本文描述的实施方案,其中任务可以由通过通信网络连结的远程计算装置执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储装置两者中。
在以下详细描述中,参考形成其部分且通过说明示出特定实施方案或实例的附图。本文的图并不按照比例绘制。在全部若干图(其在本文中称作“图”(“FIG”)或“若干图”(“FIGS”))中,相似数字表示相似元件。
图1是示出用于虚拟机实例的用户影响的放置的本文描述的一个说明性机制的方面的网络架构图。如上文简要地描述,本文公开的多种机制可以连同服务提供商网络102操作,其中客户可以在永久或按需基础上购买和利用来自操作服务提供商网络102的服务提供商的计算资源(其在本文中还可以称作“资源”),诸如虚拟机实例104A至104B(其在本文中还可以称作“虚拟机”或“实例”104)、联网资源、存储资源或其它类型的计算资源。虽然本文关于图1呈现的描述主要在虚拟机实例104的上下文中描述,但是应了解,可以在其它类型的计算资源下利用本文公开的实施方案。
计算资源的每种类型或配置可以从操作呈不同大小的服务提供商网络102的服务提供商得到。例如,服务提供商可以提供可用于购买和使用的具有处理器能力、主存储器、磁盘存储器和操作***的许多不同配置的实例104或其它类型的数据处理资源。服务提供商还可以提供用于由客户购买和使用的其它类型的资源。例如,服务提供商可以在永久或按需基础上提供数据库资源、文件或块数据存储资源、联网资源和/或其它类型的资源。
操作服务提供商网络102的服务提供商还可以向创建和使用资源的客户收取操作资源的费用。对特定资源收取的费用可以基于资源的类型和/或配置。对特定资源收取的费用还可以基于利用资源的时间量。例如,在数据处理资源的情况下,相似于虚拟机实例104,可以基于虚拟机实例104的配置和利用虚拟机实例104的时间量收取资源使用的费用。在数据存储资源的情况下,可以基于存储的数据量和/或传送至资源中或从资源中传出的数据量计算费用。其它类型的资源的费用还可以基于其它考虑。服务提供商还可以利用多种购买模型以确定针对由服务提供商提供的资源的使用向用户收取的金额。
上文描述的资源在一个特定实施中可以由服务提供商操作的一个或多个数据中心提供。如所属领域技术人员所知,数据中心是被利用来容纳和操作计算机***(诸如服务器计算机106A至106N和关联组件)的设施。数据中心还通常包括冗余和备用电源、通信、冷却和安全***。数据中心可以位于地理上不同的位置中且还可以连接至多种其它设施(诸如主机代管设施)和多种广域网(“WAN”)(诸如因特网)。在图1中所示的环境中,服务提供商可以操作一个或多个数据中心,其被配置来将服务提供商网络102中的虚拟机实例104提供至其客户。下文将关于图8和图9提供关于用于提供本文公开的功能的服务提供商网络102的实施的细节。
还可以按需以自动化方式供应和解除供应上文描述的多种资源。例如,客户可以将虚拟机实例启动请求108(“启动请求108”或“请求108”)提交至服务提供商网络102以实例化虚拟机的新实例104A。响应于接收这样的请求108,部署组件110或服务提供商网络102内的一个或多个其它组件可以如由客户请求创建虚拟机的新实例104A。接着可以允许客户根据期望利用虚拟机的新实例104A。其它类型的计算资源可以类似方式实例化。
当客户已使用计算资源(诸如虚拟机实例104A)完成时,客户可以请求解除供应资源。响应于此,部署组件110或服务提供商网络102中的另一组件可以使得解除供应计算资源。例如,部署组件110可以解除供应虚拟机实例104A。其它类型的计算资源还可以类似方式供应和解除供应。服务提供商网络102还可以提供基于对计算资源或其它因素的需求而自动缩放和/或解除缩放资源的功能。
如上文提及,服务提供商网络102还可以在一些实施方案中提供虚拟机实例104的用户影响的放置的功能。例如,可以允许服务提供商网络102的客户指定可以影响虚拟机实例104或其它类型的计算资源在符合客户指定的准则的特定硬件平台上的放置的一个或多个额外参数(在本文中称作“放置策略112”)。例如,可以允许客户基于价格、硬件制造商、制造硬件平台的年份、芯片集、硬件卡或其它类型的***设备、网络连接、处理器类型和/或硬件或基础设施平台的其它属性而影响虚拟机实例104在特定类型的服务器计算机106上的放置。使用这样的机制,基于网络的服务提供商能够针对较新硬件平台的使用收取较高价格。或者,这样的基于网络的服务提供商的客户能够通过在更多过时或不那么可取的硬件平台上实例化计算资源而削减成本。
在一个实施中,通过使用客户可指定定义所期望的硬件平台的放置策略112所通过的服务应用程序编程接口(“API”)调用而实施用于影响虚拟机实例104的放置的功能。例如,实例API调用可以允许服务提供商网络102的客户提供关于虚拟机实例104在具有某些类型的硬件或符合其它准则的服务器计算机106上的放置的指导。例如,请求具有一定量的存储器的某个虚拟机实例类型的API调用可以包括指定其上将执行虚拟机实例104的硬件的所期望的制造商或年份或制造的放置策略112。例如,可以利用放置策略以指定利用具有来自ADVANCEDMICRODEVICES(“AMD”)的处理器的服务器计算机106或2012年制造的服务器计算机106。还可以利用除了API之外的机制以将放置策略112提供至服务提供商网络102中的适当组件。在一些实施中,放置策略112还可以被指定识别不应同时执行于所期望的基础设施平台上的其它软件组件和/或指定一定百分比(例如,100%)的某些硬件资源专用于实例。
在一些实施中,可以允许用户注册默认放置策略112或指定在启动虚拟机实例104时利用的放置策略112。部署组件110可以尝试履行用户指定的放置策略112或如果不能满足指定放置策略112,可能未能启动请求的虚拟机实例104。例如,如果关联的放置策略112指定利用某个处理器类型,而在具有所期望的处理器类型的服务器提供商网络102中无服务器计算机106可用,那么可拒绝启动请求108。
在其它实施方案中,还可以在由服务提供商网络102提供的自动缩放功能下利用放置策略112。例如,放置策略112可以指定利用2011年制造的硬件且如果硬件不可用,那么利用2010年制造的硬件且将生产量增加10%以补偿2010年硬件的已知问题。这个功能还可以与预定义基准测试组合以执行工作负荷的部分垂直缩放来匹配分代实例大小。例如,放置策略112可以指定在2010年制造的硬件上启动虚拟机实例104,但如果那不可能,那么使用2011年制造的硬件,但将发送至2011年制造的每个服务器计算机106的工作负荷增加10%以补偿使用较新硬件的成本。
在图1中所示的实例中,服务提供商网络的客户已将启动请求108提交至部署组件110。启动请求108请求部署组件110在服务提供商网络102中实例化虚拟机的新实例104。启动请求108可以包括一般指定请求的虚拟机实例104的类型的实例类型识别符111。例如,实例类型识别符111一般可指定用于新虚拟机实例104的所期望的存储器量、所期望的处理能力级别和所期望的存储量。但是,实例类型识别符111并不指定关于其上应创建新实例104的实际硬件平台的特定细节。
如上文所提及,启动请求108还可以包括用户定义的放置策略112。放置策略112在一些实施方案中可以包括于启动请求108中或在其它实施方案中可单独提供。例如,在一些实施中,服务提供商网络102的客户可以维持与用户账户关联的放置策略112,所述用户账户可在部署组件110接收为客户实例化新虚拟机实例104的请求108时访问和利用。
应了解,放置策略112可以定义可被评估直至识别可用基础设施平台为止的特定基础设施平台的替代偏好。例如,在一个特定实施中,可以定义包括2013年制造的硬件的第一偏好的放置策略112。放置策略112还可以指定如果2013年制造的硬件并不可用,那么应利用2012年制造的硬件。放置策略112可以进一步指定如果2012年制造的硬件并不可用,那么利用包括来自INTELCORPORATION(“INTEL”)的芯片集的任何服务器计算机106。如果具有来自INTEL的芯片集的服务器计算机不可用,那么放置策略112可以进一步指定不应启动实例104。以此方式,服务提供商网络102的客户可以指定众多基础设施平台候选者,以便影响虚拟机实例104或其它类型的计算资源在服务提供商网络102中的放置。
应了解,可以定义和利用甚至比上文描述的放置策略更复杂的放置策略112。但是,一般来说,应了解,放置策略112可以定义为所期望的基础设施属性的有序列表。可以按上文描述的方式以优先顺序评估列表直至识别服务器计算机106或具有所期望属性的其它硬件平台。所期望的基础设施属性在不同实施方案中可以呈现不同格式,诸如对于将被认为可按其偏好选择的服务器计算机106必须全部满足的一组键值对约束,涉及布尔操作符的自由形式文本声明或具有预定和发布性质的特定虚拟机实例类型104。还可以利用其它格式。
如上文简要地提及,部署组件110在一个实施中接收启动请求108。接着部署组件110识别请求的虚拟机实例104将启动于哪个服务器计算机106A至106N上。应了解,服务器计算机106A至106N可以利用各种不同基础设施平台,其可以包括硬件平台、软件平台和/或其各自配置。例如,一个服务器计算机106A可以利用特定处理器和芯片集,而另一服务器计算机106B可以利用不同处理器和芯片集。还可以在不同年份期间制造服务器计算机106A至106N。服务器计算机106A至106N还可以具有安装于其上的不同操作***或其它软件组件。就这点而言,应了解,可使具有许多不同硬件和软件配置的服务器计算机106A至106N在服务器提供商网络102中可用以用来按本文描述的方式使用。
当部署组件110接收启动请求108时,部署组件110可以利用放置策略112和服务器配置数据存储区114(“数据存储区114”)的内容以确定在服务器计算机106A至106N的哪个上实例化新虚拟机实例。数据存储区114包括识别在服务提供商网络102中可用的服务器计算机106A至106N的数据以及描述每个服务器计算机的基础设施平台的细节的服务器计算机106A至106N的每个的数据。例如,数据存储区114可以存储识别服务器计算机106中的硬件和软件组件的类型和制造商,硬件组件的制造的年份,软件组件的版本,特定服务器计算机106的使用的价格以及其它类型的硬件和/或软件属性的服务器计算机106A至106N的每个的数据。应了解,这些实例仅仅具说明性且描述服务器计算机106A至106N的其它硬件和/或软件属性的数据可以维持于数据存储区114中。
部署组件110利用放置策略112和存储于数据存储区114中的数据以识别满足用户指定的放置策略112的一个或多个服务器计算机106。一旦已识别满足放置策略112的一个或多个服务器计算机106,接着部署组件110可以在匹配的服务器计算机或服务器计算机106上启动请求的虚拟机实例104或其它类型的计算资源。
在另一实施中,部署组件110可以响应于具有多种类型的信息的启动请求108。例如,如果发现服务器106A是放置策略112的匹配者,那么可以响应于启动请求108而返回描述利用服务器计算机106A的价格的数据。接着客户可以利用价格信息以决定是否在服务器计算机106A上启动虚拟机实例104A。还可以响应于启动请求108而返回其它信息。
通过提供放置策略112(诸如上文描述的放置策略),服务提供商网络102的客户可以影响在具有不同硬件和软件配置的许多服务器计算机106之中的哪里实例化特定虚拟机实例104或其它类型的计算资源。关于用于虚拟机实例104的用户影响的放置的上文描述的机制的额外细节可以在名为“USER-INFLUENCEDPLACEMENTOFVIRTUALMACHINES”,在2012年11月16日申请且其全部内容以引用的方式明确并入本文中的美国专利申请案第13/679,451号中发现。
图2和图3图示本文公开的一个实施方案的方面,其中允许服务提供商网络102的客户彼此共享放置策略112。例如,当客户已确定对于选择用于执行特定类型的计算工作负荷的硬件平台,特定放置策略112运作良好时,这是可取的。
计算工作负荷(其在本文中可称作“工作负荷”)是可以执行于虚拟机上的应用程序、虚拟机图像、虚拟设备或另一类型的程序。如果放置策略112使得工作负荷放置于针对工作负荷最优化的服务器计算机106上,那么放置策略112可以被认为与特定类型的工作负荷运作良好。无论是否针对工作负荷最优化服务器计算机106可能基于由服务提供商网络102的客户定义的一个或多个因素,其包括(但不限于)成本、应用程序性能、吞吐量、使用的虚拟机实例104的数量和/或其它因素或因素组合。
如果对于特定工作负荷,服务提供商网络102的客户确定特定放置策略112运作良好,那么客户可能喜欢与其他客户共享放置策略112,使得其他客户不必从事于针对特定工作负荷创建最佳放置策略112的有时困难的任务。在一些实施方案中,当其他客户使用共享的放置策略112时,可以补偿共享放置策略112的客户(这样的客户在本文中可以称作“发布者”)。下文将关于图2和图3提供关于用于共享放置策略112的本文公开的多种实施方案的额外细节。
如图2中所示,服务提供商网络102在一个实施方案中包括放置策略提交界面界面204(“界面204”)。界面204可以是服务提供商网络102的客户202可以提交将与其他客户202共享的放置策略112所通过的用户界面(“UI”)、API或另一类型的界面。当客户将放置策略112提交至界面204时,客户还可以提供工作负荷描述符206。工作负荷描述符206定义提交的放置策略112被配置来使用所处的工作负荷的类型。如上文提及,工作负荷是可以执行于虚拟机上的应用程序、虚拟机图像、虚拟设备或另一类型的程序。提交放置策略112的客户202还可以提供发布者识别符(“ID”)208。发布者ID208识别共享放置策略112的客户202。
在图2中所示的实例中,例如,客户202A已将放置策略112A、对应的工作负荷描述符206A和识别客户202A的发布者ID208A提交至界面204。类似地,客户202B已将放置策略112B、对应工作负荷描述符206B和识别客户202B的发布者ID208B提交至界面204。界面204从客户202A和202B接收提交且将提交数据存储于放置策略数据存储区210(“数据存储区210”)中。
数据存储区210是数据库或其它类型的存储***,其被配置来存储由服务提供商网络102的客户202提交的放置策略112。如将在下文更详细地描述,数据存储区210还可以存储以其它方式识别的放置策略112。在一个特定实施方案中,数据存储区210包括具有字段212A至212E的记录。利用字段212E以存储放置策略112或识别放置策略112的数据。利用字段212D以存储对应于字段212E中识别的放置策略112的工作负荷描述符206A。利用字段212A以存储识别提交字段212E中识别的放置策略112的客户202的数据。。
如将在下文更详细地描述,还可以允许服务提供商网络102的客户202提供对放置策略112和对放置策略112的发布者的评分。举例而言,可以允许服务提供商网络102的客户202以1-5、1-10、1-100的标度或以另一方式对放置策略112和/或特定放置策略112的发布者评分。在这些实施方案中,数据存储区210还可以被配置来存储定义对特定放置策略112和/或发布者的评分的数据。例如,可以利用字段212C以存储定义对字段212E中识别的放置策略112的评分的数据。可以利用字段212B以存储定义对字段212E中识别的放置策略112的发布者的评分的数据。应了解,图2中所示的数据结构仅仅具说明性且可以利用其它类型的数据结构、存储***和技术以存储上文描述的数据和/或其它相关数据。
服务提供商网络102在一个实施方案中还可以被配置有放置策略识别组件214(“识别组件214”)。识别组件214提供服务提供商网络102的客户可以获得适合于在特定类型的工作负荷下使用的放置策略112所通过的UI、API或另一机制。例如,在图2中所示的实例中,客户202C已利用合适的计算装置以将放置策略请求216(“请求216”)传输至识别组件214。请求216包括识别客户202C正寻找合适的放置策略112所针对的工作负荷的工作负荷描述符206C。
响应于接收请求216,识别组件214搜索用于适合于由工作负荷描述符206B识别的工作负荷的放置策略112的身份的数据存储区210的内容。例如,识别组件214可以搜索匹配请求216中提交的工作负荷描述符202C的工作负荷描述符的字段212。在一些实施方案中,识别组件214还可以响应于请求216而利用存储于数据存储区210中的一些其它数据来选择放置策略112。例如,如果对于工作负荷描述符206C发现多个匹配者,那么识别组件214可以选择具有存储于字段212C中的最高评分的匹配放置策略112。举另一实例而言,识别组件214可以选择具有如字段212B中反映的最高发布者评分的放置策略112。还可以利用其它机制以响应于请求216而选择放置策略112来返回。
在图2中所示的实例中,识别组件214已选择如适合于由工作负荷描述符206B识别的工作负荷的放置策略112B。相应地,识别组件214已响应于请求216而返回放置策略112B或放置策略112B的参考。接着客户202C利用返回的放置策略112B以按上文关于图1所讨论的方式影响用于处理由工作负荷描述符206B描述的工作负荷的虚拟机的放置。还如上文提及,可以对放置策略112B至客户202C的供应补偿返回的放置策略112B的发布者(在这个情况下,客户202B)。对于放置策略112由其他客户202使用,还可以其它方式补偿放置策略112的发布者。
如上文提及,服务提供商网络102的客户202在一些实施中可以提交对放置策略112和/或对放置策略的发布者的评分。在这些实施中,识别组件214或服务提供商网络102中或外部的另一组件可以提供客户202或其他用户可以提交对放置策略112和/或放置策略112的发布者的评分所通过的合适的UI、API或其它类型的界面。在图2中所示的实例中,例如,服务提供商网络102的客户202D已提交对放置策略112的评分218和对放置策略112的发布者的评分220。还如上文提及,提供的评分218和220可以存储于数据存储区210中或另一位置中。供应的评分218和220还可以被平均、加权和/或以其它方式修改以提供对放置策略112和/或放置策略112的发布者的适当评分测量。
应了解,还可以其它方式利用和/或显露存储于数据存储区210中的数据。例如,可以通过网站或其它类型的用户界面显露对多种放置策略112的放置策略评分218。类似地,还可以类似方式显露放置策略112的发布者的发布者评分220。这个信息在选择用于特定类型的工作负荷的放置策略112时可以辅助服务提供商网络102的客户202。还可以其它方式利用这个信息。
如上文简要地提及,放置策略112可以除了由客户202手动提交之外的的方式添加至数据存储区210。在一个特定实施方案中,例如,服务提供商网络102内的组件(诸如部署组件110)可以维持关于在某些类型的工作负荷下使用的特定放置策略112的历史数据。在较大数量或百分比的特定类型的工作负荷下使用的放置策略112可以添加至数据存储区210。例如,部署组件110可以确定在特定类型的工作负荷下65%的时间利用特定放置策略112。响应于这样的确定,部署组件110可以使得放置策略112以上文描述的方式添加至数据存储区210来供应至客户。可以利用多种技术(诸如机器学***台。接着可以利用这个信息以确定用于特定工作负荷的最佳放置策略112。
还可以其它方式利用定义特定放置策略112在某个类型的工作负荷下利用的频率的信息。例如,这个信息可以由服务提供商网络102的运营商利用以鼓励或阻止客户网络102中某些虚拟机实例类型的使用。特定来说,如果服务提供商网络102确定客户202已请求使用指定很少使用或不适当的硬件类型的放置策略112启动虚拟机实例,那么服务提供商网络102中的组件可以将历史数据呈现给客户且鼓励客户利用不同放置策略112来启动虚拟机实例。
在一些实施方案中,数据存储区210中识别的放置策略112可以被“基准测试”以选择用于特定工作负荷的最佳放置策略112。例如,工作负荷可以实例化于利用不同放置策略112的不同基础设施类型上。接着可以测量不同基础设施类型上的工作负荷的性能,且为工作负荷指定具有最高性能的基础设施类型的放置策略112可以被选择为最佳放置策略112。性能可以测量为绝对计算性能,测量为性价比,仅仅基于成本测量或以另一方式测量。可以上文所描述的方式,响应于对用于特定工作负荷的放置策略112的请求216而选择用于所述工作负荷的最佳放置策略112。
图3是根据本文公开的一个实施方案的示出用于共享放置策略112和用于对放置策略112和放置策略112的发布者评分的一个说明性例行程序300的流程图。应了解,本文关于图3和其它图描述的逻辑操作可以实施为(1)运行于计算***上的一系列计算机实施的动作或程序模块和/或实施为(2)计算***内的互连的机器逻辑电路或电路模块。本文描述的多种组件的实施是一个取决于计算***的性能和其它要求的选择问题。相应地,本文描述的逻辑操作不同地称作操作、结构装置、动作或模块。这些操作、结构装置、动作和模块可以软件,以固件,以特殊用途数字逻辑和其任何组合实施。还应了解,可以执行比图中所示和本文中所描述的操作更多或更少的操作。这些操作还可以并行或以除了本文所描述的顺序之外的不同顺序执行。
例行程序300开始于操作302,其中服务提供商网络102提供用于允许客户202共享放置策略112的上文所描述的提交界面204。如上文所提及,提交界面204可以是客户202或其他用户可以将放置策略112提交至服务提供商网络102所通过的UI(诸如网站)、API或另一类型的界面。
例行程序300从操作302继续进行至操作304,其中提交界面204接收放置策略112。如上文提及,工作负荷描述符206还可以与每个提交的放置策略112一起提供,其定义提交的放置策略112适合于使用所处的一个或多个工作负荷。提交还可以包括识别提交放置策略112的用户的发布者ID208。还可以提供其它信息。例行程序300从操作304继续进行至操作306,其中提交界面204将提交的放置策略112和其它关联数据(诸如工作负荷描述符206)存储于数据存储区210中。
例行程序300从操作306继续进行至操作308,其中服务提供商网络102内的识别组件214或另一组件接收放置策略112的评分218。接着评分218以上文所描述的方式存储于数据存储区210中。还如上文所提及,评分218可以在存储于数据存储区210中之前或之后被平均、加权或以别的方式处理。对放置策略112的发布者的评分220可以操作310处的类似方式接收和存储。
例行程序300从操作310继续进行至操作312,其中识别组件214接收对用于特定工作负荷的放置策略112的请求216。如上文提及,工作负荷可以由请求216中的工作负荷描述符206识别。响应于接收请求216,例行程序300从操作312继续进行至操作314,其中识别组件214利用供应的工作负荷描述符206和数据存储区210的内容以选择适合于请求216中识别的工作负荷的放置策略112。如果可以识别合适的放置策略112,那么识别组件214在操作316处响应于请求216而返回所选择的放置策略112。还可以响应于请求216而返回与利用所选择的放置策略112执行虚拟机实例或另一类型的工作负荷关联的成本。接着例行程序300从操作316继续进行至操作318,其在此结束。
图4是根据本文公开的一个实施方案的示出用于利用与供应商无关的放置策略408以选择用于实例化虚拟机实例104的服务提供商网络102的本文公开的一个机制的方面的***图。在图4中所示的实施方案中,不同供应商操作不同服务提供商网络102A至102N。服务提供商网络102A至102N的每个可以提供用于计算资源(诸如虚拟机实例104)的按需使用的上文描述的一些或所有功能。但是,服务提供商网络102A至102N可以提供具有不同配置且利用不同硬件平台实施的不同类型的计算资源。操作服务提供商网络102A至102N的供应商还可以针对计算资源的使用收取不同价格。
在图4中所示的实施方案中,可以利用实例放置服务402以辅助用户选择用于执行虚拟机实例104或其它类型的计算资源的服务提供商网络102A至102N。为了提供这个功能,实例放置服务402提取服务提供商网络102A至102N的各个的实例可用性数据404和实例定价数据406。实例可用性数据404描述虚拟机实例104类型和/或用于执行从每个服务提供商网路102A至102N得到的虚拟机实例类型的硬件平台。实例可用性数据404还可以描述从各个服务提供商网络102得到的其它类型的可用计算资源。
实例定价数据406描述利用从各个服务提供商网络102得到的多种虚拟机实例类型的价格。实例放置服务402可以在接收启动虚拟机实例104的请求108之前提取实例可用性数据404和实例定价数据406且存储数据404和406以供将来使用。或者,实例放置服务402可以正好在接收启动虚拟机实例104的请求108之后获得实例可用性数据404和实例定价数据406。
在另一实施方案中,实例放置服务402可以在服务提供商网络102中的一个上快速地启动虚拟机实例104。在启动之后,接着实例放置服务402可以获得实例可用性数据404和实例定价数据406。接着可以下文描述的方式利用实例可用性数据404、实例定价数据406和与供应商无关的放置策略408以选择用于虚拟机实例104的服务提供商网络102。如果所选服务提供商网络102并不相同于其上启动虚拟机实例104的服务提供商网络102,那么虚拟机实例104可以迁移至所选服务提供商网络102。可以利用多种机制以迁移虚拟机实例104,其包括(但不限于)其中保存、迁移和重新启动执行虚拟机实例104的状态的“实时”迁移和其中在迁移之前关闭执行虚拟机实例104的“重新启动”迁移。还可以利用其它迁移技术。
如图4中所示,实例放置服务402还可以接收启动请求108。在这个实施方案中,启动请求108包括与供应商无关的放置策略408。如上文简要地讨论,与供应商无关的放置策略408是以独立于任何特定服务提供商(即,供应商)和/或服务提供商网络102(与其无关)的方式定义的放置策略112。可以利用适当的可扩展标记语言(“XML”)方案或以使用其它技术的另一方式定义与供应商无关的放置策略408。
在一些实施中,启动请求108还包括一个或多个放置偏好410。放置偏好410可以指定用于启动请求的虚拟机实例104的优选服务提供商网络102。放置偏好410还可以指定某个服务提供商网络102或网络102并不被利用来启动请求的虚拟机实例104。其它类型的放置偏好410还可以在启动请求108中指定。
响应于接收启动请求108,实例放置服务402可以利用实例可用性数据404、实例定价数据406和与供应商无关的放置策略408以选择用于启动请求的虚拟机实例104的服务提供商网络102A至102N。在一个实施方案中,被选择来用于启动虚拟机实例104的服务提供商网络102是可以满足与供应商无关的放置策略408的参数且还可以最低成本下执行虚拟机实例104的服务提供商网络102。在其它实施方案中还可以其它方式使用实例可用性数据404、实例定价数据406和/或与供应商无关的放置策略408选择用于实例化请求的虚拟机实例104的服务提供商网络102。就这点而言,应了解,当选择用于实例化请求的虚拟机实例104的服务提供商网络102时,还可以利用其它因素,诸如(但不限于)地理位置、网络带宽和/或延迟、服务历史、客户供应的评分和/或每个服务提供商网络102的历史可服务时间。
为了选择服务提供商网络102,实例放置服务402可能必须将与供应商无关的放置策略408转化为供应商特定的放置策略。就这点而言,启动请求108可以视情况指定与供应商无关的放置策略408的供应商特定的等效物以辅助这个转化。以类似方式,实例放置服务402可能必须执行多种过程以识别从服务提供商网络102A至102N的每个得到的一般等效实例类型。实例放置服务402还可以执行其它类型的过程以识别可以满足与供应商无关的放置策略408中提出的多种参数的服务提供商网络102。
一旦已选择服务提供商网络102,实例放置服务402可以将启动请求412传输至所选服务提供商网络102以实例化请求的虚拟机实例104。在图4中所示的实例中,例如,已选择服务提供商网络102A且相应地,实例放置服务402已将启动请求412传输至服务提供商网络102A中的适当组件(诸如部署组件110)。启动请求412可以传输至由所选服务提供商网络102A显露的适当API或其它类型的界面。
接着所选择的服务提供商网络102A可以利用供应的与供应商无关的放置策略408以实例化服务提供商网络102A中的请求的虚拟机实例104。在一些实施方案中,实例放置服务402还可以在所选择的服务提供商网络102A中请求实例的启动之后将启动确认414传输至启动请求108的发送者。实例放置服务402还可以将用于在所选择的服务提供商网络102中执行请求实例104的估计成本416传输至启动请求108的发送者。在其它实施方案中,其它类型的信息还可以返回至启动请求108的发送者。
在一个实施中,与供应商无关的放置策略408可以直接提交至各个服务提供商网络102A至102N。在这个实施中,每个服务提供商网络102A至102N中的组件可以接收与供应商无关的放置策略408且响应于此,返回关于服务提供商网络102是否具有适当硬件平台以满足与供应商无关的放置策略408的指示。如果服务提供商网络102确实具有适当硬件平台,那么还可以返回实例定价数据406,其指示利用服务提供商网络102以实例化由与供应商无关的放置策略408定义的资源的估计成本。接着提交与供应商无关的放置策略408的客户可以利用这个数据以决定是否利用特定服务提供商网络102。
应了解,实例放置服务402可以由还操作服务提供商网络102A至102N中的一个的实体操作。这个场景中,实例放置服务402可以操作于服务提供商网络102A至102N中的一个内操作的计算资源上。在其它实施方案中,实例放置服务402由不与服务提供商网络102A至102N的运营商相关的第三方操作。实例放置服务402还可以操作于由一个或多个服务提供商网络102A至102N的客户拥有的网络内。在其它实施方案中,实例放置服务402还可以由其它网络中的其它实体操作。
图5是根据本文公开的一个实施方案的示出用于利用与供应商无关的放置策略408以选择用于实例化虚拟机实例的服务提供商网络102的一个说明性例行程序500的流程图。例行程序500开始于操作502,其中实例放置服务402接收包括与供应商无关的放置策略408的启动请求108。接着例行程序500从操作502继续进行至操作504,其中实例放置服务402从服务提供商网络102A至102N提取实例可用性数据404。如上文提及,实例放置服务402可以在接收启动请求108时(如图5中所示)或在接收启动请求108时之前提取实例可用性数据404。如果在接收启动请求108时之前提取实例可用性数据404,那么实例可用性数据404可以缓存于适当数据存储区中以用于在接收启动请求108时使用。
例行程序500从操作504继续进行至操作506,其中实例放置服务402从服务提供商网络102A至102N提取实例定价数据406。如上文提及,实例放置服务402可以在接收启动请求108时(如图5中所示)或在接收启动请求108时之前提取实例定价数据406。如果在接收启动请求108时之前提取实例定价数据406,那么实例定价数据406可以缓存于适当数据存储区中以用于在接收启动请求108时使用。
例行程序500从操作506继续进行至操作508,其中实例放置服务402利用实例可用性数据404,、实例定价数据406和与供应商无关的放置策略408以选择用于启动在启动请求108中指定的虚拟机实例104的服务提供商网络102A至102N。如上文提及,可以选择用于启动虚拟机实例104的服务提供商网络102,其既满足与供应商无关的放置策略408中提出的参数,而且还可以最低成本(相比于其它服务提供商网络102)执行虚拟机实例104。在其它实施方案中还可以其它方式使用实例可用性数据404、实例定价数据406和/或与供应商无关的放置策略408选择用于实例化启动请求108中请求的虚拟机实例104的服务提供商网络102。
例行程序500从操作508继续进行至操作510,其中实例放置服务402将启动请求412传输至被选择来实例化请求的虚拟机实例104的服务提供商网络102。响应于此,所选服务提供商网络102利用与供应商无关的放置策略408以实例化新虚拟机实例104。在操作512,实例放置服务402可还可以将启动确认414和/或估计成本416提供至启动请求108的发送者。例行程序500从操作512继续进行至操作514,其在此结束。
图6是根据本文公开的一个实施方案的示出用于利用包括动态评估参数604的放置策略112以修改客户群队602中的虚拟机实例104的本文公开的一个机制的方面的***图。在图6中所示的实施方案中,可以定义包括动态评估参数604的放置策略112。如上文简要地讨论,动态评估参数604是在评估放置策略112时动态定义的参数。例如,可以在评估放置策略112时从服务提供商网络102内部的数据源606提取一个或多个动态评估参数604的值。从服务提供商网络102内部的数据源606提取的值可以包括(例如)关于服务提供商网络102内可用的虚拟机实例104的当前定价的值。部署组件110可以利用API调用或其它适当机制从内部数据源606和/或外部数据源608提取数据。
在一些实施中,还可以在评估放置策略112时从服务提供商网络102外部的数据源608提取一个或多个动态评估参数604的值。在一些实施方案中,外部数据源608可以由服务提供商网络102的客户操作且提供关于服务提供商网络102的客户的值。例如,数据源608可以显露关于由客户进行的本地网络的操作的数据。以此方式,可以定义包括关于客户的本地网络的状态的动态评估参数604的放置策略112。具体地说,如果客户的本地网络的利用率超过某个阈值,那么可以定义在服务提供商网络102中实例化虚拟机实例104的放置策略112。类似地,如果客户的本地网络的利用率下降至某个阈值以下,那么可以定义在服务提供商网络102中解除缩放虚拟机实例104的放置策略112。还可以定义包括从外部数据源608得到的其它类型的数据的其它类型的放置策略112。
一旦已接收用于放置策略112的动态评估参数604的值,可以评估放置策略112。取决于评估结果,可以对由服务提供商网络102的客户操作的虚拟机实例104的群队602进行多种修改。例如,如图6中所示,执行于特定硬件平台610A上的虚拟机实例104A可以迁移至不同硬件平台610B。如上文所讨论,可以利用多种技术以执行这样的迁移,其包括(但不限于)实时和重新启动迁移。在另一实例中,新虚拟机实例104可以添加至执行于由包含动态评估参数604的放置策略112指定的硬件平台上的群队602。还可以基于动态评估参数604的评估而进行对群队602的其它类型的修改。
在一些实施方案中,定期地更新和利用动态评估参数604的值以重新评估放置策略112。接着取决于放置策略112的评估结果而相应地修改客户群队602中的虚拟机实例104。以此方式,可以根据放置策略112中提出的参数在持续基础上进行对客户群队602中的实例的修改。例如,客户群队602中的虚拟机实例104可以取决于从内部数据源606提取的数据(例如,成本)和/或从外部数据源608提取的数据(例如,本地客户网络的状态)而连续地迁移至不同硬件平台。就这点而言,可以利用上文描述的多种迁移技术。某些实施方案还可以提供通过利用已知具有循环性能变化的历史和/或实时约束参数而动态地引起实时定价趋势的放置策略112。
图7是根据本文公开的一个实施方案的示出用于利用包括动态评估参数604的放置策略112以修改客户群队602中的虚拟机实例104的一个说明性例行程序700的流程图。例行程序700开始于操作702,其中部署组件110接收具有动态评估参数604的放置策略112。例行程序700从操作702继续进行至操作704,其中部署组件110从任何外部数据源608提取值(如果指定的话)。接着例行程序700从操作704继续进行至操作706,其中部署组件101从任何内部数据源606提取值(如果指定的话)。
例行程序700从操作706继续进行至操作708,其中部署组件110利用分别从内部数据源606和外部数据源608提取的动态评估参数604的值评估放置策略112。如果基于提取的值,部署组件110确定未满足放置策略112中的准则,那么例行程序700从操作710继续进行至操作712。在操作712,在例行程序700继续进行到返回操作704之前允许过去一些时间段,其中在一些时间段之后,可以再次以上文描述的方式提取和评估动态评估参数604的值。
如果在操作710,部署组件110确定已满足放置策略112中提出的准则,那么例行程序700从操作710继续进行至操作714。在操作714,部署组件110使得可对群队602进行一个或多个修改。例如,如上文所描述,部署组件110可以上文描述的方式将虚拟机实例104从一个硬件平台迁移至不同硬件平台。或者,部署组件110可以使用放置策略112中指定的硬件平台实例化群队602中的新虚拟机实例104或其它类型的计算资源。例行程序700从操作714继续进行至操作712,其中可以重复地执行上文描述的提取、评估和修改。
应了解,虽然上文已关于图7图示和描述轮询机制,但是还可以利用其它类型的机制以确定改变值是否可用于动态评估参数604。例如,在其它实施中,部署组件110可以注册来在动态评估参数604改变时接收事件通知。以此方式,可以避免上文关于图7描述的轮询。还可以利用其它机制。
图8是示出包括可以被配置来提供用于虚拟机的用户影响的放置的上文描述的功能的服务提供商网络102的本文公开的实施方案的一个说明性操作环境的***和网络图。如上文简要地讨论,服务提供商网络102可以在永久或按需基础上提供计算资源。由服务提供商网络102提供的计算资源可以包括多种类型的计算资源,诸如数据处理资源、数据存储资源、联网资源、数据通信资源等等。
每个类型的计算资源可以是通用的或可以在许多特定配置中可用。例如,如上文简要地描述,数据处理资源在许多不同配置中可用为虚拟机实例104。虚拟机实例104可以被配置来执行包括网络服务器、应用程序服务器、媒体服务器、数据库服务器和其它类型的应用程序的应用程序。数据存储资源可以包括文件存储装置、块存储装置等等。
还如上文简要地提及,由服务提供商网络102提供的计算资源在一个实施中由一个或多个数据中心802A至802N(其在本文中可以单数地称为“一个数据中心802”或复数地称为“若干数据中心802”)启用。数据中心802是被利用来容纳和操作计算机***和关联组件的设施。数据中心802通常包括冗余和备用电源、通信、冷却和安全***。数据中心802还可以位于地理上不同的位置中。下文将关于图9描述实施用于虚拟机的用户影响的放置的本文公开的功能的方面的数据中心802的一个说明性配置。
可以鉴于以下条例描述本公开内容的实施方案:
1.一种具有存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在由计算机执行时使得计算机:
存储多个放置策略,所述放置策略包括被配置来用于在影响虚拟机实例在服务提供商网络中的特定硬件平台上的放置中使用的数据;
接收对适合于在识别的虚拟机图像下使用的放置策略的请求;
使用存储的数据以选择用于在识别其上执行识别的虚拟机图像的服务提供商网络中的硬件平台中使用的放置策略;且
响应于请求而返回所选择的放置策略。
2.根据第1条所述的计算机可读存储介质,其中存储的数据进一步包括对多个放置策略的用户提供的评分,且其中利用对多个放置策略的用户提供的评分以选择用于在识别的虚拟机图像下使用的放置策略。
3.根据第1条所述的计算机可读存储介质,其中存储数据进一步包括对多个放置策略的发布者的用户提供的评分,且其中利用对多个放置策略的发布者的用户提供的评分以选择适合于在识别的虚拟机图像下使用的放置策略。
4.根据第1条所述的计算机可读存储介质,其中存储的多个放置策略的一个或多个由服务提供商网络的客户提供。
5.根据第1条所述的计算机可读存储介质,其中通过定义服务提供商网络中的放置策略的历史使用的数据的分析识别存储的多个放置策略的一个或多个。
6.根据第1条所述的计算机可读存储介质,其进一步具有存储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执行时使得计算机利用所选择的放置策略以影响识别的虚拟机图像在服务提供商网络中的特定硬件平台上的放置。
7.一种用于共享在影响虚拟机实例在服务提供商网络中的硬件平台上的放置中使用的放置策略的计算机实施的方法,所述方法包括执行如下计算机实施的操作:
存储多个客户提供的放置策略;
接收对用于在指定计算工作负荷下使用的放置策略的请求;且
利用所述存储的放置策略以选择用于在识别其上执行所述指定计算工作负荷的所述服务提供商网络中的硬件平台中使用的放置策略。
8.根据第7条所述的计算机实施的方法,其中计算工作负荷包括虚拟机图像。
9.根据第7条所述的计算机实施的方法,其进一步包括存储对多个客户提供的放置策略的一个或多个客户提供的评分。
10.根据第9条所述的计算机实施的方法,其中还利用对多个客户提供的放置策略的客户提供的评分以选择用于在识别其上执行指定计算工作负荷的服务提供商网络中的硬件平台中使用的放置策略。
11.根据第7条所述的计算机实施的方法,其进一步包括存储多个客户提供的放置策略的发布者的一个或多个客户提供的评分。
12.根据第11条所述的计算机实施的方法,其中还利用多个客户提供的放置策略的发布者的评分以选择用于在识别其上执行指定计算工作负荷的服务提供商网络中的硬件平台中使用的放置策略。
13.根据第7条所述的计算机实施的方法,其进一步包括存储通过定义服务提供商网络中的放置策略的历史使用的数据的分析识别的一个或多个放置策略。
14.根据第7条所述的计算机实施的方法,其进一步包括利用所选择的放置策略以影响工作负荷在服务提供商网络中的特定硬件平台上的放置。
15.一种用于在服务提供商网络中选择用于计算工作负荷的放置策略的计算***,所述***包括:
一个或多个计算机,其被配置来
接收对适合于在所述计算工作负荷下使用的放置策略的请求,且
从由所述服务提供商网络的客户共享的多个放置策略选择用于在所述工作负荷下使用的放置策略。
16.根据第15条所述的***,其中一个或多个计算机被配置来利用所选择的放置策略以影响工作负荷在服务提供商网络中的特定硬件平台上的放置。
17.根据第16条所述的***,其中工作负荷包括虚拟机图像。
18.根据第15条所述的***,其中所选择的放置策略可以进一步从通过定义服务提供商网络中的放置策略的历史使用的数据的分析识别的一个或多个放置策略选择。
19.根据第15条所述的***,其中进一步基于多个放置策略的发布者的评分识别所选择的放置策略。
20.根据第15条所述的***,其中进一步基于多个放置策略的评分识别所选择的放置策略。
21.一种具有存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在由计算机执行时使得计算机:
接收实例化虚拟机实例的请求,所述请求包括与供应商无关的放置策略;
提取多个服务提供商网络的实例可用性数据,实例可用性数据描述虚拟机实例类型和用于执行从服务提供商网络的各个得到的虚拟机实例类型的硬件平台;
提取多个服务提供商网络的实例定价数据,实例定价数据描述用于在服务提供商网络中执行虚拟机实例类型的价格;且
利用与供应商无关的放置策略、实例可用性数据和实例定价数据以选择用于实例化虚拟机实例的服务提供商网络中的一个。
22.根据第21条所述的计算机可读存储介质,其中所选择的服务提供商网络中的一个包括供应用于操作虚拟机实例的最低价格且还满足与供应商无关的放置策略中提出的一个或多个参数的服务提供商网络。
23.根据第21条所述的计算机可读存储介质,其中在接收实例化虚拟机实例的请求之前提取多个服务提供商网络的实例可用性数据。
24.根据第21条所述的计算机可读存储介质,其中响应于接收实例化虚拟机实例的请求而提取多个服务提供商网络的实例可用性数据。
25.根据第21条所述的计算机可读存储介质,其中在已于服务提供商网络中的一个上启动虚拟机实例之后提取多个服务提供商网络的实例可用性数据。
26.根据第21条所述的计算机可读存储介质,其中在接收实例化虚拟机实例的请求之前提取实例定价数据。
27.根据第21条所述的计算机可读存储介质,其中响应于接收实例化虚拟机实例的请求而提取实例定价数据。
28.根据第21条所述的计算机可读存储介质,其中在已于服务提供商网络中的一个上启动虚拟机实例之后提取实例定价数据。
29.根据第21条所述的计算机可读存储介质,其进一步具有存储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执行时使得计算机将请求传输至所选择的服务提供商网络中的一个来实例化虚拟机实例。
30.根据第21条所述的计算机可读存储介质,其进一步具有存储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执行时使得计算机返回用于响应于实例化虚拟机实例的请求而在所选择的服务提供商网络中的一个上执行虚拟机实例的估计成本。
31.一种用于选择用于执行虚拟机实例的多个服务提供商网络中的一个的计算机实施的方法,所述方法包括执行以下计算机实施的操作:
获得多个服务提供商网络的实例可用性数据,实例可用性数据描述一个或多个虚拟机实例类型和用于执行虚拟机实例类型的硬件平台;
获得多个服务提供商网络的实例定价数据,实例定价数据描述利用虚拟机实例类型的价格;且
利用实例可用性数据、实例定价数据和与供应商无关的放置策略以选择用于执行虚拟机实例的多个服务提供商网络中的一个。
32.根据第31条所述的计算机实施的方法,其中与供应商无关的放置策略包括被配置来用于在影响虚拟机实例在服务提供商网络中的特定硬件平台上的放置中使用的与供应商无关的数据。
33.根据第31条所述的计算机实施的方法,其中所选择的服务提供商网络中的一个包括供应用于执行虚拟机实例的最低价格且还满足与供应商无关的放置策略中提出的一个或多个参数的服务提供商网络。
34.根据第32条所述的计算机实施的方法,其中进一步考虑指定用于执行虚拟机实例的优选服务提供商网络的一个或多个放置偏好而选择用于执行虚拟机实例的服务提供商网络。
35.根据第32条所述的计算机实施的方法,其中进一步考虑指定不应被利用来执行虚拟机实例的服务提供商网络的一个或多个放置偏好而选择用于执行虚拟机实例的服务提供商网络。
36.根据第32条所述的计算机实施的方法,其中在接收执行虚拟机实例的请求之前获得实例可用性数据和实例定价数据。
37.根据第31条所述的计算机实施的方法,其中响应于接收执行虚拟机实例的请求而获得实例可用性数据和实例定价数据。
38.根据第32条所述的计算机实施的方法,其进一步包括使得虚拟机实例执行于所选择的服务提供商网络中的一个上。
39.一种用于选择用于执行虚拟机实例的服务提供商网络的计算***,所述***包括:
一个或多个计算机,其被配置来:接收执行虚拟机实例的请求,所述请求包括与供应商无关的放置策略;且利用与供应商无关的放置策略以选择用于执行虚拟机实例的多个服务提供商网络中的一个。
40.根据第39条所述的***,其中所选择的多个服务提供商网络中的一个包括可以满足与供应商无关的放置策略中指定的一个或多个参数且还以多个服务提供商的最低成本执行虚拟机实例的服务提供商网络。
41.根据第40条所述的***,其中一个或多个计算机被配置来基于从服务提供商网络获得的实例可用性数据确定服务提供商网络是否可以满足与供应商无关的放置策略中指定的一个或多个参数。
42.根据第40条所述的***,其中一个或多个计算机被配置来识别可以基于从服务提供商网络获得的实例定价数据以最低价格执行虚拟机实例的服务提供商网络。
43.一种具有存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在由计算机执行时使得计算机:
接收包括一个或多个动态评估参数的放置策略;
从服务提供商网络外部的一个或多个源提取动态评估参数的一个或多个值;
至少利用从服务提供商网络外部的一个或多个源提取的动态评估参数的值评估放置策略;且
基于放置策略的评估修改服务提供商网络中操作的客户群队中的一个或多个虚拟机实例。
44.根据第43条所述的计算机可读存储介质,其中修改客户群队中的一个或多个虚拟机实例包括将客户群队中的虚拟机实例从第一硬件平台迁移至服务提供商网络中的第二硬件平台。
45.根据第43条所述的计算机可读存储介质,其中修改客户群队中的一个或多个虚拟机实例包括在由放置策略指定的硬件平台上启动服务提供商网络中的虚拟机实例。
46.根据第43条所述的计算机可读存储介质,其进一步具有存储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执行时使得计算机定期地重复提取、评估和修改操作。
47.根据第43条所述的计算机可读存储介质,其进一步具有存储于其上的计算机可执行指令,所述计算机可执行指令在由计算机执行时使得计算机从服务提供商网络内部的一个或多个数据源提取动态评估参数的一个或多个值。
48.根据第35条所述的计算机可读存储介质,其中进一步基于从服务提供商网络内部的一个或多个数据源提取的动态评估参数的值评估放置策略。
49.根据第35条所述的计算机可读存储介质,其中响应于接收指示一个或多个动态评估参数已改变的事件的通知而评估放置策略。
50.一种用于使用指定一个或多个动态评估参数的放置策略修改虚拟机实例群队中的一个或多个虚拟机实例的计算机实施的方法,所述方法包括执行以下计算机实施的操作:
提取由放置策略指定的一个或多个动态评估参数的值;
至少部分基于动态评估参数的提取值评估放置策略;且
基于放置策略的评估修改群队中的一个或多个虚拟机实例。
51.根据第50条所述的计算机实施的方法,其中一个或多个动态评估参数的值的至少一个从提供虚拟机实例的服务提供商网络外部的数据源提取。
52.根据第51条所述的计算机实施的方法,其中服务提供商网络外部的数据源由与一个或多个虚拟机实例关联的服务提供商网络的客户提供。
53.根据第50条所述的计算机实施的方法,其中一个或多个动态评估参数的值的至少一个从提供虚拟机实例的服务提供商网络内部的数据源提取。
54.根据第50条所述的计算机实施的方法,其中修改群队中的一个或多个虚拟机实例包括用执行于第二硬件平台上的第二虚拟机替换执行于第一硬件平台上的群队中的第一虚拟机实例。
55.根据第50条所述的计算机实施的方法,其中修改群队中的一个或多个虚拟机实例包括创建执行于由放置策略指定的硬件平台上的群队中的新虚拟机实例。
56.根据第50条所述的计算机实施的方法,其进一步包括定期地重复提取、评估和修改操作。
57.一种用于利用指定一个或多个动态评估参数的客户供应的放置策略修改虚拟机实例群队的计算***,所述***包括:
一个或多个计算机,其被配置来
通过提取动态评估参数的值评估客户供应的放置策略,且
基于客户供应的放置策略的评估而修改群队中的一个或多个虚拟机实例。
58.根据第57条所述的***,其中动态评估参数的值的至少一个从实施虚拟机实例的服务提供商网络外部的数据源提取。
59.根据第58条所述的***,其中服务提供商网络外部的数据源由服务提供商网络的客户提供。
60.根据第57条所述的***,其中动态评估参数的值的至少一个从提供虚拟机实例的服务提供商网络内部的数据源提取。
61.根据第57条所述的***,其中修改群队中的一个或多个虚拟机实例包括用执行于第二硬件平台上的第二虚拟机替换执行于第一硬件平台上的群队中的第一虚拟机实例。
62.根据第57条所述的***,其中修改群队中的一个或多个虚拟机实例包括创建执行于由放置策略指定的硬件平台上的群队中的新虚拟机实例。
63.根据第57条所述的***,其中一个或多个计算机进一步被配置来定期地重复评估和修改操作。
服务提供商网络102的客户和其他用户可以使用合适的客户计算***801经由WAN804访问由服务提供商网络102提供的计算资源。虽然在图8中图示WAN804,但是应了解,可以利用局域网(“LAN”)、因特网或将数据中心802连接至远程客户和其他用户的技术中所知的任何其它联网拓扑。还应了解,还可以利用这样的网络的组合。
图9是根据本文公开的一个实施方案的图示实施用于虚拟机的用户影响的放置的本文公开的概念和技术的方面的数据中心802的一个配置的计算***。图9中所示的实例数据中心802包括用于提供计算资源(诸如上文描述的计算资源)的若干服务器计算机902A至902F(其在本文中可以单数地称作“一个服务器计算机902”或复述地称作“若干服务器计算机902”)。
服务器计算机902可以是被适当地配置来用于提供本文描述的计算资源的标准塔式或机架安装式服务器计算机。例如,在实施中,服务器计算机902被配置来提供计算资源908A至908N。如上文提及,计算资源908可以是数据处理资源,诸如虚拟机实例104、数据存储资源、数据库资源、联网资源等等。一些服务器902还可以被配置来执行能够实例化和/或管理计算资源的资源管理器904。在虚拟机实例104的情况下,例如,资源管理器904可以是被配置来在(例如)单个服务器计算机902上实现多个虚拟机实例104的执行的管理程序或另一类型的程序。
图9中所示的数据中心902还包括可以被保留用来执行用于管理数据中心802、服务器计算机902和计算资源的操作的多种软件组件的服务器计算机902F。在一些实施(诸如上文描述的实施)中,服务器计算机902F还可以被配置来执行放置策略识别组件214、实例放置服务402、部署组件110和/或本文描述的其它软件组件。还可以利用数据中心802内的其它计算***以执行这些和其它组件。还可以利用其它配置。
在图9中所示的实例数据中心802中,利用适当LAN906以互连服务器计算机902A至902F。LAN906还连接至图8中所示的WAN804。应了解,已极大地简化图1至图9中所示的配置和网络拓扑且可以利用更多计算***、网络和联网装置以互连本文公开的多种计算***且提供上文描述的功能。适当负载平衡装置或软件模块还可以被利用来使数据中心802A至802N的每个之间,每个数据中心802中的服务器计算机902A至902F的每个之间和可能地,数据中心802的每个中的计算资源之间的负载平衡。应了解,关于图9描述的数据中心802仅仅具说明性且可以利用其它实施。
图10示出能够执行用于虚拟机实例104的用户影响的放置的上文描述的程序组件的计算机1000的实例计算机架构。图10中所示的计算机架构图示常规服务器计算机、工作站、台式计算机、膝上型计算机、平板计算机、网络设备、个人数字助理(“PDA”)、电子阅读器、数字蜂窝电话或其它计算装置且可以被利用来执行本文呈现的软件组件的任何方面。例如,图10中所示的计算机架构可以被利用来实施上文关于图1至图6描述的多种组件。
计算机1000包括基板1002或“母板”,其为印刷电路板,众多组件或装置可以通过***总线或其它电通信路径连接至所述印刷电路板。在一个说明性实施方案中,一个或多个中央处理单元(“CPU”)1004连同芯片集1006操作。CPU1004可以是执行计算机1000的操作所必需的算数和逻辑操作的标准可编程处理器。
CPU1004通过经由操纵区分这些状态且改变这些状态的切换元件从一个离散、物理状态转变至下一个来执行操作。切换元件一般可以包括维持两个二元状态中的一个的电子电路(诸如触发器)和基于一个或多个其它切换元件的状态的逻辑组合提供输出状态的电子电路(诸如逻辑门)。这些基本切换元件可以组合以产生更复杂的逻辑电路,其包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等等。
芯片集1006提供CPU1004与基板1002上的组件和装置的剩余物之间的接口。芯片集1006可以提供至用作计算机1000中的主存储器的随机访问存储器(“RAM”)1008的接口。芯片集1006可以进一步提供至计算机可读存储介质(诸如只读存储器(“ROM”)1010或非易失性RAM(“NVRAM”))的接口,所述计算机可读存储介质用于存储帮助启动计算机1000且在多种组件与装置之间传送信息的基本例行程序。ROM1010或NVRAM还可以存储为根据本文描述的实施方案操作计算机1000所必需的其它软件组件。
计算机1000可以使用通过网络(诸如局域网1020)至远程计算装置和计算机***的逻辑连接在联网环境中操作。芯片集1006可以包括用于通过NIC1012(诸如千兆比特以太网适配器)提供网络连接性的功能。NIC1012能够经由网络1020将计算机1000连接至其它计算装置。应了解,多个NIC1012可以存在于计算机1000中而将计算机连接至其它类型的网络和远程计算机***。
计算机1000可以连接至为计算机提供非易失性存储的大容量存储装置1018。大容量存储装置1018可以存储已在本文中更详细地描述的***程序、应用程序、其它程序模块和数据。大容量存储装置1018可以通过连接至芯片集1006的存储控制器1014而连接至计算机1000。大容量存储装置1018可以由一个或多个物理存储单元组成。存储控制器1014可以通过串行附接SCSI(“SAS”)接口、串行高级技术附件(“SATA”)接口、光纤信道(“FC”)接口或用于在计算机与物理存储单元之间物理地连接和传送数据的其它类型的接口与物理存储单元介接。
计算机1000可以通过转换物理存储单元的物理状态以反映正存储的信息而将数据存储于大容量存储装置1018上。在本描述的不同实施中,物理状态的特定转换可以取决于多种因素。这样的因素的实例可以包括(但不限于)用于实施物理存储单元而无论大容量存储装置1018是特征化为主存储器还是次级存储器等等的技术。
例如,计算机1000可以通过经由存储控制器1014发出指令以改变磁盘驱动单元内的特定位置的磁特性,光存储单元中的特定位置的反射或折射特性或固态存储单元中的特定电容器、晶体管或其它离散组件的电特性来将信息存储至大容量存储装置1018。物理介质的其它转换在不脱离于本描述的范围和精神下是可行的,其中前述实例只提供来有利于这个描述。计算机1000可以进一步通过检测物理存储单元内的一个或多个特定位置的物理状态或特性而从大容量存储装置1018读取信息。
除了上文描述的大容量存储装置1018之外,计算机1000可以访问其它计算机可读存储介质以存储和提取信息,诸如程序模块、数据结构或其它数据。所属领域技术人员应了解,计算机可读存储介质可以是为非暂时性数据的存储提供准备且可以由计算机1000访问的任何可用介质。
举例而言,计算机可读存储介质可以包括实施于任何方法或技术中的易失性和非易失性、可卸除式和不可卸除式介质。计算机可读存储介质包括RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪存或其它固态存储器技术、光盘ROM(“CD-ROM”)、数字多用途光盘(“DVD”)、高清DVD(“HD-DVD”)、BLU-RAY,或其它光存储器、磁带盒、磁带、磁盘存储或其它磁存储装置或可以用于以任何非暂时性方式存储所期望的信息的任何其它介质。
大容量存储装置1018可以存储被利用来控制计算机1000的操作的操作***1030。根据一个实施方案,操作***包括LINUX操作***。根据另一实施方案,操作***包括来自微软公司的SERVER操作***。根据进一步实施方案,操作***可以包括UNIX或SOLARIS操作***。应了解,还可以利用其它操作***。大容量存储装置1018可以存储由计算机1000利用的其它***或应用程序和数据,诸如放置策略识别组件214、实例放置服务402、部署组件110和/或上文描述的其它软件组件和数据的任何一个。大容量存储装置1018还可以存储未在本文明确识别的其它程序和数据。
在一个实施方案中,大容量存储装置1018或其它计算机可读存储介质编码有计算机可执行指令,其在载入至计算机1000中时,将计算机从通用计算***转换为能够实施本文描述的实施方案的特殊用途计算机。这些计算机可执行指令如上文所描述通过指定CPU1004如何在状态之间转变而转换计算机1000。根据一个实施方案,计算机1000可访问存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在由计算机1000执行时执行上文描述的多种处理例行程序。计算机1000还可以包括用于执行本文描述的任何其它计算机实施的操作的计算机可读存储介质。
计算机1000还可以包括一个或多个输入/输出控制器1016,其用于从许多输入装置(诸如键盘、鼠标、触摸板、触摸屏、电子笔或其它类型的输入装置)接收输入且处理来自所述输入装置的输入。类似地,输入/输出控制器1016可以将输出提供至显示器,诸如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪或其它类型的输出装置。将了解,计算机1000可以不包括图10中所示的所有组件,可以包括未在图10中明确示出的其它组件或可以利用完全不同于图10中所示的架构的架构。
基于上文,应了解,本文已呈现用于虚拟机实例104和其它类型的计算资源的用户影响的放置的多种技术。而且,虽然已用对计算机结构特征、方法论动作和计算机可读介质为特定的语言描述本文呈现的主旨,但是应了解,随附权利要求书中定义的本发明并不一定限于本文描述的特定特征、动作或介质。相反,特定特征、动作和介质公开为实施权利要求书的实例形式。
上文描述的主旨只通过说明提供且不应视为限制。此外,所要求的主旨并不限于解决本公开内容的任何部分中指出的任何或所有缺点的实施。可以在不遵循所图示和描述的实例实施方案和应用下且在不脱离于以下权利要求书中提出的本发明的真正精神和范围下对本文描述的主旨进行多种修改和改变。

Claims (15)

1.一种用于共享在影响虚拟机实例在服务提供商网络中的硬件平台上的放置中使用的放置策略的计算机实施的方法,所述方法包括执行如下计算机实施的操作:
存储多个客户提供的放置策略;
接收对用于在指定计算工作负荷下使用的放置策略的请求;且
利用所述存储的放置策略以选择用于在识别其上执行所述指定计算工作负荷的所述服务提供商网络中的硬件平台中使用的放置策略。
2.根据权利要求1所述的计算机实施的方法,其中所述计算工作负荷包括虚拟机图像。
3.根据权利要求1所述的计算机实施的方法,其进一步包括存储对所述多个客户提供的放置策略的一个或多个客户提供的评分。
4.根据权利要求3所述的计算机实施的方法,其中还利用对所述多个客户提供的放置策略的所述客户提供的评分以选择用于在识别其上执行所述指定计算工作负荷的所述服务提供商网络中的所述硬件平台中使用的所述放置策略。
5.根据权利要求1所述的计算机实施的方法,其进一步包括存储所述多个客户提供的放置策略的发布者的一个或多个客户提供的评分。
6.根据权利要求5所述的计算机实施的方法,其中还利用所述多个客户提供的放置策略的发布者的所述评分以选择用于在识别其上执行所述指定计算工作负荷的所述服务提供商网络中的所述硬件平台中使用的所述放置策略。
7.根据权利要求1所述的计算机实施的方法,其进一步包括存储通过定义所述服务提供商网络中的放置策略的历史使用的数据的分析识别的一个或多个放置策略。
8.根据权利要求1所述的计算机实施的方法,其进一步包括利用所述所选择的放置策略以影响所述工作负荷在所述服务提供商网络中的特定硬件平台上的所述放置。
9.一种用于在服务提供商网络中选择用于计算工作负荷的放置策略的计算***,所述***包括:
一个或多个计算机,其被配置来
接收对适合于在所述计算工作负荷下使用的放置策略的请求,且
从由所述服务提供商网络的客户共享的多个放置策略选择用于在所述工作负荷下使用的放置策略。
10.根据权利要求9所述的***,其中所述一个或多个计算机被配置来利用所述所选择的放置策略以影响所述工作负荷在所述服务提供商网络中的特定硬件平台上的放置。
11.根据权利要求10所述的***,其中所述工作负荷包括虚拟机图像。
12.根据权利要求9所述的***,其中所述所选择的放置策略可以进一步从通过定义所述服务提供商网络中的放置策略的历史使用的数据的分析识别的一个或多个放置策略选择。
13.根据权利要求9所述的***,其中进一步基于所述多个放置策略的发布者的评分识别所述所选择的放置策略。
14.根据权利要求9所述的***,其中进一步基于所述多个放置策略的评分识别所述所选择的放置策略。
15.根据权利要求9所述的***,其中所述一个或多个计算机进一步被配置来:
将用于在所述工作负荷下使用的所述放置策略推荐给与所述请求关联的客户。
CN201480028885.4A 2013-05-08 2014-05-08 虚拟机实例的用户影响的放置 Expired - Fee Related CN105229609B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US13/889,907 2013-05-08
US13/889,914 2013-05-08
US13/889,919 US20140337834A1 (en) 2013-05-08 2013-05-08 User-Influenced Placement of Virtual Machine Instances
US13/889,914 US20140337833A1 (en) 2013-05-08 2013-05-08 User-Influenced Placement of Virtual Machine Instances
US13/889,907 US9665387B2 (en) 2013-05-08 2013-05-08 User-influenced placement of virtual machine instances
US13/889,919 2013-05-08
PCT/US2014/037291 WO2014182894A2 (en) 2013-05-08 2014-05-08 User-influenced placement of virtual machine instances

Publications (2)

Publication Number Publication Date
CN105229609A true CN105229609A (zh) 2016-01-06
CN105229609B CN105229609B (zh) 2019-01-15

Family

ID=51867866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480028885.4A Expired - Fee Related CN105229609B (zh) 2013-05-08 2014-05-08 虚拟机实例的用户影响的放置

Country Status (7)

Country Link
EP (1) EP2994832A4 (zh)
JP (1) JP6291034B2 (zh)
CN (1) CN105229609B (zh)
AU (1) AU2014262679B2 (zh)
CA (1) CA2911614C (zh)
SG (1) SG11201508971UA (zh)
WO (1) WO2014182894A2 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11372663B2 (en) * 2019-03-28 2022-06-28 Amazon Technologies, Inc. Compute platform recommendations for new workloads in a distributed computing environment
US11360795B2 (en) 2019-03-28 2022-06-14 Amazon Technologies, Inc. Determining configuration parameters to provide recommendations for optimizing workloads
US11385920B2 (en) 2019-03-28 2022-07-12 Amazon Technologies, Inc. Compute platform optimization over the life of a workload in a distributed computing environment
US11128696B2 (en) 2019-03-28 2021-09-21 Amazon Technologies, Inc. Compute platform optimization across heterogeneous hardware in a distributed computing environment
US11068312B2 (en) 2019-03-28 2021-07-20 Amazon Technologies, Inc. Optimizing hardware platform utilization for heterogeneous workloads in a distributed computing environment
WO2020198610A1 (en) * 2019-03-28 2020-10-01 Amazon Technologies, Inc. Compute platform recommendations for new workloads in a distributed computing environment
US11397622B2 (en) 2019-06-03 2022-07-26 Amazon Technologies, Inc. Managed computing resource placement as a service for dedicated hosts
US11314819B2 (en) 2019-11-27 2022-04-26 Amazon Technologies, Inc. Systems, apparatuses, and method for document ingestion
US11526557B2 (en) 2019-11-27 2022-12-13 Amazon Technologies, Inc. Systems, apparatuses, and methods for providing emphasis in query results
US11366855B2 (en) 2019-11-27 2022-06-21 Amazon Technologies, Inc. Systems, apparatuses, and methods for document querying
US11475067B2 (en) 2019-11-27 2022-10-18 Amazon Technologies, Inc. Systems, apparatuses, and methods to generate synthetic queries from customer data for training of document querying machine learning models
US11418995B2 (en) 2019-11-29 2022-08-16 Amazon Technologies, Inc. Mobility of cloud compute instances hosted within communications service provider networks
US10979534B1 (en) * 2019-11-29 2021-04-13 Amazon Technologies, Inc. Latency-based placement of cloud compute instances within communications service provider networks
US11561815B1 (en) 2020-02-24 2023-01-24 Amazon Technologies, Inc. Power aware load placement
US11704145B1 (en) 2020-06-12 2023-07-18 Amazon Technologies, Inc. Infrastructure-based risk diverse placement of virtualized computing resources
US12045643B1 (en) 2021-06-03 2024-07-23 Amazon Technologies, Inc. Power aware load placement for sub-lineups
WO2024143637A1 (ko) * 2022-12-27 2024-07-04 오케스트로 주식회사 가상머신 최적배치 추천 장치 및 이를 포함하는 서버 운영 시스템
KR102569877B1 (ko) * 2022-12-27 2023-08-23 오케스트로 주식회사 가상머신 최적배치 추천 장치 및 이를 포함하는 서버 운영 시스템
KR102607458B1 (ko) * 2023-03-31 2023-11-29 오케스트로 주식회사 사용패턴에 기반한 클라우드 자원 추천 장치 및 이를 포함하는 서버 운영 시스템

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1913525A (zh) * 2005-01-12 2007-02-14 国际商业机器公司 自动响应来自网格客户机的作业请求的方法和***
JP2011523472A (ja) * 2008-03-18 2011-08-11 ライトスケール, インコーポレイテッド 仮想サーバを効率的に管理および構成するための方法ならびにシステム
US20110307291A1 (en) * 2010-06-14 2011-12-15 Jerome Rolia Creating a capacity planning scenario
US8185894B1 (en) * 2008-01-10 2012-05-22 Hewlett-Packard Development Company, L.P. Training a virtual machine placement controller
US8261295B1 (en) * 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8370312B1 (en) * 2009-09-15 2013-02-05 Symantec Corporation Systems and methods for using cloud-based storage to optimize data-storage operations
JP2013045264A (ja) * 2011-08-24 2013-03-04 Hitachi Systems Ltd クラウドマーケットプレイスシステム
US20130097601A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Optimizing virtual machines placement in cloud computing environments

Family Cites Families (7)

* 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
US8307086B2 (en) * 2008-08-19 2012-11-06 Facebook, Inc. Resource management of social network applications
US8291416B2 (en) * 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
US9250944B2 (en) * 2011-08-30 2016-02-02 International Business Machines Corporation Selection of virtual machines from pools of pre-provisioned virtual machines in a networked computing environment
US8825863B2 (en) * 2011-09-20 2014-09-02 International Business Machines Corporation Virtual machine placement within a server farm
US9442769B2 (en) * 2011-09-30 2016-09-13 Red Hat, Inc. Generating cloud deployment targets based on predictive workload estimation
US8850442B2 (en) * 2011-10-27 2014-09-30 Verizon Patent And Licensing Inc. Virtual machine allocation in a computing on-demand system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1913525A (zh) * 2005-01-12 2007-02-14 国际商业机器公司 自动响应来自网格客户机的作业请求的方法和***
US8185894B1 (en) * 2008-01-10 2012-05-22 Hewlett-Packard Development Company, L.P. Training a virtual machine placement controller
JP2011523472A (ja) * 2008-03-18 2011-08-11 ライトスケール, インコーポレイテッド 仮想サーバを効率的に管理および構成するための方法ならびにシステム
US8370312B1 (en) * 2009-09-15 2013-02-05 Symantec Corporation Systems and methods for using cloud-based storage to optimize data-storage operations
US20110307291A1 (en) * 2010-06-14 2011-12-15 Jerome Rolia Creating a capacity planning scenario
US8261295B1 (en) * 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
JP2013045264A (ja) * 2011-08-24 2013-03-04 Hitachi Systems Ltd クラウドマーケットプレイスシステム
US20130097601A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Optimizing virtual machines placement in cloud computing environments

Also Published As

Publication number Publication date
WO2014182894A3 (en) 2015-06-11
CA2911614C (en) 2019-10-29
JP6291034B2 (ja) 2018-03-14
JP2016524218A (ja) 2016-08-12
WO2014182894A2 (en) 2014-11-13
AU2014262679B2 (en) 2017-06-01
CA2911614A1 (en) 2014-11-13
CN105229609B (zh) 2019-01-15
AU2014262679A1 (en) 2015-11-19
EP2994832A4 (en) 2016-12-14
EP2994832A2 (en) 2016-03-16
SG11201508971UA (en) 2015-11-27

Similar Documents

Publication Publication Date Title
CN105229609A (zh) 虚拟机实例的用户影响的放置
US10970121B2 (en) Workload-to-cloud migration analysis based on cloud aspects
US10467129B2 (en) Measuring and optimizing test resources and test coverage effectiveness through run time customer profiling and analytics
US9665387B2 (en) User-influenced placement of virtual machine instances
JP6499085B2 (ja) リソースの注釈
US9003014B2 (en) Modular cloud dynamic application assignment
US20130197863A1 (en) Performance and capacity analysis of computing systems
CN103425529A (zh) 基于资源利用在网络计算环境间迁移虚拟机的***及方法
US20200026576A1 (en) Determining a number of nodes required in a networked virtualization system based on increasing node density
US8285576B2 (en) Automated derivation, design and execution of industry-specific information environment
US10243819B1 (en) Template generation based on analysis
CN107533503A (zh) 在部署期间选择虚拟化环境的方法和装置
US10782949B2 (en) Risk aware application placement modeling and optimization in high turnover DevOps environments
CN116194936A (zh) 识别拟合目标域的传递学习过程的源数据集
US20140337833A1 (en) User-Influenced Placement of Virtual Machine Instances
US11165665B2 (en) Apparatus and method to improve precision of identifying a range of effects of a failure in a system providing a multilayer structure of services
US20220198404A1 (en) Asset health score based on digital twin resources
US11868167B2 (en) Automatically provisioned tag schema for hybrid multicloud cost and chargeback analysis
US20230289252A1 (en) Intelligent grouping of events in computing system event and computing system incident management domains
CN115129542A (zh) 数据处理方法、装置、存储介质及电子装置
US20240078372A1 (en) Intelligently identifying freshness of terms in documentation
US20220188506A1 (en) Facilitating information technology solution templates
GARG PERFORMANCE ANALYSIS AND BENCH MARKING OF THE MICRO VIRTUAL MACHINES BY PUBLIC CLOUD SERVICE PROVIDERS
CN116244274A (zh) 一种数据库参数的推荐方法、装置、设备及存储介质
Mehta Workload Assignment in various Heterogeneous Cloud Environments

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190115

Termination date: 20210508

CF01 Termination of patent right due to non-payment of annual fee