CN105027108B - 实例主机配置 - Google Patents
实例主机配置 Download PDFInfo
- Publication number
- CN105027108B CN105027108B CN201480011068.8A CN201480011068A CN105027108B CN 105027108 B CN105027108 B CN 105027108B CN 201480011068 A CN201480011068 A CN 201480011068A CN 105027108 B CN105027108 B CN 105027108B
- Authority
- CN
- China
- Prior art keywords
- example host
- control server
- host
- configuration
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5051—Service on demand, e.g. definition and deployment of services in real time
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)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
公开了用于实例主机配置的方法和装置。***包括可配置用于网络可访问服务的资源实例的多个实例主机和管理所述实例主机的远程配置的控制服务器。响应于来自客户端的实例配置请求,选定控制服务器向选定实例主机传输一个或多个命令的序列。所述选定实例主机例示远程命令执行器。所述远程命令执行器发起对应于所述命令序列的配置操作,并终止。所述选定控制服务器至少部分地基于由执行器发起的操作的结果来提供对所述实例配置请求的响应。
Description
背景
许多公司和其它组织操作使很多计算***互连以支持它们的操作的计算机网络,例如计算***位于同一地点(例如作为局部网络的部分)或替代地位于多个不同的地理位置(例如经由一个或多个专用或公共中间网络来连接)。例如,安放相当大数量的互连计算***的数据中心变得普通,例如由单个组织操作并代表单个组织的专用数据中心和由作为企业的实体操作以向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户所拥有的硬件提供网络访问、电力和安全安装设施,而其它公共数据中心运营商提供还包括可供它们的客户使用的硬件资源的“全套服务”设施。然而,因为一般数据中心的规模和范围增加了,预备、掌管和管理物理计算资源的任务变得日益复杂。
商品硬件的虚拟化技术的出现关于以不同的需要为许多客户管理大规模计算资源提供了益处,允许各种计算资源由多个客户有效和安全地共享。例如,虚拟化技术可通过给每个用户提供由单个物理计算机器托管的一个或多个虚拟机来允许单个物理计算机器在多个用户中被共享,每个这样的虚拟机是充当不同的逻辑计算***的软件模拟,其给用户提供他们是给定硬件计算资源的唯一操作员和管理员的错觉,同时还提供在各种虚拟机中的应用隔离和安全。此外,一些虚拟化技术能够提供跨越两个或多个物理资源的虚拟资源,例如具有跨越多个不同的物理计算***的多个虚拟处理器的单个虚拟机。
当虚拟化计算、存储和联网资源的提供者所支持的功能和特征增长时,且当由大规模提供者使用的硬件平台群增长时,实现管理控制操作例如在平台上的配置变化的任务可本身变成资源密集的。控制和配置操作的***的开销在一些情况下可甚至开始影响如用户所感知的虚拟化资源的响应性。
附图说明
图1示出根据至少一些实施方案的示例***环境。
图2示出根据至少一些实施方案的被配置用于实例主机平台的远程配置的控制服务器的示例部件。
图3示出根据至少一些实施方案的实例主机平台的示例部件。
图4示出根据至少一些实施方案的在客户端、控制服务器和实例主机平台之间的示例交互。
图5示出根据至少一些实施方案的从在控制服务器处的工作流管理器节点开始的命令流程的示例。
图6示出根据至少一些实施方案的与实例主机平台的注册相关的示例操作。
图7示出根据至少一些实施方案的与启动资源实例相关的示例操作。
图8示出根据至少一些实施方案的从控制服务器发出到实例主机的命令请求的示例元素。
图9是示出根据至少一些实施方案的可操作来执行实例主机的远程配置的控制服务器的操作的方面的流程图。
图10是示出根据至少一些实施方案的与在控制服务器处的远程事件通知有关的操作的方面的流程图。
图11是示出根据至少一些实施方案的与确定控制服务器池尺寸有关的操作的方面的流程图。
图12是示出根据至少一些实施方案的配置来管理第三方平台的远程配置的控制服务器的操作的方面的流程图。
图13示出根据至少一些实施方案的由提供者网络和由第三方支持的计算资源实例定义的示例。
图14是示出根据至少一些实施方案的由提供者网络的控制服务器响应于对第三方平台的平台批准请求而执行的操作的方面的流程图。
图15示出可被实现来使客户端能够从多个提供者选择资源实例——包括在由提供者网络的控制服务器部件控制的第三方平台上例示的实例——的编程用户接口的示例。
图16是示出根据至少一些实施方案的示例计算设备的方框图。
虽然实施方案在本文通过针对几个实施方案和说明性附图的示例的方式被描述,但是本领域中的技术人员将认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并不意欲将实施方案限制到所公开的特定形式,而相反,意欲覆盖落在如所附权利要求限定的精神和范围内的所有修改、等效和替代物。本文使用的标题仅用于组织的目的且并不打算用于限制说明书或权利要求的范围。如该申请通篇使用的,词“可以(may)”在许可的意义(即有可能的意义)而不是强制的意义(即意味着必须)上被使用。类似地,词“包括(include)”、“包括(including)”和“包括(includes)”意指包括但不限于。
具体实施方式
描述了用于低***开销资源实例主机配置的方法和装置的各种实施方案。由实体例如公司或公共部门组织建立以向分布的一组客户端提供经由互联网和/或其它网络可访问的一个或多个多租户服务(例如各种类型的基于云的计算或存储)的网络在这个文档中可被称为提供者网络。术语“多租户”可在本文用于指被设计成实现应用和/或数据虚拟化的服务,使得不同的客户端实体被提供服务的相应的可定制的隔离视图,使得一个客户端(服务功能的部分使用一组给定的基本资源被提供到该客户端)可能不知道这组资源也用于其它客户端。除了或代替多租户服务,提供者网络在一些实施方案中还可支持单租户服务(例如用于专用云实现方式)。这样的提供者网络可包括托管各种资源池的很多数据中心,例如实现、配置和分配基础设施和由提供者所提供的服务所需的物理和/或虚拟化计算机服务器、存储设备、联网设备等的集合。提供者网络的资源的子集在一些实施方案中可被提供用于由在被称为“实例”的单元例如虚拟或物理计算实例、存储实例或网络资源实例中的客户端预留(并分配到在被称为“实例”的单元中的客户端)。虚拟计算实例可例如包括具有规定计算容量(其可通过指示CPU的类型和数量、主存储器大小、存储设备数量和大小等被规定)的一个或多个服务器和规定软件堆栈(例如又可在管理程序的顶部上运行的操作***的特定版本)。可在本文被称为“实例主机平台”或“实例主机”的***上例示各种类型的资源实例,包括虚拟计算实例、存储资源实例或网络资源实例。在一些实施方案中,能够例示N个不同的特定类型的虚拟计算实例的实例主机平台可例如包括具有最初被安装的选定的一组相对低级的软件部件例如一般利用硬件服务器的一小部分计算功能的虚拟化软件和/或操作***软件的硬件服务器。当启动更多的虚拟计算实例时,可例如对在不同的虚拟计算实例上运行的客户端应用使用服务器的更大一部分计算能力。在不同的实施方案中可单独地或组合地使用多个不同类型的计算设备以实现提供者网络的资源,包括通用或专用计算机服务器、存储设备、网络设备等。如下所述,在一些实施方案中,提供者网络资源的子集可专用于控制和配置目的(例如用于响应于客户端请求而在实例主机上启动、监控和终止资源实例)。这样的专用控制资源在本文可被称为“控制面资源”、“控制面服务器”或“控制服务器”。在至少一些实施方案中,除了用于在提供者网络内的实例主机上配置资源实例以外,给定提供者网络的至少一些控制服务器也可能能够远程地配置在提供者网络外部的远程平台处例如在第三方数据中心或设施中或在入网点位置或类似设施处托管的实例,如下面更详细描述的。
根据一个实施方案,可实现用于管理实例的控制软件以便最小化强加在实例主机上的管理***开销。在这样的实施方案中,很多配置相关处理可从实例主机卸下,使得高级决策和元数据操纵可在控制服务器处被实现,而只有简单的低级(和一般幂等和无状态)配置相关命令可能必须在实例主机本身处被执行。在这样的实施方案中,可能不需要在实例主机处理解关于实例状态和实例类型定义的细节。例如在一个这样的实施方案中,可在控制服务器处使用分层控制软件体系结构,其中实例状态管理器通过调用工作流管理器部件而对客户端的实例配置请求做出响应。工作流管理器可在由控制软件的配置定义器部件提供的实例配置定义的上下文中将更高级的配置决策(由实例状态管理器响应于客户端的实例配置请求而达到)转换成那个配置定义特有的一个或多个较低级工作流操作。工作流管理器又可在控制服务器处将工作流操作传输到控制软件的命令发信机部件。根据命令协议,命令发信机可通过网络向特定的实例主机安全地提供对应于给定工作流操作的一个或多个低级命令(例如操作***命令或虚拟化软件命令)。
在实例主机处,命令接收器(例如简单的web服务器)可通过例示远程命令执行器(RCE)对来自发信机的给定命令做出响应。可包括由命令接收器在提出要求时引起的执行的单个线程(或软件进程)的RCE可至少在一些实施方案中只保持活动足够长以发出一个或多个操作,通常涉及在实例主机上的虚拟化软件部件或在实例主机处的操作***部件。在这样的实施方案中,RCE可在操作已经被发起之后退出或终止。命令接收器可向命令发信机提供返回代码、由RCE的操作产生的标准输出或错误输出。这些结果可在控制服务器处被解释以确定所请求的命令的成功或失败,并在一些实施方案中响应于客户端的实例配置请求而相应地被明确地陈述。因此,在这样的实施方案中,在实例主机处的实例配置***开销可在很大程度上被限制到RCE的例示和由RCE请求的操作,从而保留实例主机资源的很大部分用于客户端请求的资源实例本身的使用。在一些实现方式中,在控制服务器软件的不同层处的配置责任的封装可以是足够有效的以允许数百或数千实例主机从单个控制服务器或几个控制服务器被远程地配置。
在至少一些实施方案中,例示RCE可包括例如通过web服务器根据公共网关接口(CGI)例示至少一个执行线程。在一些实现方式中,有效和公知的协议例如HTTPS(HTTP的安全版本、超文本传输协议)可用于到实例主机的命令传输和/或从实例主机接收结果。在一些实施方案中,命令本身可在工业标准格式或符号例如JSON(JavaScript对象符号)或XML(扩展标记语言)的某种变形中被格式化。在其它实施方案中,可使用专用或专有协议和/或格式。所使用的命令协议可支持多个命令类型,其中至少子集被设计为幂等的,例如,如果具有给定的一组参数的特定幂等命令“cmd1”被发出多于一次,命令的第二次发出和任何以后的发出可以没有消极影响。
在一些实施方案中,提供者网络可被组织成多个地理区,且每个区可包括一个或多个可用性容器,其在本文可被称为“可用性地区”。可用性容器又可包括一个或多个不同的位置或数据中心,其被设计成使得在给定可用性容器中的资源在其它可用性容器中与故障绝缘。也就是说,在一个可用性容器中的故障可能不被预期导致在任何其它可用性容器中的故障;因此,资源实例或控制服务器的可用性配置文件意欲独立于在不同的可用性容器中的资源实例或控制服务器的可用性配置文件。客户端可能能够通过在相应的可用性容器中启动多个应用实例来保护它们的应用在单个位置处免于故障。同时,在一些实现方式中,可在驻留在同一地理区内的资源实例之间提供廉价和低时延网络连接性(且在同一可用性容器的资源之间的网络传输可以甚至更快)。一些客户端可能希望规定它们的资源被保留和/或例示的位置,例如在区级、可用性容器级或数据中心级处,以维持确切地在它们的应用的各种部件运行的地方的期望控制程度。其它客户端可以对它们的资源被保留或例示的确切位置较不感兴趣,只要资源满足对例如性能、高可用性、所支持的软件级等的客户端要求。在一些实施方案中,位于一个可用性容器(或数据中心)中的控制服务器可能能够在其它可用性容器(或其它数据中心)中的实例主机处远程地配置资源实例,也就是说,特定的可用性容器或数据中心可能不需要有本地控制服务器来管理本地资源实例。
在至少一些实施方案中,控制服务器可被配置来当某些类型的事件(例如未预料到的关机或在各种子部件处的错误)出现在从控制服务器管理的资源实例处时接收通知。在一个这样的实施方案中,控制服务器可利用在实例主机平台处设置有在使用中(或通过在使用中的操作***)的虚拟化软件(例如管理程序)的预先存在的事件监控器。在一个实现方式中,代表控制服务器在实例主机处例示的轻质事件调度程序可订阅事件监控器。当事件监控器通知事件调度程序事件已出现且事件调度程序确定对控制服务器的通知适合于事件时,事件调度程序可将对应的通知传输到控制服务器(例如到命令发信机或到工作流管理器)。事件的指示可被向上传递到控制软件堆栈,例如从命令发信机到工作流管理器并继续到实例状态管理器,其可基于事件的类型按需要更新实例状态元数据。在一些实施方案中,实例状态管理器可发起恢复操作,如果事件是未预料到的关机或其它故障。在一些实施方案中,恢复操作可遵循与其它配置操作类似的流程,例如,它们可由实例状态管理器发起、经由工作流管理器和命令发信机连续地转换成更低级命令,并传输到在实例主机处的命令接收器用于经由RCE来执行。
分层控制软件体系结构的设计目标之一可以是确保从某些类型的大规模故障事件的恢复可在可接受的时间帧内完成。例如,即使可在关键部件处以各种级别的冗余实现数据中心和可用性地区以减少全数据中心或遍及可用性地区的故障,以100%的保证防止这样的大规模故障可能非常难。因为提供者网络的许多客户端可依赖于它的资源实例用于任务关键的功能,从这样的罕见故障事件的合理地快的恢复可能是期望的。因此,在至少一些实施方案中,可基于大规模故障的目标恢复时间来确定专用于控制服务器的资源。可估计实例恢复配置操作在大规模故障的情况下可能被需要的速率。可产生参量化模型,其包括例如待管理的故障的大小(例如同时或接近同时的故障(其应急计划将被制订)的数量)的表示以及那些实例到不同的数据中心的潜在映射、需要被执行以完全重新例示实例的恢复相关配置操作的顺序以及具有某个计算水平和网络能力的恢复服务器可能能够每单位时间被协调一致的这样的操作的数量。使用模型的各种参数,包括满足恢复时间目标的所需恢复操作速率,可确定特定的能力水平的控制服务器的数量,并可建立适当类型的控制服务器的池。在一些情况下,对大规模故障事件的做出响应所需的控制服务器的数量可超过正常操作条件所需的控制服务器的数量,在这种情况下,提供者网络运营商可在确定待部署的控制服务器的数量之前权衡没有足够的控制服务器来处理大规模故障的结果与维护额外的控制服务器的成本。
在至少一些实施方案中,控制服务器的几个或所有部件例如工作流管理器和命令发信机可被实现为群集的节点,该群集的大小可按需要动态地增加。例如,可以有在给定时间点例示的W个工作流管理器节点和C个命令发信机节点,且每个部件的节点的数量可根据需要增加或减小。在一些实现方式中,给定硬件设备可用于给定类型的控制服务器部件的一个或多个节点,例如将S个控制服务器分配以托管W个工作流管理器节点和C个命令发信机节点可能是可能的,其中S<=(W+C)。
如上所述,在一些实施方案中,给定实例主机平台可能能够支持多个资源实例。在一些这样的实施方案中可实现在给定实例主机上的资源实例和管理它们的控制服务器之间的灵活映射,例如在主机H1上的一个资源实例RI-X可由控制服务器CS1管理,而在H1上的另一资源实例RI-Y可由不同的控制服务器CS2管理。在至少一些实施方案中,并行控制机制可被实现以防止冲突操作(例如创建软件存储设备例如具有相同的名称或具有冲突的名称的文件***的两个不同的命令)被尝试。例如,在一个实现方式中,可使用锁定来限制在给定实例主机平台上的并行配置操作的数量。可在一些实施方案中实现锁定管理器,排他锁定(或具有对共享者的数量的限制的共享锁定和/或在保持共享锁定时被允许的实例主机操作的类型)必须在执行给定实例主机上执行配置操作之前从锁定管理器得到。
在至少一些实施方案中,用于上面描述的资源实例配置的模块化方法也可用于其它类型的操作,例如度量收集或日志记录收集。例如,不是将性能信息(例如CPU利用率、存储器使用或网络使用测量)从实例主机推到控制服务器,可实现拉模型,其中控制服务器度量收集器部件可使用上述命令发信机将“得到度量”命令发出到实例主机。RCE或类似的短命线程或进程可被例示为使用管理程序或操作***工具在实例主机处收集信息,且结果可被发送回到度量收集器。
当客户端向控制服务器发出实例启动请求时,用于所请求的实例的特定的实例主机可在不同的实施方案中基于几个标准中的任一个被选择。在一些情况下,可至少部分地基于客户端的识别信息来选择实例主机,例如客户端的互联网协议地址或物理地址可用于选择在地理上靠近客户端的房屋的数据中心。如果客户端请求只在一些位置上可用或由于在数据中心之间的供应或需求变化而在一些数据中心处比其它数据中心更容易可用的特定类型的资源实例,则可基于所请求的资源的可用性来选择实例主机。在一些实施方案中,价格策略(例如客户端是否表达了对可使用某一组实例主机被最好地支持的某个价格级别的偏好)以及当前性能条件和在提供者网络内的趋势可用于选择特定的实例标准。
在一些实施方案中,提供者网络的控制软件体系结构可使用在远程位置处例如在数据中心或在提供者网络外部的其它设施处或在提供者网络和其它网络之间的接入点处的设备来支持资源实例的例示。例如,第三方提供者可能希望通过部署将使用提供者网络的控制服务器来管理的资源实例的硬件来利用在数据中心处的未充分利用的硬件。在另一示例中,可在一些实施方案中使用控制服务器为远程实例利用在与提供者网络相关的一个或多个互联网入网点(POP)位置处的主机。在一些这样的POP位置中,至少一些主机可被配置来支持提供者网络的服务(例如内容分配),且这样的主机在一些情况下可使用一般安装在大部分实例主机上的软件堆栈的精简版本,其用于例示在提供者网络内的资源实例。这样的精简版本可用于由控制服务器例示资源实例。术语“远程平台”可在本文用于指由第三方完全拥有/管理并位于提供者网络之外的平台或位于POP或在提供者网络和其它设备提供者例如远程通信提供者之间的边界处的类似实体处的平台。类似地,术语“远程位置”可用于指设施,这样的远程平台被合并在所述设施处。在一些实施方案中,给定控制服务器可能能够管理第三方平台以及或替代地,提供者网络的自己的实例主机。提供者网络运营商可能愿意支持这样的情形,因为它可增加客户端可访问的资源的总池,且也可导致更好的地理分布、增强的全***风险管理,并在收益上增加。在一个这样的实施方案中,第三方供应商(或POP位置操作员)可提交指示位于远程设施处的候选平台的平台批准(例如经由控制服务器部件所支持的编程接口)请求,远程设施可用于以与提供者网络自己的实例主机被使用的方式类似的方式托管虚拟化资源。作为响应,负责检验平台能力的控制服务器部件可在候选平台上执行一个或多个测试。在本文可被称为“能力确定操作”的这样的测试可包括各种不同的构成要素,包括已安装软件堆栈检查、性能测试、证实远程命令执行器(RCE)机制可在第三方平台上成功地被使用的检查等。如果特定的候选平台通过测试,则它可被指定为“被批准的”平台,资源实例可在该被批准平台上由提供者网络的控制服务器配置。(在一些实施方案中,类似的能力测试在它们用于实例之前可在提供者网络的自己的硬件平台上被执行。)
在候选远程(例如第三方或POP)平台被批准之后,它可包括在可用实例主机的池中,它从该池被选择以对客户端的实例配置请求做出响应。类似的分层控制软件方法可用于配置如用于提供者网络的自己的实例主机的被批准实例主机平台,例如,实例状态管理器、工作流管理器和在控制服务器端部处的命令发信机可合作来调用远程命令执行器(RCE)以在第三方平台上执行本地配置操作。如在控制服务器和提供者网络的内部实例主机之间的通信的情况中的,可在至少一些实现方式中使用安全联网协议。隧道化协议在一些实现方式中可由命令发信机使用,且代理可用于分程传递在控制服务器和实例主机平台之间的通信。在至少一些实施方案中,隧道化或其它类似的技术可用于允许控制服务器与第三方平台通信,第三方平台一般被网络安全屏障例如防火墙保护而免受外部业务。
在至少一些实施方案中,提供者网络可使用它的实例主机来支持一组资源实例类型,例如,可使用由每种类型支持的能力和特征的相应定义为虚拟化计算资源支持“小”、“中”和“大”实例。在一些情况下第三方平台也可支持这些相同类型的实例,从而允许第三方平台相当无缝地集成到提供者网络的基础设施内。在一些实施方案中,第三方可被允许定义其自己的实例类型,例如因为基础硬件或软件不完全与提供者网络的定义的实例类型兼容,或因为第三方希望区分开它们的产品与由提供者网络提供的实例类型,或由于某个其它原因。提供者网络可实现面向客户端的接口(例如网站或应用编程接口(API)),其指示客户端可在这样的实施方案中得到的所有不同的实例类型,例如接口可指示提供者网络的实例类型以及由各种第三方伙伴使用提供者网络的控制服务器支持的额外的实例类型。在一些实施方案中,平台批准请求或从第三方到提供者网络的某个额外的通信可包括第三方希望支持的实例类型。在一个实施方案中,第三方提供者可提供测试建议(或实际测试)以根据所支持的实例类型定义来检查候选平台的能力。
可能能够容纳位于在提供者网络之外的各种数据中心处的平台的上面描述的灵活控制面体系结构也可在一些实施方案中提供客户端部署它们自己的未充分利用的硬件平台或甚至为充分利用的客户端侧平台也利用控制面体系结构的机会。例如在一个实施方案中,正如第三方可得到被批准实例托管的它们的平台一样,提供者网络的客户端可得到驻留在客户端的网络或所批准的数据中心内的平台。一旦客户端的平台被批准用于实例部署,在提供者网络内的控制服务器就可用于在平台上配置实例。
示例***环境
图1示出根据至少一些实施方案的示例***环境。如所示,***可包括提供者网络102,其包括多个控制服务器池120(例如池120A、120B和120C)和实例主机池110(例如池110A、110B和110C)。控制服务器池120可包括配置来在实例主机上响应于由控制服务器从客户端150(例如客户端150A或150B)接收的实例配置请求170例如经由被提交到实例池110的实例主机的命令来远程地执行配置操作的多个硬件和/或软件控制服务器。可例如使用在下面关于图2更详细讨论的各种部件在控制服务器上执行大部分配置相关处理,例如与哪些类型的资源实例将在给定实例主机上实现的确定、实例状态信息和用于例示实例的配置定义/布局有关的处理。池120的控制服务器可传输相对低级(例如管理程序级或操作***级命令)的序列用于在池110的实例主机处执行,其中一般短命的远程命令执行器(RCE)可被例示为执行所请求的命令或命令序列,提供返回值并接着退出或终止。在一些实施方案中,可根据支持至少一些幂等操作的命令协议来格式化命令,使得即使命令请求不知什么缘故被丢失或忽略或返回值被丢失或忽略,命令一般也可被重新发出,而没有消极结果。
在所描绘的实施方案中,每个实例主机池110A可包括多个实例主机平台,每个实例主机平台可容纳各种类型的一个或多个资源实例,例如虚拟化计算服务器、虚拟化存储资源和/或虚拟化网络资源。可基于各种因素例如基础设施约束(例如在提供者网络的数据中心处的空间、带宽或功率限制)或对各种类型的资源实例的要求来确定包括在给定池内的实例主机的数量。在不同的实例类型(例如“大”与“小”虚拟计算实例)被支持和/或不同的定价策略被支持(例如长期预定与见票即付与“现货”定价)的一些实施方案中,一些实例主机池可专用于提供特定实例类型的实例,或根据特定的定价策略来定价的实例。可基于各种因素例如位置(例如到客户端的房屋或网络或到由客户端使用的其它实例主机的物理接近度)、由客户端请求的实例类型、由客户端请求的定价策略或在提供者网络内的当前或预期资源使用趋势来选择特定的实例主机(例如在最近的一段时间内具有较低水平的CPU或网络利用率的实例主机可能优先于非常忙碌的实例主机),特定客户端150的实例将在该实例主机上被启动。
如所示,在所描绘的实施方案中,提供者网络的实例主机池110和控制服务器池120可分布在各种可用性容器105中,例如,可用性容器105A包括实例主机池110A和控制服务器池120A,可用性容器105B包括实例主机池110B和控制服务器池120B,可用性容器105C包括实例主机池110C,而可用性容器105D包括控制服务器池120C。每个可用性容器105可被设计成具有独立于其它容器的配置文件的可用性配置文件或故障配置文件,使得在一个可用性容器105中经历的故障(例如停电)可以不被预期与在其它可用性容器内的故障相关。在所描绘的实施方案中,双刃箭头160例如160A、160B和160C指示与配置命令(从在池120处的控制服务器发送)和配置命令结果(从在池110处的实例主机发送)有关的交互。如箭头160C所示的,在给定可用性容器(例如105B)中的控制服务器可管理在不同的可用性容器(例如105C)中以及在它们自己的可用性容器内的实例主机的配置。在各种实施方案中,一些可用性容器(例如105A和105B)可包括实例主机池以及控制服务器池,其它可用性容器(例如105D)可以不包括实例主机池,以及一些可用性容器(例如105C)可以不包括控制服务器池。在一些实施方案中,给定客户端可将实例配置请求提交到各种控制服务器,例如,客户端150B可将请求170B提交到池120B以及池120C的控制服务器。在所描绘的实施方案中,可从一个或多个控制服务器池管理给定实例主机池110,如在可由池120B和120C的控制服务器管理的实例主机池110C的情况中的。
图1还示出对在提供者网络102外部的第三方平台的配置的支持。在所描绘的实施方案中,在提供者网络的池120A处的控制服务器可远程地控制在第三方网络125A的被批准实例主机候选平台135A处的资源实例的配置,而在池120B或120C处的控制服务器可能能够配置在第三方网络125B的被批准实例主机候选平台135B处的实例。在所描绘的实施方案中,给定控制服务器可能能够管理第三方平台以及提供者网络的自己的实例主机。在一些实施方案中,第三方提供者例如网络125A或125B的运营商可将平台批准请求提交到在提供者网络102内的控制服务器部件,指示他们希望为实例托管批准的候选平台。可在候选平台处从控制服务器发起能力确定测试,例如以确定候选平台是否可支持配置实例所需的RCE功能,平台是否可支持期望性能、可用性、可靠性水平,和/或平台是否可支持期望软件堆栈。一旦平台被批准,它就可被包括在实例主机池中(例如在特殊第三方实例主机池中或在已经在提供者网络内建立的实例主机池之一中),并以与提供者网络的任何其它实例主机类似的方式被处理。在一些实施方案中,第三方网络运营商可能能够定义他们自己的实例类型,其不同于提供者网络自然地支持的实例类型;在其它实施方案中,第三方提供者可能需要支持提供者网络所支持的相同类型的实例。如之前提到的,入网点位置处的平台(未在图1中示出)与提供者网络的一般内部实例主机软件堆栈的精简版本一起可用于在一些实施方案中以与候选平台135被使用的方式类似的方式托管主机资源实例。
作为实现模块化控制体系结构的结果——其中很多配置相关工作由在专用控制服务器处执行的部件而不是实例主机完成,在所描绘的实施方案中,配置相关***开销可在实例主机本身处被最小化。例如,只有轻质无状态部件可能需要支持在实例主机处的实例配置,例如配置来经由HTTPS从控制服务器接收低级命令并例示一般短命的CGI进程以执行命令的最小web服务器,或能够通知控制服务器某些类型的罕见事件何时出现在实例主机处的事件收听器。在一些实施方案中,每个控制服务器可能能够执行大量实例主机的操作。在不同的实施方案中可基于各种因素例如恢复配置操作可能必须被执行以便对大规模断电做出响应的速率来选择在给定池120中建立的专用控制服务器的数量。客户端实例配置请求(和对请求的响应)由图1中的箭头170(例如在客户端150A和池120A之间的箭头170A、在客户端150B和池120B之间的170B或在客户端150B和池120C之间的170C)指示。各种技术中的任一个可用于选择对给定客户端请求做出响应的池120的特定的控制服务器,例如,可使用负载平衡机制或基于客户端联系关系(例如来自同一客户端IP地址的请求可由同一控制服务器处理)或随机地选择控制服务器。下面提供关于各种控制服务器部件的功能以及在客户端、控制服务器和实例主机平台之间的交互的额外细节。
控制服务器和实例主机部件
图2示出根据至少一些实施方案的被配置用于实例主机平台的远程配置的控制服务器的示例部件。在所示部件和硬件/软件服务器(其上实现所述部件)之间的映射可随着时间的过去和在不同的实施方案中改变。例如,在一些实现方式中,例示在单个计算设备上的每个所示部件是可能的,而在其它实施方案中,一个或多个计算设备可用于特定部件的实例或节点(例如多个工作流管理器节点可被例示,一个或多个工作流管理器节点合并在给定计算设备处)。
在所描绘的实施方案中,客户端和第三方交互管理器部件235可负责接收进入的客户端请求201和/或第三方请求202,例如实例启动或配置请求,或对第三方或客户端拥有的平台的批准请求。在一些实施方案中,一个或多个编程接口(例如网页、网站、API、图形用户接口或命令行工具)可被实现以支持客户端交互和/或第三方交互。在所描述的实施方案中,实例状态管理器210可负责响应于客户端或第三方请求而使配置操作协调一致,负责对断电或未预料到的实例关机做出响应,和/或负责注册新实例主机。例如,响应于来自客户端的实例启动请求,实例状态和恢复管理器210可确切地识别(借助于容量管理器205)哪个实例主机用于启动,并可接着向工作流管理器225发出启动命令以转换成较低级命令用于最后在选定的实例主机处执行。
容量管理器205可在所描绘的实施方案中配置来确保实例主机池110对预期需求充足地依尺寸制造,和/或根据需要在池之间移动资源。能力测试器215可被配置来运行测试(例如性能测试、软件堆栈确认等)以帮助决定批准第三方候选平台和/或证实在提供者网络内的实例主机被充分预备。计量/计费管理器230可被配置来例如基于度量例如网络请求计数、所测量的流量、I/O计数、CPU利用率等根据实际上客户端的特定的定价计划来确定给定客户端在计费期内使用特定的资源实例而被收取多少费用。
配置定义器220可在所描绘的实施方案中负责为待启动的特定实例类型产生将在特定的实例主机处实现的特定的配置布局的细节(例如将被建立的各种文件***和软件设备的名称、各种可调节设置的参数值等)。工作流管理器225可负责接收由实例状态管理器210发出的高级命令和来自配置定义器220的配置布局细节,并将命令转换成包括一个或多个较低级命令的工作流。工作流管理器225可接着将工作流命令传递到命令发信机240,其可将对应的命令序列281(例如以JSON或XML被格式化)传输到选定实例主机(例如经由HTTPS)用于经由RCE来执行。在一些实施方案中,锁定服务275可由工作流管理器225(或由图2所示的其它部件)使用来确保实例主机配置不由于冲突或重叠的修改请求而被破坏,例如,在特定类型的配置改变被允许之前,可能需要在实例主机上的排他锁定。在一些实施方案中,锁定服务275可以不是控制服务器的部件,例如,可使用为了其它目的而在提供者网络中使用的预先存在的锁定服务。控制服务器还可包括事件收听器245,其在一些实施方案中被配置来当某些类型的事件(例如未预料到的关机、可影响资源实例的硬件或软件错误或故障)出现在实例主机处时接收通知。在一些实施方案中,事件收听器245可将关于事件的信息传输到实例状态管理器,其可适当地解释它们以确定例如实例状态信息是否需要被更新。在至少一些实施方案中,命令发信机240也可将低级命令传输到实例主机以例如代表计量管理器230从实例主机收集性能或其它度量;在这样的实施方案中,由命令发信机发出的一组命令可包括用于度量收集的非修改命令以及实现配置改变的修改命令。
注意,虽然实例状态管理器210——如它的名称所指示的——可以知道各种资源实例的状态,低级部件例如工作流管理器225、命令发信机240和/或事件收听器245在所描绘的实施方案中可以是无状态的,至少在实例状态的知识或关于实例状态的细节可能不被这样的较低级部件需要以执行它们的功能的意义上。通过将关于实例状态的信息限制到有限的一组部件,无状态部件例如工作流管理器和命令发信机的实现方式可实质上在这样的实施方案中被简化。也注意,虽然图2的双向箭头指示可出现在所示的各种控制服务器部件之间的一些类型的交互的示例,但是在至少一些实施方案中额外类型的交互也可在部件之间被支持,例如,在一些实施方案中任一个部件可能能够与任何其它部件通信。
图3示出根据至少一些实施方案的实例主机平台(其可包括由提供者网络运营商拥有的平台以及第三方平台)的示例部件。如所示,实例主机平台可包括配置来接收由控制服务器的命令发信机240产生的命令的序列的命令接收器部件305,例如web服务器。实例主机还可包括提供在主机的裸硬件的顶部上的虚拟化功能的管理程序317。在所描绘的实施方案中,管理程序317可将实例主机平台的资源组织成多个域,其中一个域(其可被称为域零)用于管理而其它域用于资源实例。可在域零中建立操作***315的实例。响应于每个接收到的命令或命令的序列,命令接收器305可例示远程命令执行器(RCE)330,例如330A或330B。RCE 330可接着发出对操作的请求,例如涉及管理程序317或域零操作***315的操作。在一些实施方案中,RCE 330可被考虑或实现为域零操作***315或管理程序317的部件。在发出其操作请求并接收到结果(包括例如返回代码、错误输出或标准输出)之后,给定RCE可在所示实施方案中终止或退出。RCE在一些实现方式中可自动退出或终止,而在其它实现方式中RCE可由命令接收器305终止(例如使用“杀死”信号或某个其它机制)。在其它实施方案中,RCE可在比仅仅发起给定操作所需的更长的时间段内保持存在,例如,RCE的池可被维持。在至少一个实现方式中,每个RCE可代表CGI进程或执行线程。在一些实施方案中,RCE可开始长运行操作并退出,且长运行操作(其可在RCE退出之后继续)的结果可由命令接收器异步地得到。
由RCE发起的操作可(如果操作成功)最终导致来自工作流管理器225的配置命令的实现,例如导致各种虚拟化资源实例345例如计算资源350A或350B、存储资源360A或360B或网络资源370A或370B的例示(或配置修改)。在所描绘的实施方案中,RCE和命令接收器还可以关于实例状态是无状态的,在它们可能不知道特定的实例在给定时间在什么状态的意义上。在实例主机由管理程序组织到域中的一些实施方案中,每个虚拟机资源实例可对应于相应的域。在所描绘的实施方案中,实例主机还可包括事件调度程序310。事件调度程序可订阅一个或多个事件监控器(例如在管理程序317或域零操作***315内实现的监控器)。在各种实施方案中,事件监控器可通知事件调度程序某些类型的事件是否和何时出现在实例主机处,以及事件调度程序可直接地或经由命令接收器通知在控制服务器处的事件收听器245关于事件。
示例请求/响应流程
图4示出根据至少一些实施方案的在客户端、控制服务器和实例主机平台之间的示例交互。如所示,在所描绘的实施方案中,客户端150可将实例配置请求440例如启动或终止实例的请求提交到控制服务器410。在一些实施方案中,可经由编程接口例如网页或由控制服务器410的交互管理部件235实现的API来传输客户端请求。控制服务器层的多个部件(例如实例状态管理器210、工作流管理器225和/或命令发信机240)可协作来将实例配置请求转换成被传输到实例主机平台301的低级命令450的序列。
在所描绘的实施方案中,低级命令可在实例主机平台301处转换成RCE操作。如所示,可例如通过产生新进程或线程来例示RCE(图4的元素461),RCE可发出或执行一个或多个操作(元素462),并接着退出或终止(元素463)。命令的结果470可被发送回到控制服务器410。基于结果470,实例配置响应480可被发送回到请求客户端150。在各种实施方案中,可使用任何适当的安全联网协议例如HTTPS来传输命令序列450和/或结果470。在一些实施方案中,可根据JSON或XML的变形来格式化命令和结果。在各种实施方案中,所使用的命令协议可支持至少一些幂等操作。在一些实施方案中,命令协议可支持各种其它命令类型和功能,包括性能度量收集、日志记录收集等,例如以便确定拥有在实例主机平台301处的一个或多个资源实例的客户端的计费金额,低级命令可由控制服务器410发出以确定客户端向实例发出多少各种类型的操作或客户端在实例主机平台处引起多少网络流量。在一些实现方式中,除了RCE以外的机制可用于某些类型的控制服务器请求的操作,例如度量或日志记录收集,而在其它实现方式中,RCE可用于配置修改和度量/日志收集。
图5示出根据至少一些实施方案的从在控制服务器处的工作流管理器节点开始的命令流程的示例。所示示例处理在实例主机处的软件RAID(独立磁盘冗余阵列)设备的创建,其可代表建立新虚拟计算实例所需的配置的部分。在这里提供示例以使用具体的示例示出命令细节的水平,控制服务器和实例主机的不同部件可在一个实施方案中在该水平处操作;在各种实施方案中,可使用类似的粒度的命令来实现与RAID设备无关的很多其它类型的配置操作。经过时间从图5的顶部到底部增加。
在所描绘的实施方案中,工作流管理器225可响应于客户端对新计算实例的请求例如从实例状态管理器210接收高级请求以建立计算实例的根文件***(图5的元素502)。工作流管理器225可向命令控制器240提交涉及块设备子***的命令“block.raid1.create”(元素507),请求具有规定参数值的RAID1设备的创建(例如为软件设备名称,例如“md2”、“sda3”等)。对于待创建的新实例,工作流管理器225可至少部分地基于从配置定义器220得到的配置定义或布局来确定参数值。
响应于“block.raid1.create”命令,命令发信机240可将“RCE.exec”命令提交到实例主机的命令接收器305(元素512)。命令接收器305又可例示执行所请求的操作的RCE进程或线程,在这种情况下是在域零操作***层处的“mdadm”(多设备管理)命令的调用(元素515)。RCE进程或线程可得到来自调用的返回值或退出代码(在元素518中的“$?”值)、来自所调用的操作的标准输出(在元素518中的“$1”值)以及来自所调用的操作的标准错误(在元素518中的“$2”值)。这些结果可由命令接收器传输回到命令发信机240(元素521)。命令控制器240又可将结果转换回成它接收的“block.raid1.create”命令的返回值(例如“真”,在本示例中指示成功),并将返回值传输回到工作流管理器225(元素524)。工作流管理器225可类似地确定它接收的“setup-instance-root-fs”命令的返回值,并将这个返回值(也在本示例中的“真”)提供到实例状态管理器(元素527)。注意,各种部件(其交互在图5中示出)可能不知道实例状态信息,其可由实例状态管理器维持;替代地,每个所描绘的层可按需要简单地执行较低级操作,其累积结果可促成实例状态的变化(例如促成实例的启动、重新配置或终止)。
在一些实施方案中,当新实例主机平台被添加到提供者网络的数据中心时,可能必须做出关于最终部署在主机上的资源实例的特定类型和数量。在这样的实施方案中,新实例主机可被认为对托管实例“注册”,且注册的结果可包括一个或多个实例类型的“实例槽”(可在主机上启动的潜在实例的逻辑表示)的数量的确定。图6示出根据至少一些实施方案的与实例主机平台的注册相关的示例操作。如在图5的情况中的,经过时间从图6的顶部到底部增加。如在元素602中所示的,实例主机可将注册请求传输到实例状态管理器210(或注册请求可代表实例主机被传输)。在一些实施方案中,与实例状态管理器分离的注册管理器可用于使注册过程协调一致。实例状态管理器210可响应于注册请求而将实例槽建立请求传输到容器管理器205,如元素607所指示的。实例槽建立请求可代表请求的等效形式以回答问题“实例主机X应支持多少和什么实例类型的实例槽?”。容量管理器205可至少部分地通过将硬件容量请求提交到配置定义器220来对实例槽建立请求做出响应,如在元素612中指示的。在至少一些实施方案中,可在库存数据库中可得到关于由提供者网络作为实例主机获取的技术设备的硬件容量的信息。在一些实现方式中,来自一个或多个优选的供应商的几种“标准”类型的硬件设备例如基于机架的服务器可用于在提供者网络中的实例主机,所以可以没有对在注册时间的性能测试的需要,即库存可包含足够的信息来确定实例主机的能力。配置定义器可执行库存查找(元素615)以检索实例主机的硬件细节(元素618)。
基于硬件细节,配置定义器可简洁陈述实例主机的一组可行的实例配置(元素621),例如配置定义器可基于在提供者网络中的在使用中的“大”、“中”和“小”实例类型的定义来确定实例主机可能能够托管M个“大”计算实例、N个“中”计算实例或P个“小”计算实例。可行配置的列表可被提供到容量管理器205。容量管理器可接着基于各种因素例如对各种类型的实例的当前和预期供应和需求来选择实例主机的可行配置之一。在一些实施方案中,容量管理器205也可考虑定价策略和/或在新实例主机所位于的数据中心或可用性容器处的当前资源利用率水平。容量管理器205可接着将选定实例槽定义(例如“N个大实例槽”)传输到实例状态管理器(元素624),其可将槽定义存储在元数据数据库中。在一些实施方案中,实例状态管理器210可向实例主机提供注册确认(元素627),其可向实例主机指示它准备好实例操作(元素631)。在其它实施方案中,确定实例(特定的实例主机将用于所述实例)的数量和类型的过程可不同于图6所示的过程。
图7示出根据至少一些实施方案的与启动资源实例相关的示例操作。经过时间从图7的顶部到底部增加。在所描绘的实施方案中,实例状态管理器210可从客户端150接收请求以启动规定实例类型的资源实例(例如“小”、“中”或“大”计算实例)。实例状态管理器210可将请求发送到容器管理器205(如在图7的元素702中所示的),指示所需的实例类型。容量管理器205可至少部分地基于实例主机池110的数据库来确定用于待启动的实例的特定的实例主机301和特定的IP地址,并将至少IP地址提供到实例状态管理器(元素707)。实例状态管理器210可接着将对特定的配置参数和布局信息的请求提交到配置定义器(元素711),指示实例类型和IP地址。在所示实施方案中,配置定义器可提供所请求的配置参数——包括在实例主机处的特定页槽号——传输回到实例状态管理器(元素714)。实例主机管理器可接着向工作流管理器225发出启动命令(元素721),指示实例类型、IP地址和页槽号。工作流管理器225可向命令发信机240发起命令序列(元素721),命令发信机240又可将命令序列提交到实例主机用于使用一个或多个RCE来执行(元素724)。
HTTPS命令请求和响应
在至少一些实施方案中,如之前提到的,可使用安全协议例如HTTPS来实现在控制服务器和实例主机之间的通信。图8示出根据至少一些实施方案的从控制服务器发出到实例主机的命令请求的示例元素。所使用的HTTPS请求和响应格式可包括多个报头和主体元素,其中在图8中只提供几个示例。如在元素802中所示的,用于从控制服务器的命令发信机发送到实例主机的命令接收器的请求报头可包括从请求的主体确定的摘要或哈希值820,使得请求主体的整体性可在实例主机处被证实。请求报头可规定HTTP“PUT”动词或请求方法,如在元素821中所示的,具有包括“CHANGE-ID”、“UUID”和“subsystemID”的资源名称。CHANGE-ID可代表导致命令被发出的特定客户端请求;在一些实施方案中,对应于给定客户端请求的CHANGE-ID可例如由客户端交互管理器235指定,并可作为在控制服务器例如图4、图5或图7所示的控制服务器的不同部件之间的命令和响应流程中的参数被发送。在所描绘的实施方案中可为特定的命令请求产生通用唯一标识符或UUID,例如命令发信机240可为它发送到实例主机的每个命令请求产生不同的UUID。子***标识符可指示将用于在所描绘的实施方案中执行所请求的操作的在域零操作***或管理程序层处的特定子***。在至少一些实施方案中,当命令请求被发送、接收时或当相应的操作在实例主机处被执行时日志记录可产生,且日志记录可包括CHANGE-ID、UUID和子***ID中的一些或全部,允许更容易的调试或关联分析。
HTTPS请求的主体806可包括根据规定命令协议的在图8的所描绘的示例中使用JSON型语法规定的命令序列。在一些实施方案中,命令协议可允许在请求主体806内的文件内容的规定,其中文件内容可用作一些或所有命令的参数。例如在图8中,具有标签@FILE1和@FILE2的两个文件的内容(例如在URL编码十六进制形式中)可包括在请求主体中。如所示,关键字“commands”可指示包括在请求中的该命令序列。在该序列中示出三个命令——“cmd1”、“cmd2”和“cmd3”。“cmd1”具有两个文件参数FILE1和FILE2,其相应的内容由@FILE1和@FILE2指示。“cmd2”没有任何文件参数,而“cmd3”具有单个文件参数FILE2。根据在使用中的命令协议,当对应于“cmd1”的操作经由RCE在实例主机处被执行时,@FILE1和@FILE2的内容在所描绘的实施方案中将被提供为用于操作的参数。类似地,当RCE执行对应于“cmd3”的操作时,@FILE2的内容将被提供为参数。以图8所示的方式在请求主体中的文件的规定可在所描绘的实施方案中代表方便的功能;可在其它实施方案中使用其它方法,例如包含文件内容的单独消息。在一些实施方案中,命令协议可要求命令以它们出现在请求主体中的顺序在实例主机处被执行;在其它实施方案中,例如排序可能不是所需要的。在一个实现方式中,可对可在单个请求中被传输的命令的数量强加最大限制。在其它实现方式中,可以不对命令的数量强加限制。在一些实施方案中,请求报头的UUID可包括在主体中,如图8所示。在其它实施方案中,与图8所示的JSON型格式不同的格式例如XML可用于指示命令序列。
在一些实施方案中,对命令请求的回复可包括序列的每个命令的条款或元素。对于一个实施方案,在响应主体810中示出请求主体806(“cmd1–F FILE1 FILE2”)的命令序列中的第一命令的响应条款。“命令号”值(在所描绘的示例中的“1”)指示条款是针对序列的第一命令。通过第一命令的执行产生的标准输出在“stdout”字段中被指示。标准错误输出在“stderr”字段中被指示。命令的退出代码(例如由所使用的操作***或管理程序部件返回的值)在“exit-code”字段中被指示。此外,响应条款包含挂钟时间(在实例主机上完成命令所花费的经过时间)以及指示对在实例主机处的命令采用的资源使用的***和用户CPU时间的度量,其以单位例如微秒或毫秒表示。在各种实施方案中,除了图8所示的格式以外的其它格式可用于命令和/或命令响应。
用于实例主机的远程配置的方法
图9是示出根据至少一些实施方案的可操作来执行实例主机的远程配置的控制服务器的操作的方面的流程图。如在元素901和902中所示的,一组计算设备可被指定用作提供者网络的实例主机,且一组控制服务器可被指定管理实例主机的远程配置。在不同的实施方案中可使用在实例主机上实现的(且在控制服务器的帮助下配置的)资源实例来提供各种类型的多租户网络可访问服务,包括基础设施相关服务例如虚拟化计算服务、存储服务或联网相关服务以及较高级多租户应用例如关系或非关系数据库、内容管理服务等。
在所描绘的实施方案中可例如在前端负载平衡器处或在前端控制服务器部件例如客户端交互管理器235处接收专用于一个或多个多租户服务的实例配置请求,例如启动新虚拟化服务器或终止现有的虚拟化服务器的请求(元素907)。根据配置请求的性质和控制服务器部件的实现方式(例如控制服务器功能的部件是否分布在多个控制服务器中、被实现为多节点群集或都合并在单个整体控制服务器内),可能必须做出关于哪些特定的控制服务器在对客户端的请求做出响应时将被涉及以及关于哪些特定的实例主机将被涉及的选择。如果例如在所描绘的实施方案中客户端希望激活或启动新计算实例,则可基于因素例如在数据中心处的各种实例主机的利用率水平或在源(客户端的请求从该源被接收到)附近的可用性容器、客户端签约的定价模型、可用实例主机相对于用于客户端的其它实例主机的位置或基于由客户端指示的明确的位置偏好来选择(元素910)特定的实例主机。类似地,可在不同的实施方案中基于各种因素例如在元素902中确定的这组的各种控制服务器的利用率水平或位置(例如到客户端或所选择的实例主机的接近度)来对客户端的请求选择(元素910)控制服务器。
在所描绘的实施方案中,多个不同的控制服务器部件例如实例状态管理器210、工作流管理器225、配置定义器220和命令发信机240可协作来对客户端的请求做出响应。在一些实施方案中,例如为了防止选定实例主机的配置状态或元数据的冲突突变,可在选定实例主机上由控制服务器部件之一可选地获取锁定(元素913),或可使用某个其它并行控制机制。在不同的实施方案中可使用不同的锁定粒度,且对于不同类型的配置变化,例如可在一些实施方案中锁定与给定实例主机相关的元数据的子集,而在其它实施方案中,一组实例主机的元数据可被锁定作为一个单位。从配置请求得到的命令序列可最终从选定控制服务器部件传输到选定实例主机(元素914)。在一些实施方案中,标准协议或格式例如HTTPS和JSON或XML可用于命令序列。
在所描绘的实施方案中,在选定实例主机处,一个或多个低级、无状态、轻质远程命令执行器(RCE)可例如以CGI进程或线程的形式被例示以实现在命令序列中指示的操作(元素916)。根据实现方式,可为序列中的每个命令实现单独的RCE线程/进程,或单个RCE可负责实现几个命令。在至少一些实施方案中,RCE可在发出或发起操作之后退出或终止。在所描绘的实施方案中,RCE操作的结果(例如操作***或管理程序级命令的返回值或退出代码、标准输出和/或标准错误)可被提供回到发出命令请求的控制服务器部件(元素919)。在一些实现方式中,RCE可自愿退出,而在其它实现方式中,RCE可在它们的结果被接收到之后明确地终止(例如通过发送“杀死”信号)。在至少一些实施方案中,基于所收集的RCE结果,可确定客户端的配置请求的较高级结果(例如成功结果或失败结果)(元素921)。如果锁定被获取以防止在对应于元素913的操作中的冲突配置变化,则它可被释放。在一些实施方案中,可将结果的指示或通知提供到请求客户端。
如之前提到的,在一些实施方案中,控制服务器部件可配置来当某些类型的事件(例如相对于控制服务器命令异步地出现的事件,例如未预料到的过程或部件故障/关机)出现在实例主机处时从实例主机接收配置。图10是根据至少一些实施方案的示出与在控制服务器处的远程事件通知有关的操作的方面的流程图。如在元素1001中所示的,一个或多个特定的控制服务器可被选择来保持跟踪在给定实例主机处的各种异步事件。在一些实施方案中,可使用负责将命令序列提交到给定实例主机的相同的控制服务器,而在其它实施方案中,可为事件通知选择不同的控制服务器。可在选定控制服务器上例示事件收听器245(元素1004)。事件收听器245可订阅在给定实例主机处的事件调度程序310或向在给定实例主机处的事件调度程序310注册,以从实例主机接收事件通知。在一些实施方案中,事件调度程序可配置来例如从安装在实例主机上的虚拟化软件层事件监控器(或操作***层事件监控器)得到感兴趣的事件何时出现在实例主机处的指示。在一些实施方案中可使用安全联网协议例如HTTPS来提供对控制服务器处的事件收听器的通知,且在这样的实施方案中可选择为事件通知指定的特定端口。
在所描绘的实施方案中,当事件例如未预料到的关机或故障出现时,事件调度程序310可使用适当的格式和协议将通知传输到事件收听器245。在事件收听器接收到通知(元素1007)之后,根据例如事件的性质,一个或多个其它控制服务器部件例如实例状态管理器210或恢复管理器可被通知(元素1010)。关于被事件影响的资源实例的状态信息可例如在受影响的实例上维持的状态元数据内由状态管理器210修改(元素1013)。在所描绘的实施方案中,事件收听器245本身可能不知道实例状态,并可只负责从一个或多个实例主机接收事件通知并将事件传递到适当的较高级控制服务器部件。因此,在图10所示的实施方案中,控制服务器设计的模块化性质可使事件通知接收(事件收听器的责任)与较高级状态管理决定隔离。在至少一些实施方案中,对于某些类型的事件,在受影响的实例主机上的恢复操作可由实例状态管理器210或控制服务器的单独的恢复管理器部件发起。在一个实施方案中,可通知拥有在出现了事件的受影响的实例主机上的资源实例的客户端。
在一些实施方案中,可建立控制服务器的一个或多个池120和/或专用于在实例主机处的资源实例(包括可能需要在故障事件之后恢复实例状态的恢复操作)的远程管理的其它资源。包括在这样的池中的控制服务器的数量可在不同的实现方式中例如基于当前操作条件来改变,并可基于多个因素来确定。图11是示出根据至少一些实施方案的与确定控制服务器池尺寸有关的操作的方面的流程图。在图11中描绘的实施方案中,可至少部分地基于与大规模故障事件(例如在数据中心级处或可用性容器级的电源故障,其影响大量资源实例)相关的恢复需要来确定控制服务器尺寸。如在元素1101中所示的,可在大规模断电时收集度量,例如断电的频率、被影响的运行资源实例的数量的范围、各种恢复操作花费多长时间、随恢复时间而变化的客户反馈等。根据这样的度量,可发展应被计划的断电事件的规模的某些导向目标和实例的目标恢复时间。
如在元素1104中指示的,可产生模型(例如基于等式的模拟模型或分析模型)以确定在目标尺寸的大规模断电出现的事件中可能需要的某些类型的恢复操作的速率。这样的恢复操作可例如包括检查和重建文件***、将虚拟机图像或实例快照从仓库复制到实例主机以及在控制软件堆栈的各种级别处的类似操作。在一个实现方式中,例如模型可指示为了在X分钟内对100,000个虚拟计算实例的故障完成实例恢复,类型R1的恢复操作的所需速率是每分钟50,000,且类型R2的恢复操作的所需速率是每分钟10,000。在一些实施方案中,可运行测试以确定各种类型的恢复操作可由各种尺寸的控制服务器完成时的速率(元素1107)。在这样估计了各种类型的恢复操作的所需速率和不同类型的控制服务器的容量以使用模型和测试结果执行这样的操作之后,可确定为控制服务器池委托的一个或多个容量级别的控制服务器的数量(元素1111)。在一些实施方案中,模型可用于更详细的推荐,例如在各种数据中心处或在不同的可用性容器内的控制服务器的放置以优化恢复操作时间。也可在一些实施方案中使用类似的模型以确定对标准操作条件(例如在没有断电的情况下)可能需要的控制服务器的数量。在这样的实施方案中,如果在正常操作条件下特定的容量级的所需控制服务器的数量被估计为N1,且在目标尺寸的大规模故障下的那个容量级的所需控制服务器的数量被估计为N2,则提供者网络的运营商可选择被设置到N1和N2中的较大者的池尺寸,使得这两种类型的操作条件都可被成功地管理。
第三方资源实例
至少在一些实施方案中,提供者网络(或全体控制服务器的分布式集合)的控制服务器可能能够管理在提供者网络外部的第三方平台的远程配置,如在图1中对一些实施方案所示的。图12是示出根据一些实施方案的这样的控制服务器的操作的方面的流程图。如在图12的元素1201中所示的,可在能够管理第三方实例主机平台以及在提供者网络内部的实例主机的控制服务器处接收涉及多租户网络可访问服务的实例配置请求。根据请求的性质,控制服务器可确定特定的实例主机平台,对应于请求的配置操作应在该实例主机平台处被执行(元素1204)。如果选定平台是第三方平台(如在元素1207中检测到的),则控制服务器部件可向第三方平台发出低级命令序列(元素1210)并例如使用与之前描述的关于工作流管理器和命令发信机的功能的技术类似的技术来收集结果。如果选定平台是提供者网络平台(如也在元素1207中检测到的),则低级命令可被发出到提供者网络平台(元素1213),且结果可被收集。在任一情况下,一个或多个控制服务器部件可分析低级命令序列的所收集的结果以确定实例配置请求的较高级结果,且至少在一些实施方案中和对于某些类型的请求,响应可被提供到提交请求的客户端(元素1216)。如之前提到的,在至少一些实施方案中,在图12中关于第三方平台示出的功能的类型还可或替代地关于在入网点位置处的平台和类似的远程平台被支持。
在一些实施方案中,提供者网络102可支持代表资源容量单元组的一个或多个默认“实例家族”。一些实例家族可为一般使用、即为运行通常使用的应用而设计;可为专门使用例如为高存储器应用、高CPU应用、群集应用、并行应用等支持其它实例家族。在第三方(例如除了提供者网络运营商以外的实体)被允许从提供者网络的控制服务器注册它们的实例主机用于远程实例配置的一些实施方案中,至少一些第三方可定义它们自己的默认实例家族。在至少一些实施方案中,客户端可规定偏离由提供者网络和/或第三方定义的默认实例类型的变化,如下面更详细描述的。图13示出根据至少一些实施方案的可由提供者网络和由第三方支持的相应的计算资源实例定义的示例。示出了可使用属于提供者网络102的实例主机来支持的“标准”实例家族1302的一个示例连同由第三方为第三方的实例主机定义的另一示例实例家族1340。计算资源实例类型可在各种特征例如计算容量、存储器容量、存储容量、联网容量、操作***版本或地址尺寸(例如32位相对于64位地址)等方面彼此不同。在图13中,实例类型可被示为具有不同的计算容量(以被称为“C”的单位表示)、存储器容量(以被称为“M”的单位表示)和存储容量(以被称为“S”的单位表示);为了清楚起见没有示出在实例类型之间的其它差异。在一些实施方案中在提供者网络内或在给定第三方网络内可定义多于一个实例家族,例如,可为存储器密集的应用支持特殊“高存储器”实例家族。在一个实施方案中,给定提供者网络或给定第三方可定义或支持仅仅一种类型的实例。
在一些实施方案中,可使用一小组不同的硬件服务器类型来实现给定实例家族的不同实例类型(例如,在一些情况下,甚至单服务器类型对于给定家族的所有实例类型可能就足够了)。例如,在所示实施方案中,使用具有32个处理核心、64千兆字节的可用主存储器和1600千兆字节的可用磁盘存储的单服务器类型“S1”可在提供者网络102内实现标准实例家族1302的各种实例类型(小、中、大和超大)。标准实例家族1302的四个实例类型的相对计算容量的比是1:2:4:8。如果超大实例1316被允许使用S1服务器的所有32个核心,则大实例1314可被允许使用多达16个核心,中实例1312可使用多达8个核心,而小实例1210可使用多达4个核心。类似地,如果超大实例1316被允许使用主存储器的所有64千兆字节,实例类型大、中和小可使用的最大存储器可分别被设置到32千兆字节、16千兆字节和8千兆字节。不同实例类型的存储容量限制可被设置在相同的比中:超大实例的所有1600千兆字节、大实例的800千兆字节、中实例的400千兆字节和小实例的200千兆字节。
在一些实施方案中,可使用管理程序的设置或参数或用于实现不同实例类型的其它低级软件来控制对处理器核心使用、存储器使用、存储使用的限制以及其它限制例如联网限制等。因此,通过借助于之前描述的控制服务器部件改变在给定S1服务器上的虚拟化设置,在至少一些实施方案中可能建立八个小实例、四个中实例、两个大实例、一个超大实例或小、中和大实例的各种组合(例如一个大实例、一个中实例和两个小实例)。在标准家族中的每个较大的实例类型的容量可潜在地被划分以形成整数数量的较小实例的事实可能在来自控制服务器部件的实例主机的灵活配置中是有帮助的。虽然上面提到单服务器类型S1,在一些实施方案中,可使用几个不同的服务器类型来实现给定实例家族的各种容量级别,且没有用于实例家族的不同容量级别的核心或其它资源的数量是彼此的整数倍的要求。
在一些实施方案中,希望为第三方平台的远程配置利用提供者网络的控制服务器功能的第三方可能需要为用于提供者网络的实例主机的它们的实例主机平台使用相同的硬件平台或供应商。然而,在至少一些实施方案中,至少一些第三方运营商可为它们的候选实例主机平台使用不同类型的硬件,且因此,在这样的实施方案中,它们的实例类型可在各种类型的容量(例如计算、存储器或存储容量)方面不同于提供者网络本来的实例类型。在图13的示例中,第三方实例家族1340包括“基线”实例类型和“大”实例类型。在至少一些实施方案中,由给定第三方定义的不同类型的实例的容量比可被提供到提供者网络运营商,例如作为在提供者网络运营商和第三方之间的商业协定的部分。例如,在图13中,在“基线”和“大”第三方实例类型的计算容量之间的比被示为x:y,在第三方实例类型的存储器容量之间的比被示为p:q,以及在存储容量之间的比被示为f:g。
在提供者网络例如通过提供共享实例预留接口和/或共享配置API来实现支持第三方实例家族1340的面向客户端的接口的实施方案中,客户端可能需要被通知关于第三方实例和提供者网络本身的实例的相对容量。在所描绘的实施方案中,例如提供者网络的控制服务器的能力测试器部件215可负责确定各种第三方实例类型相对于“标准”实例家族1302的容量。能力测试器可例如将一组测试1390传输到特定的第三方实例主机平台(“基线”或“大”实例在该第三方实例主机平台上被启动),并使用测试的结果1392来确定第三方实例类型与提供者网络的标准实例类型的容量之比,以及证实第三方实例类型的容量之比(例如,x:y、p:q、f:g)是正确的。此外,能力测试器215在一些实施方案中也可负责验证新实例主机候选平台,第三方希望将该新实例主机候选平台添加到从提供者网络的控制服务器部件远程地控制的其实例主机群。除了性能和能力测试以外,在一些实施方案中其它类型的测试也可由能力测试器在第三方平台上进行,包括例如确保期望软件已被安装、适当种类的RCE可按需要由控制服务器成功地调用以实现配置操作等的测试。
在提供者网络和/或第三方网络定义一组默认的所支持的实例类型的至少一些实施方案中,可通过允许客户端指示偏离所支持的实例类型的特性的变化来支持关于可由客户端得到的资源实例的特性的进一步的灵活性。例如,在一个实施方案中可支持一组默认虚拟化实例类型,其中每个实例类型具有一组相关的特性或能力。一个特定的默认实例类型DIT1可由CPU性能特性CP、磁盘存储特性DP、网络吞吐量特性NP、网络时延特性NLP和已安装的软件特性SP特征化。客户端可例如在实例配置请求中指示它们希望启动资源实例,其特性通常类似于对DIT1规定的特性,但具有不同的网络时延特性NLP2或一组不同的已安装软件SP2或具有某个其它特性变化。如果控制服务器部件确定所请求的特性变化可被支持,则根据客户端的请求配置资源实例的一组命令(例如包括实现特性变化的命令)可使用上面描述的种类的技术被发出。在本文描述的控制服务器部件的去耦可允许这样的变化比在实例配置的更多的硬连线方法被使用的环境中更容易得多地被使用。
在一些实施方案中,由图4所示的控制服务器体系结构的种类允许的灵活性可允许客户端定义它们自己的实例类型,其特性可实质上不同于由提供者网络和/或由第三方提供者支持的默认实例类型。在这样的实施方案中,客户端C1可例如经由编程接口和/或使用由提供者网络定义的实例定义语言或协议来提交详述各种性能和其它能力的它们的优选实例类型的定义。各种控制服务器部件(例如能力测试器215)可确定哪个实例主机平台(在提供者网络内部的平台、第三方平台或这两者)——如果有的话——能够支持客户端定义的实例类型,且那些实例主机平台可用于那个客户端的实例配置请求。在一些实施方案中,可支持完全动态的实例定义,其中客户端可根据需要为它们的任何实例定义定制特性或特征。
图14是示出根据至少一些实施方案的由提供者网络的控制服务器执行以配置第三方网络的资源实例来提供网络可访问服务的操作的方面的流程图。如在图14的元素1401中所示的,第三方平台批准请求可经由编程接口(例如API或网页)由控制服务器前端部件例如交互管理器235接收。批准请求可包括关于候选平台(对该候选平台需要批准)的各种类型的信息,例如平台的网络地址或坐标、可用于作为管理员使用网络地址登录到平台的证书、关于在平台上被支持以提供一个或多个多租户服务的实例的种类的实例类型信息和/或指示可被运行以验证平台能够支持它主张支持的资源实例的测试的类型的测试信息。(注意,至少在一些实施方案中,单个批准请求可指示多个候选平台,在这种情况下,测试和在本文对单个平台描述的其它操作的类型可对所指示的每个候选平台重复。)响应于批准请求,控制服务器部件例如能力测试器215可在候选平台上发起一个或多个能力确定操作(元素1404),例如已安装软件堆栈验证、性能测试、可靠性测试、证实RCE可经由远程命令(包括例如web服务器或在候选平台上的其它命令接收器是否可配置来启动基于CGI的进程或线程)被启动的检查等。在候选平台上被支持的实例类型被指示的实施方案中,能力测试器215可证实所指示的实例类型或实例类型的所指示的数量的实例是否可在候选平台上被例示。在一些实施方案中,可将待支持的实例类型的测试定义或这样的测试定义的指针包括在批准请求中。在各种实施方案中,待支持的实例的类型可包括由提供者网络定义、由第三方定义或由第三方和提供者网络定义的实例类型或家族。
如果结果指示候选平台能力是可接受的(如在元素1407中确定的),则平台可被指定为被批准的(元素1413),例如用于包括在平台池中,资源实例配置使用提供者网络的控制服务器在平台池上被远程地执行。如果在平台上的任何额外的配置变化需要支持远程命令(例如web服务器配置变化需要使用适当的二进制或库来启动CGI进程),则可在所描绘的实施方案中例如使用在批准请求中提供的管理员证书来做出这样的变化。如果候选平台的能力被发现是不可接受的,则批准请求可被拒绝(元素1410)。
当随后在控制服务器上(例如经由交互管理器235)接收到客户端的实例配置请求时,控制服务器部件(例如实例状态管理器210)可做出关于提供者网络的实例主机是否用于对请求做出响应或被批准的第三方平台是否将被使用的确定,如也在上面关于图12描述的。在至少一些实施方案中,可使客户端能够指示它们对于源(例如提供者网络或特定的第三方网络)的偏好,在源的平台上它们的实例将被启动,如下面关于图15描述的。在其它实施方案中,实例状态管理器可基于各种因素中的任一个例如第三方平台到客户端的网络的接近度或相对于其它实例主机的利用率水平的第三方平台的当前或预期利用率水平来确定选择被批准的第三方实例主机,即使客户端不明确地指示对第三方提供者的偏好。可相应地做出确定以使用特定的被批准第三方平台(元素1416)来执行客户端所请求的配置。
在控制服务器部件分布在多个服务器中的至少一些实施方案中,可选择特定的控制服务器(较低级控制服务器部件(例如工作流管理器、命令发信机和事件收听器)在该控制服务器处用于选定第三方实例主机平台的远程配置)(元素1419)。可以用与命令实例被发送到提供者网络本身的实例主机的方式类似的方式将命令序列从适当的控制服务器发送到选定的被批准第三方实例主机用于经由一个或多个RCE来实现(元素1422),如前面在图4、5、7、8和9的上下文中描述的。例如,HTTPS协议可用于命令序列,且在不同的实施方案中命令本身可根据JSON、XML或JSON或XML的变形被格式化。在一个实施方案中,可例如使用提供者网络的锁定管理器、由第三方运营商实现的锁定管理器或提供者网络和第三方的锁定管理器的组合来实现在第三方实例主机平台上的配置变化的并行控制。在这样的实施方案中,在向第三方平台发出命令序列之前,可以用上面对锁定提供者网络的实例主机描述的方式类似的方式从适当的锁定管理器得到一个或多个锁定,且可在发起或完成操作之后释放锁定。在第三方平台处,在一些实施方案中命令接收器例如web服务器可按需要例示RCE(例如使用CGI)以执行所请求的一个或多个操作,且RCE可在操作被发起之后终止或退出。可将RCE操作的结果例如退出代码或返回代码、标准输出和/或标准错误提供回到控制服务器,且可基于所收集的RCE结果来提供对客户端的请求的响应(元素1425)。因此,第三方提供者可能能够利用由提供者网络运营商构建的现有实例配置控制基础设施,同时继续拥有并管理它们的第三方数据中心的基础设施。在很多情况下,第三方极大地增加它们的多余或未充分利用的硬件平台的利用率并使它们的多余或未充分利用的硬件平台货币化可能变得可能。如前面提到的,在一些实施方案中,客户端网络也可包括未充分利用的硬件平台,且提供者网络的客户端也可能够使用提供者网络的控制服务器来更好地利用这样的平台。例如,在这样的实施方案中,客户端可能能够在客户端自己的硬件平台上借助于在提供者网络设备上运行的图2的控制服务器部件来启动资源实例。类似地,在至少一个实施方案中,操作或管理入网点(POP)位置的实体可使用提供者网络的控制服务器来配置用于资源实例托管的主机。
在至少一个实施方案中,上面描述的种类的能力测试可随着时间的过去对第三方平台重复,例如以周期性地扩展这样的平台的批准。在一个这样的实施方案中,可确定在一个或多个第三方平台上被再执行以更新批准的能力测试重复的调度表。可接着根据调度表来发起能力测试的重复,且关于批准是否被更新的确定可至少部分地基于重复的结果。
如之前提到的,在一些实施方案中,可给客户端提供编程地指示它们对提供者的偏好的机会,提供者的实例主机将用于客户端的资源实例。图15示出可被实现来使客户端能够从多个提供者选择资源实例——包括在由提供者网络的控制服务器部件控制的第三方平台上例示的实例——的编程用户接口。在所描绘的实施方案中,所示用户接口包括具有消息区域1503和几个表格字段的网页1500。如在消息区域1503中指示的,客户端被请求使用网络1500来提供关于它们的实例需要的一些初步偏好,且表格字段的提交将导致特定的实例主机选项的列表,客户端可从该列表选择一个或多个期望实例。
使用字段1507,客户端可指示它们希望例如经由选择的下拉列表来获取的资源的类型(例如计算对存储对网络),计算资源是默认资源类型。字段1509可用于规定优选的资源供应商;如果客户端不希望规定特定的供应商,则可使用“最便宜的可得到的”供应商的默认选择。使用字段1511,客户端可指示优选的可用性容器或保持在地理上最接近的可用性容器的默认选择被设置。字段1512使客户端能够从可得到的各种实例类型中选择,其中一些可由提供者网络使用它自己的实例主机来实现,而其它可使用第三方所拥有的实例主机来实现。客户端可在包括在元素1512内的各种链路上点击以找到关于每个家族的实例类型的更多细节、可用的定价策略和/或额外的信息。在所描绘的实施方案中,客户端可使用表格字段1513规定所需要的资源实例的数量,并使用表格字段1515规定所需要的实例的持续时间。可使用“提交!”按钮1519来提交客户端的偏好。
注意,在除了图15所示的实施方案以外的其它实施方案中,可从客户端请求不同的偏好信息,以及在一些实施方案中除了网页以外的编程接口(例如API、命令行工具或图形用户接口)可用于得到客户端的偏好。也注意,在一些实施方案中,在上面描述的流程图例如图9、10、11、12和14的流程图中示出的一些操作可以按与在附图中所示的不同的顺序被执行,以及在其它实施方案中,一些操作可被并行地而不是连续地被执行。在各种实施方案中,可省略在流程图中所示的一些操作。
使用案例
有效的模块化资源实例远程配置控制的上面描述的技术在大量平台将用于托管虚拟化资源的各种类型的环境中可以是有益的。它们在使用支持出售给客户端的各种多租户服务所需的平台上配置软件的替代方法可强加相当大的***开销的环境中可以是特别有用的。这样的平台上配置软件可减小计算循环、存储器和/或存储的比例,而应理想地专用于客户请求的、产生收益的资源实例。
示例实施方案
鉴于下面的条款来描述本公开的实施方案:
1.一种方法,其包括:
响应于来自客户端的实例配置请求,
从被指定管理资源实例的远程配置的一个或多个控制服务器的选定控制服务器接收根据实例配置的特定命令协议而格式化的一个或多个命令的序列,其中所述接收在被指定实现网络可访问服务的资源实例的多个实例主机的选定实例主机处被执行;
响应于接收到一个或多个命令的所述序列在所述选定实例主机处例示远程命令执行器;
由所述远程命令执行器在所述选定实例主机处发起对应于一个或多个命令的所述序列的一个或多个配置操作;
向所述选定控制服务器提供所述一个或多个配置操作的结果;
终止所述远程命令执行器;以及
至少部分地基于所述结果向所述客户端提供对所述实例配置请求的响应。
2.如条款1中所述的方法,其还包括:
经由安全联网协议在所述选定实例主机上由web服务器接收一个或多个命令的所述序列;
其中所述例示所述远程命令执行器包括根据公共网关接口(CGI)标准由所述web服务器例示至少一个执行线程。
3.如条款1中所述的方法,其还包括:
由事件调度程序在所述选定实例主机处订阅在所述选定实例主机处实现的事件监控器;
在所述选定实例主机处实现的资源实例处经由安全联网协议从所述事件调度程序向所述组控制服务器的特定控制服务器传输事件的通知,其中所述通知可用于更新所述资源实例的状态信息。
4.如条款1中所述的方法,其还包括:
估计实例恢复配置操作将被执行来在特定类型的故障的情况下恢复在所述多个实例主机处实现的资源实例的速率;以及
至少部分地基于所述估计的速率来确定包括在所述一个或多个控制服务器中的控制服务器的数量。
5.如条款1中所述的方法,其中所述选定实例主机位于提供者网络的第一可用性容器的第一数据中心内,且其中所述选定控制服务器位于在所述提供者网络的第二可用性容器内的不同的数据中心内,其中所述第一可用性容器具有与所述第二可用性容器不同的可用性配置文件。
6.一种***,其包括:
多个实例主机,其可配置来实现网络可访问服务的资源实例;以及
一个或多个控制服务器,其被配置来管理在所述多个实例主机处的资源实例的配置;
其中所述一个或多个控制服务器的选定控制服务器被配置来响应于来自客户端的实例配置请求来将一个或多个命令的序列传输到所述多个实例主机的选定实例主机;
其中所述选定实例主机被配置来响应于接收到一个或多个命令的所述序列而例示远程命令执行器;
其中所述远程命令执行器被配置来发起对应于一个或多个命令的所述序列的一个或多个配置操作;以及
其中所述选定控制服务器被配置来至少部分地基于所述一个或多个配置操作的结果向所述客户端提供对所述实例配置请求的响应。
7.如条款6中所述的***,其中所述选定实例主机还被配置来:
在web服务器处接收一个或多个命令的所述序列;以及
其中所述web服务器被配置来根据公共网关接口(CGI)标准例示所述远程命令执行器。
8.如条款6中所述的***,其中所述选定实例主机包括被配置来执行下列操作的事件调度程序:
订阅在所述选定实例主机处实现的事件监控器;以及
经由安全联网协议向所述一个或多个控制服务器的特定控制服务器传输在所述选定实例主机处由所述事件监控器指示的事件的出现的通知。
9.如条款8中所述的***,其中所述特定控制服务器还被配置来:
至少部分地基于所述通知来更新资源实例的状态信息。
10.如条款6中所述的***,其中所述一个或多个控制服务器包括控制服务器池的多个控制服务器,其中所述控制服务器池的尺寸至少部分地基于实例恢复配置操作将被执行来在特定类型的故障的情况下恢复在所述多个实例主机处实现的资源实例的估计的速率来确定。
11.如条款6中所述的***,其中所述选定实例主机位于提供者网络的第一可用性容器的第一数据中心内,且其中所述选定控制服务器位于在所述提供者网络的第二可用性容器内的不同的数据中心内,其中所述第一可用性容器具有与所述第二可用性容器不同的可用性配置文件。
12.如条款6中所述的***,其中在传输一个或多个命令的所述序列之前,所述选定控制服务器被配置来在所述选定实例主机上得到锁定。
13.如条款6中所述的***,其中根据支持多个命令类型的命令协议来传输一个或多个命令的所述序列,其中所述多个命令类型的命令类型的至少子集包括幂等命令。
14.如条款13中所述的***,其中所述一个或多个控制服务器的特定控制服务器还被配置来:
使用所述多个命令类型的特定命令类型从所述选定实例主机收集一个或多个性能度量。
15.如条款6中所述的***,其中至少部分地基于下列各项中的一个或多个来从所述多个实例主机选择所述选定实例主机:(a)所述客户端的识别信息,(b)在所述实例配置请求中指示的资源实例类型,(c)与所述多个实例主机相关的一个或多个性能度量,或(d)一个或多个定价策略。
16.如条款6中所述的***,其中一个或多个命令的所述序列经由超文本传输协议的变形被传输。
17.如条款6中所述的***,其中一个或多个命令的所述序列根据JavaScript对象符号(JSON)格式的变形被传输。
18.如条款6中所述的***,其中所述实例配置请求指示待配置的资源实例类型,其中所述资源实例类型包括下列各项中的至少一个:(a)计算资源实例,(b)存储资源实例,或(c)联网资源实例。
19.一种存储程序指令的非临时计算机可访问存储介质,所述程序指令在一个或多个处理器上执行时实现包括可配置来托管一个或多个网络可访问服务的主机资源实例的多个实例主机的提供者网络的控制服务器,其中所述控制服务器被配置来:
响应于来自客户端的实例配置请求,其中所述实例配置请求涉及所述一个或多个网络可访问服务的特定服务,
向所述多个实例主机的选定实例主机传输一个或多个命令;
响应于所述一个或多个命令从所述选定实例主机接收在所述选定实例主机处由在所述选定实例主机处例示的远程命令执行器发起的一个或多个配置操作的结果;
至少部分地基于所述一个或多个配置操作的结果向所述客户端提供对所述实例配置请求的响应。
20.如条款19中所述的非临时计算机可访问存储介质,其中所述控制服务器包括下列各项中的一个或多个:(a)配置来确定待传输的所述一个或多个命令的工作流管理器,(b)配置来将所述一个或多个命令传输到所述选定实例主机的通信模块,以及(c)配置来从所述选定实例主机接收异步事件通知的事件收听器。
21.如条款19中所述的非临时计算机可访问存储介质,其中在传输所述一个或多个命令之前,所述控制服务器被配置来在所述选定实例主机上得到锁定。
22.如条款19中所述的非临时计算机可访问存储介质,其中根据支持多个命令类型的命令协议来传输所述一个或多个命令,其中所述多个命令类型的命令类型的至少子集包括幂等命令。
23.如条款22中所述的非临时计算机可访问存储介质,其中所述控制服务器还被配置来:
使用所述多个命令类型的特定命令类型从所述选定实例主机收集一个或多个性能度量。
24.如条款19中所述的非临时计算机可访问存储介质,其中所述一个或多个命令经由超文本传输协议的变形被传输。
25.如条款19中所述的非临时计算机可访问存储介质,其中所述特定的网络可访问服务定义一组资源实例类型,其中所述实例配置请求包括下列项的指示:(a)所述组的特定资源实例类型,以及(b)对所述特定资源实例类型的默认特性的所请求的变化,且其中所述一个或多个命令的至少一个命令以实现所述所请求的变化作为目标。
26.如条款19中所述的非临时计算机可访问存储介质,其中所述所请求的变化包括下列各项中的至少一个的指示:(a)性能能力,或(b)所安装的软件部件。
27.一种存储程序指令的非临时计算机可访问存储介质,所述程序指令在一个或多个处理器上执行时:
从提供者网络的控制服务器接收实例配置命令,其中所述控制服务器被配置来管理资源实例的远程配置以提供一个或多个网络可访问服务;
响应于所述实例配置命令而例示远程命令执行器,其中所述远程命令执行器被配置来根据所述命令发起一个或多个配置操作;以及
向所述控制服务器提供所述一个或多个配置操作的结果。
28.如条款27中所述的非临时计算机可访问存储介质,其中指令在所述一个或多个处理器上执行时:
在web服务器处接收所述实例配置命令,其中所述远程命令执行器包括根据公共网关接口(CGI)标准而例示的至少一个可执行进程,且其中所述至少一个可执行进程被配置来在所述一个或多个配置操作的发起之后终止。
29.如条款27中所述的非临时计算机可访问存储介质,其中指令在所述一个或多个处理器上执行时实现事件调度程序,所述事件调度程序可操作来:
订阅至少部分地由下列各项中的至少一个实现的事件监控器:(a)本地管理程序部件,或(b)本地操作***部件;以及
向所述控制服务器传输由所述事件监控器监控的事件的通知。
30.一种方法,其包括:
在支持网络可访问服务的资源的远程配置的提供者网络处接收包括用于托管虚拟化资源的一个或多个候选平台的指示的平台批准请求;
响应于所述平台批准请求在所述一个或多个候选平台的特定候选平台上执行能力确定操作;
至少部分地基于所述能力确定操作的结果来将所述候选平台指定为用于托管虚拟化资源的被批准平台,所述虚拟化资源将至少部分地经由所述提供者网络的一个或多个控制服务器来配置;
响应于来自客户端的资源请求从所述一个或多个控制服务器的特定控制服务器发出一个或多个配置命令以在所述被批准平台处例示特定的虚拟化资源;以及
至少部分地基于由在所述被批准平台处例示的远程命令执行器发起的操作的结果响应于所述一个或多个配置命令来向所述客户端提供对所述资源请求的回复,其中所述远程命令执行器在发起所述操作之后终止。
31.如条款30中所述的方法,其中所述能力确定操作包括检查所述候选平台是否可配置来例示所述远程命令执行器。
32.如条款30中所述的方法,其中所述能力确定操作包括检查所述候选平台是否包括可配置来根据公共网关接口(CGI)来例示所述远程命令执行器的web服务器。
33.如条款30中所述的方法,其中由所述提供者网络实现的所述网络可访问服务定义一组被支持的虚拟化资源实例类型,其还包括:
在所述平台批准请求中接收所述组被支持的虚拟化资源实例类型的特定虚拟化资源实例类型的指示,其中所述特定候选平台以支持所述特定虚拟化资源实例类型作为目标,其中所述能力确定操作包括检查所述特定虚拟化资源实例类型是否可在所述特定候选平台上实现的测试。
34.如条款30中所述的方法,其中由所述提供者网络实现的所述网络可访问服务定义一组被支持的虚拟化资源实例类型,其还包括:
在所述平台批准请求中接收不是所述组被支持的虚拟化资源实例类型的成员的不同的虚拟化资源实例类型的指示,其中所述特定候选平台以支持所述不同的虚拟化资源实例类型作为目标。
35.如条款30中所述的方法,其中经由至少部分地对第三方交互实现的编程接口来接收所述平台批准请求,且其中所述一个或多个候选平台驻留在所述提供者网络外部的设施处。
36.如条款30中所述的方法,其中所述一个或多个候选平台驻留于入网点(POP)设施处。
37.一种包括一个或多个计算设备的***,所述计算设备被配置来:
在实现多个网络可访问服务的提供者网络处接收包括用于托管虚拟化资源的一个或多个候选平台的指示的平台批准请求;
响应于所述平台批准请求在所述一个或多个候选平台的特定候选平台上发起能力确定操作;
至少部分地基于所述能力确定操作的结果来将所述特定候选平台指定为用于托管虚拟化资源的被批准平台,所述虚拟化资源至少部分地经由所述提供者网络的一个或多个控制服务器来配置;以及
响应于来自客户端的资源请求而从所述一个或多个控制服务器的特定控制服务器发出一个或多个配置命令以使用在所述被批准平台处例示的远程命令执行器来在所述被批准平台处配置特定虚拟化资源。
38.如条款37中所述的***,其中所述特定控制服务器还可操作来:
至少部分地基于由所述远程命令执行器发起的操作的结果来向所述客户端提供对所述资源请求的回复,其中所述远程命令执行器被配置来在发起所述操作之后终止。
39.如条款37中所述的***,其中所述能力确定操作包括检查所述候选平台是否可配置来例示所述远程命令执行器。
40.如条款37中所述的***,其中所述能力确定操作包括检查所述候选平台是否包括可配置来根据公共网关接口(CGI)来例示所述远程命令执行器的web服务器。
41.如条款37中所述的***,其中所述平台批准请求包括特定虚拟化资源实例类型的指示,其中所述特定候选平台以支持所述特定虚拟化资源实例类型作为目标。
42.如条款41中所述的***,其中所述能力确定操作包括检查所述特定虚拟化资源实例类型是否可在所述特定候选平台上实现的测试。
43.如条款37中所述的***,其中所述提供者网络定义一组被支持的虚拟化资源实例类型,其中所述特定虚拟化资源实例类型属于所述组被支持的虚拟化资源实例类型。
44.如条款37中所述的***,其中所述提供者网络定义一组被支持的虚拟化资源实例类型,其中所述特定虚拟化资源实例类型不属于所述组被支持的虚拟化资源实例类型,其中所述平台批准请求包括用于验证所述特定候选平台能够实现所述特定虚拟化资源实例类型的一个或多个测试的指示。
45.如条款37中所述的***,其中所述一个或多个控制服务器被配置来将所述特定候选平台指定为至少一组默认的虚拟化资源实例类型的被批准平台,其中来自客户端的所述资源请求包括未包括在所述组中的实例类型的特定虚拟化资源实例的指示,其中所述一个或多个配置命令被发出以配置所述特定虚拟化资源实例。
46.如条款45中所述的***,其中所述特定虚拟化资源实例的特定特性不同于所述默认的虚拟化资源实例类型中的每个的对应特性,其中所述特定特性包括下列各项中的至少一个:(a)性能特性,(b)存储容量特性,或(c)被支持的软件特征特性。
47.如条款37中所述的***,其中所述一个或多个配置命令经由超文本传输协议的变形被传输。
48.如条款37中所述的***,其中所述一个或多个配置命令根据JavaScript对象符号(JSON)格式的变形被传输。
49.如条款37中所述的***,其中所述一个或多个计算设备还可操作来:
实现使客户端能够从包括(a)所述提供者网络和(b)所述被批准平台的拥有者的一组可用源中选择特定资源的平台源的编程接口。
50.如条款37中所述的***,其中所述平台批准请求从所述客户端被接收,且其中所述一个或多个候选平台驻留在所述客户端的客户端网络中。
51.一种存储程序指令的非临时计算机可访问存储介质,所述程序指令在一个或多个处理器上执行时实现提供者网络的控制服务器,其中所述控制服务器被配置来:
在从客户端接收到涉及至少部分地使用资源实例而实现的网络可访问服务的实例配置请求之后,所述资源实例的配置从提供者网络内被管理,
确定对应于所述实例配置请求的一个或多个配置操作是否在所述提供者网络外部的远程平台被执行;
响应于确定所述一个或多个配置操作在所述提供者网络外部的远程平台被执行,
将一个或多个命令发出到在所述提供者网络外部的选定远程平台;以及
从所述选定远程平台接收所述一个或多个命令的结果;
响应于确定所述一个或多个配置操作不在所述提供者网络外部的远程平台被执行,
将一个或多个命令发出到在所述提供者网络内的选定实例主机;
从所述选定实例主机接收所述一个或多个命令的结果;以及
至少部分地基于所述一个或多个命令的结果向所述客户端提供对所述实例配置请求的响应。
52.如条款51中所述的非临时计算机可访问存储介质,其中响应于确定所述一个或多个配置操作在所述提供者网络外部的所述远程平台被执行,所述控制服务器被配置来:
将所述一个或多个命令发出到在所述提供者网络外部的所述选定远程平台处的命令接收器,其中所述命令接收器被配置来响应于所述一个或多个命令的特定命令而例示在所述选定第三方平台处的远程命令执行器,其中所述远程命令执行器被配置来发起对应于所述特定命令的特定操作,向所述命令接收器提供所述特定操作的结果,并退出。
53.如条款51中所述的非临时计算机可访问存储介质,其中在向所述选定远程平台发出所述一个或多个命令之前,所述控制服务器被配置来使用在所述提供者网络内实现的锁定管理器得到在所述选定远程平台上的锁定。
54.一种存储程序指令的非临时计算机可访问存储介质,所述程序指令在一个或多个处理器上执行时:
接收指示第三方平台被考虑为托管一个或多个虚拟化资源的候选者的平台批准请求;
识别在所述第三方平台上执行的一个或多个能力测试,包括检查被配置来支持特定命令协议的远程命令执行器是否可在所述第三方平台上实现的至少一个测试;
在所述第三方平台上发起所述一个或多个能力测试的执行;以及
至少部分地基于所述一个或多个能力测试的结果来确定是否批准所述第三方平台。
55.如条款54中所述的非临时计算机可访问存储介质,其中所述一个或多个能力测试包括根据对在提供者网络的网络可访问服务处支持的特定实例类型定义的性能水平来检查所述第三方平台的性能能力的特定性能测试。
56.如条款54中所述的非临时计算机可访问存储介质,其中所述一个或多个能力测试包括根据在所述批准请求中指示的对由所述批准请求的发起者定义的特定实例类型的性能水平来检查所述第三方平台的性能能力的特定性能测试。
57.如条款54中所述的非临时计算机可访问存储介质,其中指令在所述一个或多个处理器上执行时:
确定在所述第三方平台上被再执行的能力测试重复的调度表以更新所述第三方平台的批准;
根据所述调度表发起能力测试的重复;以及
至少部分地基于所述重复的结果来确定所述批准是否被更新。
说明性计算机***
在至少一些实施方案中,实现本文所述的一种或多种技术——包括实现各种控制服务器部件和/或实例主机的功能的技术——的一部分或全部的服务器可包括通用计算机***,其包括或被配置来访问一个或多个计算机可访问的介质。图16示出这样的通用计算设备3000。在所示实施方案中,计算设备3000包括经由输入/输出(I/O)接口3030耦合到***存储器3020的一个或多个处理器3010。计算设备3000还包括耦合到I/O接口3030的网络接口3040。
在各种实施方案中,计算设备3000可以是包括一个处理器3010的单处理器***或包括几个处理器3010(例如两个、四个、八个或另一适当的数量)的多处理器***。处理器3010可以是能够执行指令的任何适当的处理器。例如,在各种实施方案中,处理器3010可以是实现各种指令集体系结构(ISA)中的任一个例如x86、PowerPC、SPARC或MIPS ISAs或任何其它适当的ISA的通用或嵌入式处理器。在多处理器***中,每个处理器3010可通常但不是必须实现相同的ISA。
***存储器3020可被配置来存储由处理器3010可访问的指令和数据。在各种实施方案中,可使用任何适当的存储器技术例如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其它类型的存储器来实现***存储器3020。在所示实施方案中,实现一个或多个期望功能例如上面描述的那些方法、技术和数据的程序指令和数据被示为存储在***存储器3020内作为代码3025和数据3026。
在一个实施方案中,I/O接口3030可被配置来协调在处理器3010、***存储器3020和设备中的任何***设备——包括网络接口3040或其它***接口——之间的I/O业务。在一些实施方案中,I/O接口3030可执行任何必要的协议、定时或其它数据变换以将数据信号从一个部件(例如***存储器3020)转换到适合于由另一部件(例如处理器3010)使用的格式。在一些实施方案中,I/O接口3030可包括对通过各种类型的***总线例如***部件互连(PCI)总线标准或通用串行总线(USB)标准的变形附接的设备的支持。在一些实施方案中,I/O接口3030的功能可被分成两个或多个单独的部件,例如北桥和南桥。此外在一些实施方案中,I/O接口3030例如***存储器3020的接口的一些或所有功能可直接合并到处理器3010中。
网络接口3040可被配置来允许数据在计算设备3000和附接到一个或多个网络3050的其它设备3060例如如在图1到图15中示出的其它计算机***或设备之间被交换。在各种实施方案中,网络接口3040可支持经由任何适当的有线或无线通用数据网络例如以太网类型的通信。此外,网络接口3040可支持经由远程通信/电话网络例如模拟语音网络或数字光纤通信网络、经由存储区域网络例如光纤通道SAN或经由任何其它适合类型的网络和/或协议的通信。
在一些实施方案中,***存储器3020可以是如上面对图1到图15描述的配置来存储程序指令和数据的计算机可访问介质的一个实施方案,其用于实现对应的方法和装置的实施方案。然而在其它实施方案中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问介质上。一般来说,计算机可访问介质可包括非临时性存储介质或存储器介质例如磁性或光学介质,例如经由I/O接口3030耦合到计算设备3000的磁盘或DVD/CD。非临时性计算机可访问存储介质还可包括可包括在计算设备3000的一些实施方案例如***存储器3020或另一类型的存储器中的任何易失性或非易失性介质,例如RAM(例如SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。此外,计算机可访问介质可包括经由通信介质例如网络和/或无线链路传送的、例如可经由网络接口3040实现的传输介质或信号,例如电、电磁或数字信号。多个计算设备例如图15所示的计算设备的部分或全部可用于在各种实施方案中实现所述功能;例如,在各种不同的设备和服务器上运行的软件部件可合作来提供功能。在一些实施方案中,除了或代替使用通用计算机***来实现以外,所述功能的部分还可使用存储设备、网络设备或专用计算机***来实现。如在本文使用的术语“计算设备”指至少所有这些类型的设备,但不限于这些类型的设备。
结论
各种实施方案还可包括接收、发送根据前述描述实现的指令和/或数据或将指令和/或数据存储在计算机可访问介质上。一般来说,计算机可访问介质可包括存储介质或存储器介质,例如磁性或光学介质,例如磁盘或DVD/CD-ROM、易失性或非易失性介质例如RAM(例如SDRAM、DDR、RDRAM、SRAM等)、ROM等以及经由通信介质例如网络和/或无线链路传送的传输介质或信号例如电、电磁或数字信号。
如在附图中示出和在本文描述的各种方法代表方法的示例性实施方案。方法可以软件、硬件或其组合来实现。方法的顺序可改变,且各种元件可被添加、重新排序、组合、省略、修改等。
可做出各种修改和变化,如将对受益于本公开的在本领域中的技术人员明显的。意图是包括所有这样的修改和变化,且因此,上面的描述应在说明性而不是限制性的意义上被看待。
Claims (15)
1.一种用于实例主机配置的***,其包括:
多个实例主机,其可配置来实现网络可访问服务的资源实例;以及
一个或多个控制服务器,其被配置来管理在所述多个实例主机处的资源实例的配置;
其中所述一个或多个控制服务器的选定控制服务器被配置来响应于来自客户端的实例配置请求来将一个或多个命令的序列传输到所述多个实例主机的选定实例主机;
其中至少部分地基于以下各项中的一个或多个从所述多个实例主机中选择所述选定实例主机:所述客户端的识别信息,在所述实例配置请求中指示的资源实例类型,在实例主机处的资源实例类型的可用性,实例主机的位置,所述多个实例主机中的各个实例主机的利用率水平,或由客户端指示的明确位置偏好;
其中所述选定实例主机被配置来响应于接收到一个或多个命令的所述序列而在所述选定实例主机处实例化远程命令执行器;
其中所述远程命令执行器被配置来在所述选定实例主机处发起对应于一个或多个命令的所述序列的一个或多个配置操作;以及
其中所述选定控制服务器被配置来至少部分地基于所述一个或多个配置操作的结果向所述客户端提供对所述实例配置请求的响应。
2.如权利要求1所述的***,其中所述选定实例主机还被配置来:
在web服务器处接收一个或多个命令的所述序列;以及
其中所述web服务器被配置来根据公共网关接口(CGI)标准来实例化所述远程命令执行器。
3.如权利要求1所述的***,其中所述选定实例主机包括配置来执行下列操作的事件调度程序:
订阅在所述选定实例主机处实现的事件监控器;以及
经由安全联网协议向所述一个或多个控制服务器的特定控制服务器传输在所述选定实例主机处由所述事件监控器指示的事件的出现的通知。
4.如权利要求3所述的***,其中所述特定控制服务器还被配置来:
至少部分地基于所述通知来更新资源实例的状态信息。
5.如权利要求1所述的***,其中所述一个或多个控制服务器包括控制服务器池的多个控制服务器,其中所述控制服务器池的尺寸至少部分地基于实例恢复配置操作将被执行来在特定类型的故障的情况下恢复在所述多个实例主机处实现的资源实例的估计的速率来确定。
6.如权利要求1所述的***,其中所述选定实例主机位于提供者网络的第一可用性容器的第一数据中心内,且其中所述选定控制服务器位于在所述提供者网络的第二可用性容器内的不同的数据中心内,其中所述第一可用性容器具有与所述第二可用性容器不同的可用性配置文件。
7.如权利要求1所述的***,其中在传输一个或多个命令的所述序列之前,所述选定控制服务器被配置来在所述选定实例主机上得到锁定。
8.如权利要求1所述的***,其中根据支持多个命令类型的命令协议来传输一个或多个命令的所述序列,其中所述多个命令类型的命令类型的至少子集包括幂等命令。
9.如权利要求8所述的***,其中所述一个或多个控制服务器的特定控制服务器还被配置来:
使用所述多个命令类型的特定命令类型从所述选定实例主机收集一个或多个性能度量。
10.如权利要求6所述的***,其中至少部分地基于下列各项中的一个或多个从所述多个实例主机选择所述选定实例主机:(a)与所述多个实例主机相关的一个或多个性能度量,或(b)一个或多个定价策略。
11.一种用于实例主机配置的方法,其包括:
响应于来自客户端的实例配置请求,其中所述实例配置请求涉及一个或多个网络可访问服务的特定服务,
由控制服务器向多个实例主机的选定实例主机传输一个或多个命令;
其中至少部分地基于以下各项中的一个或多个从所述多个实例主机中选择所述选定实例主机:所述客户端的识别信息,在所述实例配置请求中指示的资源实例类型,在实例主机处的资源实例类型的可用性,实例主机的位置,所述多个实例主机中的各个实例主机的利用率水平,或由客户端指示的明确位置偏好;
从所述选定实例主机接收一个或多个配置操作的结果,其中所述一个或多个配置操作是由远程命令执行器在所述选定实例主机处发起的,并且其中所述远程命令执行器是响应于由所述选定实例主机接收到所述一个或多个命令而在所述选定实例主机处实例化的;以及
至少部分地基于所述一个或多个配置操作的结果向所述客户端提供对所述实例配置请求的响应。
12.如权利要求11所述的方法,其中所述控制服务器包括下列各项中的一个或多个:(a)配置来确定待传输的所述一个或多个命令的工作流管理器,(b)配置来将所述一个或多个命令传输到所述选定实例主机的通信模块,以及(c)配置来从所述选定实例主机接收异步事件通知的事件收听器。
13.如权利要求11所述的方法,其中在传输所述一个或多个命令之前,所述控制服务器被配置来在所述选定实例主机上得到锁定。
14.如权利要求11所述的方法,其还包括:
使用多个命令类型的特定命令类型从所述选定实例主机收集一个或多个性能度量。
15.如权利要求11所述的方法,其中所述一个或多个命令经由超文本传输协议的变形被传输。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/747,190 | 2013-01-22 | ||
US13/747,190 US8966025B2 (en) | 2013-01-22 | 2013-01-22 | Instance configuration on remote platforms |
US13/747,176 | 2013-01-22 | ||
US13/747,176 US9002997B2 (en) | 2013-01-22 | 2013-01-22 | Instance host configuration |
PCT/US2014/012422 WO2014116619A1 (en) | 2013-01-22 | 2014-01-22 | Instance host configuration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105027108A CN105027108A (zh) | 2015-11-04 |
CN105027108B true CN105027108B (zh) | 2018-06-08 |
Family
ID=51227973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480011068.8A Active CN105027108B (zh) | 2013-01-22 | 2014-01-22 | 实例主机配置 |
Country Status (8)
Country | Link |
---|---|
EP (2) | EP2948865B1 (zh) |
JP (1) | JP6130518B2 (zh) |
KR (1) | KR101700313B1 (zh) |
CN (1) | CN105027108B (zh) |
AU (1) | AU2014209611B2 (zh) |
CA (1) | CA2898478C (zh) |
SG (1) | SG11201505650QA (zh) |
WO (1) | WO2014116619A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582298B2 (en) * | 2015-03-20 | 2017-02-28 | Amazon Technologies, Inc. | Executing commands within virtual machine instances |
EP3465434A1 (en) * | 2016-06-16 | 2019-04-10 | Google LLC | Secure configuration of cloud computing nodes |
US10871995B2 (en) * | 2016-09-29 | 2020-12-22 | Amazon Technologies, Inc. | Managed container instances |
KR102480415B1 (ko) | 2017-11-23 | 2022-12-23 | 삼성전자주식회사 | 클라우드 서비스를 제공하는 적어도 하나의 클라우드 서버의 컴퓨팅 자원들을 관리하는 전자 장치 및 방법 |
US11218364B2 (en) * | 2018-06-25 | 2022-01-04 | Amazon Technologies, Inc. | Network-accessible computing service for micro virtual machines |
JP6875334B2 (ja) * | 2018-08-20 | 2021-05-26 | ヤフー株式会社 | サーバ、システム、クライアント装置、ログ情報記憶方法、クライアント情報送信方法及びプログラム |
JP7212158B2 (ja) * | 2018-11-20 | 2023-01-24 | アマゾン・テクノロジーズ・インコーポレーテッド | プロバイダネットワークサービス拡張 |
US10833949B2 (en) | 2018-11-20 | 2020-11-10 | Amazon Technologies, Inc | Extension resource groups of provider network services |
US10963282B2 (en) | 2018-12-11 | 2021-03-30 | Amazon Technologies, Inc. | Computing service with configurable virtualization control levels and accelerated launches |
CN110099379A (zh) * | 2019-03-25 | 2019-08-06 | 北京辰森世纪科技股份有限公司 | 远程配置pos机的方法及装置、***、存储介质、电子装置 |
KR20220011186A (ko) * | 2019-06-28 | 2022-01-27 | 아마존 테크놀로지스, 인크. | 클라우드 제공자 서브스트레이트 익스텐션의 가상화 블록 저장 서버 |
US11064017B2 (en) | 2019-09-24 | 2021-07-13 | Amazon Technologies, Inc. | Peripheral device enabling virtualized computing service extensions |
US11520530B2 (en) | 2019-09-24 | 2022-12-06 | Amazon Technologies, Inc. | Peripheral device for configuring compute instances at client-selected servers |
US11569997B1 (en) | 2020-03-09 | 2023-01-31 | Amazon Technologies, Inc. | Security mechanisms for data plane extensions of provider network services |
CN112667363A (zh) * | 2021-01-05 | 2021-04-16 | 浪潮云信息技术股份公司 | 一种基于云平台的虚拟机模拟云物理主机的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102369509A (zh) * | 2009-03-31 | 2012-03-07 | 亚马逊技术股份有限公司 | 关系数据管理的控制服务 |
CN102460393A (zh) * | 2009-05-01 | 2012-05-16 | 思杰***有限公司 | 用于在虚拟存储资源之间建立云桥的***和方法 |
US8543587B2 (en) * | 2011-03-15 | 2013-09-24 | Electronics And Telecommunications Research Institute | Composite context information management apparatus and method of providing composite context information using the same |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778110A (ja) * | 1993-09-07 | 1995-03-20 | Nec Corp | 遠隔端末装置の遠隔操作方式 |
US8150904B2 (en) * | 2007-02-28 | 2012-04-03 | Sap Ag | Distribution of data and task instances in grid environments |
US9705888B2 (en) * | 2009-03-31 | 2017-07-11 | Amazon Technologies, Inc. | Managing security groups for data instances |
US9135283B2 (en) * | 2009-10-07 | 2015-09-15 | Amazon Technologies, Inc. | Self-service configuration for data environment |
US20120042003A1 (en) * | 2010-08-12 | 2012-02-16 | Raytheon Company | Command and control task manager |
US8661120B2 (en) * | 2010-09-21 | 2014-02-25 | Amazon Technologies, Inc. | Methods and systems for dynamically managing requests for computing capacity |
US20120151057A1 (en) * | 2010-12-03 | 2012-06-14 | Level 3 Communications, Llc | Virtualized connectivity in a cloud services environment |
US8699499B2 (en) * | 2010-12-08 | 2014-04-15 | At&T Intellectual Property I, L.P. | Methods and apparatus to provision cloud computing network elements |
US8561080B2 (en) * | 2011-04-26 | 2013-10-15 | Sap Ag | High-load business process scalability |
JP5420585B2 (ja) * | 2011-04-27 | 2014-02-19 | 株式会社日立システムズ | コンテナ型もしくはモジュール型データセンターからなる分散データセンター |
-
2014
- 2014-01-22 EP EP14742801.5A patent/EP2948865B1/en active Active
- 2014-01-22 KR KR1020157022589A patent/KR101700313B1/ko active IP Right Grant
- 2014-01-22 CA CA2898478A patent/CA2898478C/en active Active
- 2014-01-22 AU AU2014209611A patent/AU2014209611B2/en active Active
- 2014-01-22 WO PCT/US2014/012422 patent/WO2014116619A1/en active Application Filing
- 2014-01-22 JP JP2015555221A patent/JP6130518B2/ja active Active
- 2014-01-22 CN CN201480011068.8A patent/CN105027108B/zh active Active
- 2014-01-22 SG SG11201505650QA patent/SG11201505650QA/en unknown
- 2014-01-22 EP EP21210187.7A patent/EP4053699A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102369509A (zh) * | 2009-03-31 | 2012-03-07 | 亚马逊技术股份有限公司 | 关系数据管理的控制服务 |
CN102460393A (zh) * | 2009-05-01 | 2012-05-16 | 思杰***有限公司 | 用于在虚拟存储资源之间建立云桥的***和方法 |
US8543587B2 (en) * | 2011-03-15 | 2013-09-24 | Electronics And Telecommunications Research Institute | Composite context information management apparatus and method of providing composite context information using the same |
Also Published As
Publication number | Publication date |
---|---|
EP2948865B1 (en) | 2022-01-05 |
SG11201505650QA (en) | 2015-08-28 |
EP2948865A4 (en) | 2016-07-20 |
CN105027108A (zh) | 2015-11-04 |
EP4053699A1 (en) | 2022-09-07 |
CA2898478C (en) | 2017-11-14 |
CA2898478A1 (en) | 2014-07-31 |
JP6130518B2 (ja) | 2017-05-17 |
AU2014209611A1 (en) | 2015-08-20 |
AU2014209611B2 (en) | 2017-03-16 |
JP2016513305A (ja) | 2016-05-12 |
KR101700313B1 (ko) | 2017-01-26 |
WO2014116619A1 (en) | 2014-07-31 |
KR20150110688A (ko) | 2015-10-02 |
EP2948865A1 (en) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105027108B (zh) | 实例主机配置 | |
US9002997B2 (en) | Instance host configuration | |
US10496768B2 (en) | Simulating a production environment using distributed computing technologies | |
US10999208B2 (en) | Handling path issues for storage copy services | |
US10331695B1 (en) | Replication coordination service for data transfers between distributed databases | |
US9003014B2 (en) | Modular cloud dynamic application assignment | |
US20140207919A1 (en) | Instance configuration on remote platforms | |
US7827273B2 (en) | Machine cluster topology representation for automated testing | |
CN109313564A (zh) | 用于支持多个不同租户的高度可用虚拟桌面的服务器计算机管理*** | |
CN104679717A (zh) | 集群弹性部署的方法和管理*** | |
US20180060223A1 (en) | Application monitoring with a decoupled monitoring tool | |
CN109614227A (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
CN113064744A (zh) | 任务处理方法、装置、计算机可读介质及电子设备 | |
Wang et al. | MetaOJ: A massive distributed online judge system | |
Anjos et al. | BIGhybrid: a simulator for MapReduce applications in hybrid distributed infrastructures validated with the Grid5000 experimental platform | |
CN116974874A (zh) | 数据库的测试方法、装置、电子设备及可读存储介质 | |
US11803440B2 (en) | Automated methods and systems for troubleshooting and optimizing performance of applications running in a distributed computing system | |
Wei | System Reliability Modeling and Analysis of Distributed Networks | |
KR102230113B1 (ko) | 가상 서버 상의 계산 코드의 테스트 전개를 위한 시스템 및 방법 | |
CN111226242A (zh) | 云计算网络检查技术 | |
US11989205B2 (en) | Data replication in an active-active databases | |
US20240126632A1 (en) | Automated remediation of issues arising in a data management storage solution | |
US20240126636A1 (en) | Auto-healing service for intelligent data infrastructure | |
Wang et al. | Cloud service in stock trading game: Service virtualization, integration and financial application | |
Paulraj et al. | Fault-Tolerant Cloud System Based on Fault Tree Analysis |
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 |