在分布式计算环境中的虚拟机实例上执行命令的制作方法

文档序号:13561790阅读:246来源:国知局
在分布式计算环境中的虚拟机实例上执行命令的制作方法



背景技术:

云计算是在远程位置可用并可通过网络(诸如互联网)进行访问的计算资源(硬件和软件)的使用。在具有许多计算设备诸如虚拟服务器的计算环境或具有许多服务器计算机的云计算环境中,计算资源的使用可以提供许多优势,包括成本优势和/或快速适应变化的计算资源需求的能力。

为了促进对数据中心资源的更多利用,虚拟化技术可能允许单个物理计算机器托管一个或多个虚拟机实例,所述虚拟机实例表现并操作为连接的计算机用户的独立实例。利用虚拟化,单个物理计算设备可以动态方式创建、维护或删除虚拟机实例。继而,用户可以从数据中心请求计算机资源,并且可以在“根据需要”的基础上或至少在“按要求”的基础上向用户提供不同数量的虚拟机资源。对于管理运行应用的多个(例如,一组)实例或管理其他工作负载的云计算环境的客户,可能会遇到各种配置、故障排除和资源重新分配的问题。随着对云计算资源的使用的增加,可以逐个实例地对虚拟机实例执行监管、管理和故障排除,这可能是耗时的且低效的。

附图说明

将参考附图描述根据本公开的各种实施方案,其中:

图1是根据本公开的实施方案的支持命令执行服务的示例性网络环境的图示。

图2是根据本公开的实施方案的用于在实例上执行命令的示例性通信序列的框图。

图3是示出根据本公开的实施方案的使用命令执行服务的服务提供商环境中的命令可扩展性的框图。

图4是示出根据本公开的示例性实施方案的使用命令执行服务在多租户环境中运行的多个虚拟机实例的示例性系统图。

图5示出了根据一个实施方案包括与控制平面相关联的多个管理部件的示例性系统的进一步细节,所述控制平面可以用于提供命令执行服务。

图6示出了根据一个实施方案作为用于运行虚拟机实例的硬件资产的多个主机计算机、路由器和交换机的示例,其中主机计算机具有可以进行配置的命令执行相关功能。

图7-8是根据本公开的实施方案的在服务提供商环境中的虚拟机实例上执行命令的示例性方法的流程图。

图9描绘了可以实施所述创新的合适的计算环境的一般化示例。

具体实施方式

以下描述涉及支持在分布式计算环境中的虚拟机实例上执行命令的技术和解决方案。更具体地,分布式计算环境的用户可以使用客户端计算设备来向分布式计算发送命令执行请求。命令执行服务(ces)可以接收请求,并且可以基于请求(例如,基于实例id或请求中识别的标签)来检索一个或多个实例id。请求可以进一步识别期望的命令和所述命令的一个或多个参数。ces可以检索定义命令的命令规范/定义文档。可以针对所识别实例中的每一者生成命令执行消息,其中每个消息可以包括命令规范文档和由接收到的请求识别的参数。ces可以使用实例消息传递服务(或另一类型的通信服务)来将每个命令执行消息发送到对应的虚拟机实例。实例处的配置代理可以基于命令规范文档检索插件,并且所述插件可以用于在实例上执行命令。命令执行的结果可以被返回到ces,并且然后返回到客户端计算设备。可以经由ces维护/管理命令规范文档,从而允许使用全局命令规范(全局命令供分布式计算的所有客户端使用)以及自定义命令。例如,命令规范和对应的命令插件由客户端生成并被上传到ces和/或运行客户端实例的服务器计算机(例如,规范可以被上传到ces,并且插件可以被上传/存储在运行客户端实例的服务器计算机上以供实例配置代理使用)。在这方面,ces被集成到分布式计算环境中,从而允许命令可扩展性(例如,增加可用命令的数量)以及用于以安全方式在实例上执行的命令的批量传达。

虚拟机映像包含操作系统(例如,linux)以及在虚拟环境中启动虚拟机所需的其他数据。虚拟机映像类似于物理计算机的磁盘卷,并且可以包括文件系统、操作系统和作为机器启动所需的其他部件。为了启动虚拟机,需要选择硬件。可以通过实例类型来实现硬件选择,实例类型可以允许各种不同大小的存储器、cpu容量、i/o性能等等。虚拟机映像和实例类型的组合可以用于创建“实例”或虚拟机,所述“实例”或虚拟机可以在诸如多租户网络环境中的主机服务器计算机的云计算资源上启动。如本文所使用,术语“虚拟机”和“虚拟机实例”是可互换的。

如本文所使用,术语“计算服务提供商”可以指能够将计算和存储能力作为服务传递给一个或多个终端接收者的云提供商。计算服务提供商可以由组织(即,租户)或代表组织为组织建立(即,计算服务提供商可以提供“私人云环境”)。在其他情况下,计算服务提供商可以支持多租户环境,其中多个客户(即,租户)独立地操作(即,公共云环境)。在这方面,在多租户环境内,多个客户(例如,多个企业或租户)可以租用诸如服务器计算机的资源。

如本文所使用,术语“服务提供商”(或“服务提供商环境”)可以指给一个或多个终端接收者提供与私人或公共云环境相关联的一个或多个分布式计算服务的提供商。在一些情况下,服务提供商可以与云服务提供商相同。在其他情况下,服务提供商可以仅提供由计算服务提供商提供的服务的子集。在其他实例中,服务提供商是预置计算服务的预置服务提供商。

如本文所使用,术语“标签”可以指识别具有共性(例如,与服务提供商环境的客户的帐户相关联的虚拟机实例)的一个或多个网络资源(例如,虚拟机实例)的字符(例如,文本)串。例如,给定客户的多个虚拟机实例可被附上标签或被标记(例如,由客户或服务提供商环境的监管员)。在这方面,可以使用单个标签来识别多个客户实例,并且可以通过标签(例如,从查找表、数据库等)检索实例的识别信息(例如,实例id)。

图1是根据本公开的实施方案的支持命令执行服务的示例性网络环境的图示。参考图1,网络环境100可以包括经由网络108与客户端计算设备104通信的服务提供商102。服务提供商102可以是多租户云网络环境,其中一个或多个客户端(例如,客户端计算设备104的用户)可以在一个或多个服务器计算机上运行一个或多个虚拟机实例(vmi)(例如,实例170、…、172可以在诸如主机服务器169的一个或多个服务器计算机上运行,或者实例可以在其他物理硬件上运行)(尽管图1中仅示出了单个服务器计算机169,但服务提供商102可使用多个服务器计算机)。服务器计算机(例如,169)可以是例如由(或代表)服务提供商102的一个或多个客户端操作的客户端服务器。服务提供商102还可以包括实例识别服务140、实例消息传递服务130和命令执行服务(ces)120。

客户端计算设备104可以用于向设备104的用户提供对虚拟机实例170、…、172中的一个或多个的访问。在说明性实施方案中,客户端计算设备104可以对应于各种各样的计算设备,包括个人计算设备、膝上型计算设备、手持计算设备、终端计算设备、移动设备(例如,移动电话、平板计算设备、电子书阅读器等)、无线设备、各种电子设备和电器等。在说明性实施方案中,客户端计算设备104包括用于通过通信网络108建立通信的必要的硬件和软件部件,所述通信网络可以包括互联网、广域网和/或局域网。例如,客户端计算设备104可以配备有网络设备和浏览器软件应用,其便于经由互联网或内联网与服务提供商102中的一个或多个服务器计算机(例如,169)进行通信。客户端计算设备104可以具有各种本地计算资源,诸如中央处理单元和架构、存储器、大容量存储装置、图形处理单元(gpu)、通信网络可用性和带宽等。

在一个实施方案中,客户端计算设备104可以运行实例管理应用106。实例管理应用106可用于访问和管理vmi170、…、172中的一个或多个。另外,实例管理应用106可以包括命令行界面(cli)和/或控制台用户界面,其可以用于将一个或多个命令传达给服务提供商102,以在vmi170、…、172中的至少一个上执行。

命令执行服务(ces)120可以包括合适的逻辑、电路、接口和/或代码,并且可操作以提供与在vmi170、…、172中的一个或多个上执行命令相关联的功能。ces120还可以包括命令规范存储区122和命令状态存储区124。命令规范存储区122可以用于存储一个或多个命令规范文档,诸如全局命令规范(gcs)126、…、128以及一个或多个自定义命令规范(ccs)130。如本文所使用的术语“命令规范”(或“命令定义”)是指提供用于在实例上执行的命令的定义的文档。在示例性实施方案中,命令规范是具有用于传输由属性值对组成的数据对象的人类可读文本的javascript对象符号(json)文档。全局命令规范126、…、128可以由服务提供商环境102的任何客户端使用。自定义命令规范130包括由服务提供商环境的客户端(例如,客户端设备104的用户)提供的命令规范。

命令状态存储区124可以用于存储在vmi上执行命令的一个或多个命令执行结果(例如,132)。命令执行结果132可以包括给定命令的执行状态和/或在vmi上执行命令的结果/输出。尽管存储区122和124被示为分开的存储区,但是本发明不限于这一点,并且可以将单个存储区用作存储区122和124的组合。

实例识别服务140可以包括合适的电路、接口、逻辑和/或代码,并且可以用于为在服务提供商环境102中运行的vmi提供实例id。例如,实例识别服务140可以使用查找表或数据库,并且可以基于标签提供vmiid(例如,可用vmi170、…、172中的一个或多个vmi可以与标签相关联)。

实例消息传递服务130可以包括合适的电路、接口、逻辑和/或代码,并且可操作以在ces120和vmi170、…、172中的一个或多个之间传达消息(例如,命令)和响应(例如,命令执行结果)。

虚拟机实例170、…、172还可以包括对应的配置代理174、…、176。每个配置代理174、…、176可以包括合适的逻辑、接口和/或代码,并且可操作以管理vmi的执行和运行,包括接收命令(例如,命令执行消息150、…、152)以及选择用于执行命令的多个可用插件(例如,178、…、184)中的一个。在示例性实施方案中,配置代理174、…、176可以作为应用在对应实例170、…、172上运行。

根据本公开的示例性实施方案,命令执行服务120可以实施为服务提供商102内的独立服务(如图1所示),或者其可以实施为一个或多个服务器计算机(例如,169)内的代码库(即,软件)。

图2是根据本公开的实施方案的用于在实例上执行命令的示例性通信序列的框图。参考图1-2,并且在示例性操作中,服务提供商102的用户/客户端可以使用设备104上的应用106(在索引1a处)来向ces120发送命令执行请求(cer)110。cer110可以识别用户希望在实例170、…、172中的一个或多个上执行的命令。cer110还可以包括标签112(和/或一个或多个vmiid,诸如142)以及任选地命令参数116(标签112可以包括多于一个标签和/或一个或多个vmi识别符,诸如vmiid)。在ces120接收到命令执行请求110之后,ces120可以初始地认证请求用户,并验证允许访问与所述标签相关联的vmi的用户的登录凭证。然后,ces120可以将标签112传达给实例识别服务140,并且获得与标签112相关联的vmi170、…、172的实例id142。ces120然后可以从存储区122检索命令规范文档(例如,126或130),其中所检索的命令规范与由cer110识别的命令114相关联。然后,ces120可以为由标签112和实例id142识别的每个vmi(例如,vmi1、…、vmik)生成命令执行消息(cem)。每个cem150、…、152可以包括实例id142、检索到的规范文档(例如,全局文档126或自定义规范文档130)以及与cer110一起接收的命令参数116。参数116可以与规范文档一起使用(例如,通过插件)来执行所识别的命令。命令114可以被预定义(例如,可以从多个可用命令中选择)。

在示例性实施方案中,规范文档126和/或130可以基于规范文档大小包括在cem150、…、152中。例如,如果规范文档小于预定大小(例如,阈值),则文档126/130可以包括在cem150、…、152中。然而,如果规范文档大于预定大小,则文档的识别(例如,到文档的链接)可以包括在cem中。在接收到cem之后,对应的vmi配置代理可以使用文档识别(例如,链接)并提取/检索完整的规范文档,使得可以执行与文档相关联的命令。

所生成的cem150、…、152然后可以经由实例消息传递服务130(在图2中的索引2和3处)传达到由cem识别的每个相应的vmi。例如,cem150可以传送到vmi170。配置代理174可以使用命令执行消息150内的命令规范文档来从可用插件178、…、180(在索引4处)中选择一个插件(例如,178)。然后,vmi配置代理174可以使用插件178以使用规范文档126和命令参数116来执行命令114(在索引5处)。可以在执行命令期间(或之后)生成命令执行结果132,并且可以经由实例消息传递服务130(在索引6处)将其传达到ces120。ces120可以将结果132存储在命令状态存储区124中(在索引7处),并将其传达到客户端设备104(在索引8处)。结果132可以是命令执行状态和/或在执行命令之后生成的输出。在示例性实施中,来自vmi1、…、k中的每一个的命令执行结果132可以聚合并在聚合之后发送到设备104。如果cer包括命令参数116,则可以将参数116存储在命令状态存储区124中。

图3是示出根据本公开的实施方案的使用命令执行服务的服务提供商环境中的命令可扩展性的框图。参考图1-3,示出了命令规范存储区122的更详细视图。更具体地,存储区122可以存储全局命令规范文档310、…、312以及自定义命令规范文档314、…、316。

例如,两个单独的用户302、304可以分别使用客户端设备306、308来访问服务提供商102。用户302可以生成多个自定义命令,并将对应的自定义定义/规范文档314、…、316上传到存储区122。用户302还可以将对应的插件322、…、324上传到存储区122和/或vmi170、…、172中的一个或多个。例如,自定义插件322可以上传到vmi170。此外,上传用户302可以设置用于分别访问/使用自定义命令规范314、…、316的权限318、…、320。权限318、…、320可以识别具有访问/使用对应的插件和规范文档的权限的一个或多个用户。在用户302决定给予另一用户(例如,304)使用自定义命令规范(例如,314)的权限的情况下,则也可以在权限318中识别用户304。

服务提供商122还可以使用策略文档(例如,340),所述文档可以指定与命令执行服务相关的一个或多个策略。例如,客户帐户策略340可以指定用于呈现命令执行结果132的一个或多个偏好,或用于访问和使用ces120的凭证或认证信息等等。

图4是示出根据本公开的示例性实施方案的使用命令执行服务在多租户环境中运行的多个虚拟机实例的示例性系统图。更具体地,图4是基于网络的服务提供商400的计算系统图,其示出了可以使用本文所述的实施方案的一个环境。通过背景,服务提供商400(即,云提供商)能够将计算和存储能力作为服务传递给终端接收者(例如,租户或客户)的社区。服务提供商400可以与图1-3所示的服务提供商102相同。

在示例性实施方案中,服务提供商400可以为组织由组织或代表组织建立。也就是说,服务提供商400可以提供“私人云环境”。在另一个实施方案中,服务提供商400支持多租户环境,其中多个客户独立地操作(即,公共云环境)。一般来说,服务提供商400可以提供以下模型:基础架构即服务(“iaas”)、平台即服务(“paas”)和/或软件即服务(“saas”)。可以提供其他模型。对于iaas模型,服务提供商400可以将计算机提供为物理或虚拟机和其他资源。虚拟机可以作为客由管理程序来运行,如下面进一步描述。paas模型提供可以包括操作系统、程序设计语言执行环境、数据库和web服务器的计算平台。应用开发人员可以在服务提供商平台上开发和运行其软件解决方案,而无购买和管理基础硬件和软件的成本。saas模型允许在服务提供商中安装和操作应用软件。在一些实施方案中,最终用户使用联网的客户设备(诸如运行web浏览器或其他轻量级客户应用的台式计算机、膝上型计算机、平板计算机、智能电话等)来访问服务提供商400。本领域技术人员将认识到,服务提供商400可以被描述为“云”环境。

特定示出的服务提供商400包括多个服务器计算机402a-402d。虽然仅示出了四台服务器计算机,但可以使用任何数字,并且大型中心可以包含数千台服务器计算机。服务器计算机402a-402d可以提供用于执行软件实例406a-406d的计算资源。在一个实施方案中,实例406a-406d是虚拟机。如本领域已知的,虚拟机是执行如物理机器之类的应用的机器(即,计算机)的软件实施的实例。在本示例中,服务器计算机402a-402d中的每一个可以配置为执行管理程序408或另一类型的程序,所述另一类型的程序配置为使得能够在单个服务器上执行多个实例406。例如,可以配置服务器402a-402d中的每一个(例如,经由管理程序408)以支持一个或多个虚拟机分区,每个虚拟机分区能够运行虚拟机实例(例如,服务器计算机402a可以配置为支持各自运行对应虚拟机实例的三个虚拟机分区)。另外,每个实例406可以配置为执行一个或多个应用,诸如配置代理409。配置代理409可以用于使用插件411执行一个或多个命令。配置代理409和插件411类似于参考图1所描述的配置代理174、…、176和插件178、…、184。

服务提供商400还可以包括命令执行服务440,所述命令执行服务可以具有本文结合ces120描述的功能。命令执行服务440可以实施为提供商400内的独立服务、专用服务器(类似于服务器402a-402d)、一个或多个服务器402内的代码库,和/或可以实施为执行管理功能的服务器计算机404的一部分。例如,协议选择服务440可以实施为管理部件410的一部分(如图5所示)。

应当理解,尽管本文公开的实施方案主要在虚拟机的背景下进行描述,但是其他类型的实例可以与本文公开的概念和技术一起使用。例如,本文公开的技术可以与存储资源、数据通信资源以及其他类型的计算资源一起使用。本文公开的实施方案也可以直接在计算机系统上执行应用的全部或一部分,而不使用虚拟机实例。

可以保留一个或多个服务器计算机404用于执行用于管理服务器计算机402、实例406、管理程序408、配置代理409、插件411和/或命令执行服务440的操作的软件部件。例如,服务器计算机404可以执行管理部件410。客户可以访问管理部件410以配置由客户购买的实例406的操作的各个方面。例如,客户可以购买、租用或出租实例,并对实例的配置作出改变。客户还可以响应于需求指定关于如何对购买的实例进行缩放的设置。

服务器计算机404还可以包括存储器452,所述存储器可以由命令执行服务440用作处理存储器。自动缩放部件412可以基于客户定义的规则来缩放实例406。在一个实施方案中,自动缩放部件412允许客户指定放大规则以用于确定何时应实例化新实例以及缩小规则以用于确定何时应终止现有实例。自动缩放部件412可以由在不同服务器计算机402或其他计算设备上执行的多个子部件组成。自动缩放部件412可以通过内部管理网络监控可用的计算资源,并根据需要修改可用的资源。

可以使用部署部件414来帮助客户部署计算资源的新实例406。部署部件可以访问与实例相关联的帐户信息,诸如帐户的所有者是谁、信用卡信息,所有者的国家等。部署部件414可以从客户接收包括数据的配置,所述数据描述应如何配置新实例406。例如,配置可以指定要安装在新实例406中的一个或多个应用,提供脚本和/或要执行的用于配置新实例406的其他类型的代码,提供指定应如何准备应用高速缓存的高速缓存逻辑,以及其他类型的信息。部署部件414可以利用客户提供的配置和高速缓存逻辑来配置、准备和启动新的实例406。配置、缓存逻辑和其他信息可以通过客户使用管理部件410或者通过将此信息直接提供给部署部件414来指定。可以将实例管理器(例如,图5中的550)认为是部署部件414的一部分。

客户帐户信息415可以包括与多租户环境的客户相关联的任何期望的信息。例如,客户帐户信息可以包括客户的唯一识别符、客户地址、计费信息、许可信息、用于启动实例的自定义参数、调度信息、自动缩放参数、用于访问帐户的先前ip地址等等。

可以使用网络430来互连服务器计算机402a-402d和服务器计算机404。网络430可以包括互联网、局域网(lan)或另一类型的网络中的一个或多个,并且可以连接到广域网(wan)440,使得最终用户可以访问服务提供商400。应当理解,已经简化了图4所示的网络拓扑结构,并且可以使用更多的网络和网络设备来互连本文公开的各种计算系统。

图5示出了根据一个实施方案包括与控制平面相关联的多个管理部件的示例性系统的进一步细节,所述控制平面可以用于提供命令执行服务。更具体地,图5更详细地示出了管理主机服务器404内的部件,其可以在服务提供商400的多租户环境内实施命令执行服务440。

为了访问和利用实例(诸如图4的实例406),可以使用客户设备510。客户设备510可以是各种计算设备、移动设备或其他设备中的任一个,包括手机、智能电话、手持计算机、个人数字助理(pda)、台式计算机等。客户设备510可以与服务提供商400中的命令执行服务440通信。任选地,可以使用端点服务(或负载均衡器)512来与ces440进行通信,所述端点服务(或负载平衡器)可以实施为ces440的一部分。使用api请求,客户设备510可以进行请求以实施本文所描述的任何功能,或者访问由服务提供商400提供的一个或多个服务。服务提供商400中(和/或管理部件410或服务器404内)可能包括或可能不包括的其他一般管理服务包括许可/认证控制514,例如一起操作为许可/认证控制web服务的一个或多个计算机。许可控制514可以认证、验证和解包针对由ces440提供的服务的api请求。为了提供对客户端的认证、客户端请求等,ces440可以调用认证控制514。

命令执行服务440可以执行本文所述的命令执行功能(例如,参考ces120描述的功能)。ces440可以与许可/认证控制514、与分区网络(用于目标实例)540(例如,访问在服务器计算机上运行的虚拟桌面实例以便执行命令)以及与策略文档340进行通信。可以经由实例消息传递服务513来实现与目标实例主机540的通信。

图6示出了根据一个实施方案作为用于运行虚拟机实例的硬件资产的多个主机计算机、路由器和交换机的示例,其中主机计算机具有可以进行配置的命令执行相关功能。更具体地,图6示出了分区(或目标实例主机)网络540和与其相关联的物理硬件。分区网络540可以包括多个数据中心,诸如数据中心610a、…、610n,所述数据中心由路由器(诸如路由器616)耦合在一起。

路由器616读取接收到的数据包中的地址信息并确定数据包的目的地。如果路由器决定不同的数据中心包含主机服务器计算机,则将数据包转发到该数据中心。如果数据被寻址到数据中心610a中的主机,则其被传递到网络地址转译器(nat)618,所述转译器将数据包的公共ip地址转换为私人ip地址。nat618还将私人地址转译为绑定到数据中心610a外部的公共地址。附加路由器620可以耦合到nat618以将数据包路由到主机服务器计算机的一个或多个机架630。每个机架630可以包括耦合到多个主机服务器计算机的交换机632。特定的主机服务器计算机在641处以扩展视图示出。

每个主机641具有基础硬件650。在硬件650上方运行层的是管理程序或内核层660。可以将管理程序或内核层660分类为类型1或类型2管理程序。类型1管理程序直接在主机硬件650上运行,以控制硬件并管理客操作系统。类型2管理程序在常规操作系统环境内运行。因此,在类型2环境中,管理程序可以是在操作系统上方运行的不同层,并且操作系统与系统硬件交互。不同类型的管理程序包括xen-based、hyper-v、esxi/esx、linux等,但也可以使用其他管理程序。在示例性实施方案中,管理程序层660可以包括dfs软件409,所述软件可以用于安装dsn或dmn,如本文所述。

管理层670可以是管理程序的一部分或与其分离,并且通常包括访问硬件650所需的设备驱动器。分区680是通过管理程序隔离的逻辑单元。可以对每个分区680分配硬件层的存储器、cpu分配、存储装置等的它自己的部分。另外,每个分区可以包括虚拟机和其自己的客操作系统(例如,vmi1可以在分区1上运行,并且vmin可以在分区n上运行)。因此,每个分区680是设计为独立于其他分区来支持其自己的虚拟机的容量的抽象部分。分区680上的一个或多个vmi(vmi1、…、vmin)也可以使用一个或多个插件来执行配置代理,以在vmi上执行命令。

图7-8是根据本公开的实施方案的在服务提供商环境中的虚拟机实例上执行命令的示例性方法的流程图。参考图1和图7,当可以从客户端计算设备接收到用于在服务提供商环境中的一个或多个虚拟机实例上执行命令的命令执行请求时,示例性方法700可以在702开始。例如,命令执行请求110可以由ces120从客户端设备104接收。命令执行请求可以包括诸如标签112的标签。在704,可以基于标签来检索一个或多个虚拟机实例的实例识别信息。例如,ces120可以将标签112传达到实例识别服务140并且接收与标签相关联的实例id142。在示例性实施方案中,实例识别服务140和/或实例消息传递服务130可以实施为ces120的一部分。

在706,可以检索与由命令执行请求指定的命令相关联的命令规范文档。例如,ces120可以使用由命令执行请求110识别的命令114以从存储区122检索命令规范文档(例如,126)。在708,将命令执行消息传达到一个或多个虚拟机实例中的每一个。例如,ces120可以针对与实例id142相关联的所识别的vmi生成命令执行消息150、…、152。命令执行消息可以包括命令规范文档(例如,126)和由命令执行请求(例如,110)识别的至少一个命令参数(例如,116)。在710,执行命令(例如,使用配置代理174和插件178在vmi170执行命令)的命令执行结果(例如,132)可以从一个或多个虚拟机实例(例如,170)接收。在712,可以经由网络108将命令执行结果(例如,132)传达到客户端计算设备(104)。

参考图1和图8,当可以使用来自客户端计算设备的命令检索在服务提供商环境中运行的多个实例的实例识别信息时(所述命令用于在所述实例中的至少一个上执行),示例性方法800可以在802开始。例如,命令(例如,命令执行请求110)可以由ces120从客户端设备104接收。命令执行请求可以包括标签,诸如标签112(或其他实例识别信息,诸如实例id)。基于所接收的命令执行请求110内的标签112,可以(例如,从服务140)获得实例识别信息(例如,142)。

在804,可以使用检索的实例识别信息将命令传送到多个实例。例如,ces120可以使用所接收的命令(例如,请求110内的114)来检索命令规范文档(例如,126)。然后,ces120可以针对与实例id142相关联的所识别的vmi生成命令执行消息150、…、152。命令执行消息可以包括命令规范文档(例如,126)和由命令执行请求(例如,110)识别的至少一个命令参数(例如,116)。可以使用消息传递服务130将命令执行消息150、…、152传达到对应的vmi,以由对应的配置代理使用与所识别的命令114相关联的插件执行。在806处,可以接收到在多个实例中的至少第一实例上执行命令的至少第一命令执行结果。例如,vmi170中的配置代理174可以使用命令的规范文档(例如,126)和与所述命令相关联的插件(例如,178)来执行命令114。执行所述命令的命令执行结果可以由配置代理174生成并被传达到ces120以供进一步处理(例如,用于传达/显示给设备104的用户,从而向用户提供结果编辑/存储能力等等)

图9描绘了可以实施所述创新的合适的计算环境的一般化示例。参考图9,计算环境900不旨在对使用范围或功能性提出任何限制,因为创新可以在多种通用或专用计算系统中实施。例如,计算环境900可以是各种计算设备(例如,台式计算机、膝上型计算机、服务器计算机、平板计算机等)中的任何一种

参考图9,计算环境900包括一个或多个处理单元910、915和存储器920、925。在图9中,此基本配置930包含在虚线内。处理单元910、915执行计算机可执行指令。处理单元可以是通用中央处理单元(cpu)、专用集成电路(asic)中的处理器、或任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图9示出了中央处理单元910以及图形处理单元或协处理单元915。有形存储器920、925可以是处理单元可以访问的易失性存储器(例如,寄存器、高速缓存、ram)、非易失性存储器(例如,rom、eeprom、闪速存储器等)或两者的某种组合。存储器920、925以适合于由处理单元执行的计算机可执行指令的形式存储实施本文描述的一个或多个创新(例如,功能)的软件980。

计算系统可以具有附加特征。例如,计算环境900包括存储装置940、一个或多个输入设备950、一个或多个输出设备960和一个或多个通信连接970。诸如总线、控制器或网络等互连机构(未示出)互连计算环境900的部件。通常,操作系统软件(未示出)为在计算环境900中执行的其他软件提供操作环境,并且协调计算环境900的部件的活动。

有形存储装置940可以是可移除的或不可移除的,并且包括磁盘、磁带或盒式磁带、cd-rom、dvd或可以用于以非暂时方式存储信息并且可以在计算环境900内被访问的任何其他介质。存储装置940存储用于实施本文所述的一个或多个创新的软件980的指令。

输入设备950可以是触摸输入设备,诸如键盘、鼠标、笔或轨迹球、语音输入设备、扫描设备或向计算环境900提供输入的另一种设备。输出设备960可以是提供来自计算环境900的输出的显示器、打印机、扬声器、cd刻录机或另一种设备。

通信连接970使得能够通过通信介质与另一个计算实体进行通信。通信介质传送诸如计算机可执行指令、音频或视频输入或输出或调制数据信号中的其他数据等信息。调制数据信号是以在信号中编码信息的方式设置或改变其特性中的一个或多个的信号。通过举例而非限制的方式,通信介质可以使用电、光、rf或其他载体。

尽管一些所公开的方法的操作以特定的有序顺序描述以便方便地呈现,但是应当理解,这种描述的方式包括重排,除非下面阐述的特定语言需要特定的顺序。例如,依序描述的操作在一些情况下可以重新排列或同时执行。此外,为了简单起见,附图可能不展示所公开的方法可以结合其他方法使用的各种方式。

任何所公开的方法可以实施为计算机可读指令,所述指令存储在一个或多个计算机可读存储介质(例如,一个或多个光学介质盘、易失性存储器部件(诸如dram或sram)或非易失性存储器部件(诸如闪速存储器或硬盘驱动器))上并在计算机(例如,任何市售的计算机,包括智能电话或包括计算硬件的其他移动设备)上执行。术语计算机可读存储介质不包括通信连接,诸如信号和载波。用于实施所公开的技术的任何计算机可执行指令以及在所公开的实施方案的实施期间创建和使用的任何数据都可以存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如经由web浏览器或其他软件应用(诸如远程计算应用)访问或下载的专用软件应用或软件应用的一部分。这样的软件可以例如在单个本地计算机(例如,任何合适的市售计算机)上或在网络环境中(例如,经由互联网、广域网、局域网、客户-服务器网络(诸如云计算网络)或其他这样的网络)使用一个或多个网络计算机来执行。

为了清楚起见,仅描述基于软件的实施的某些选定的方面。省略了本领域众所周知的其他细节。例如,应当理解,所公开的技术不限于任何特定的计算机语言或程序。例如,所公开的技术可以由用c++、java、perl、javascript、adobeflash或任何其他合适的程序设计语言编写的软件来实施。同样地,所公开的技术不限于任何特定的计算机或硬件类型。合适的计算机和硬件的某些细节是众所周知的,并且不需要在本公开中详细阐述。

还应当充分理解,本文描述的任何功能可以至少部分由一个或多个硬件逻辑部件代替软件来执行。例如但不限于,可以使用的说明性类型的硬件逻辑部件包括现场可编程门阵列(fpga)、专用程序集成电路(asic)、专用程序标准产品(assp)、系统单芯片系统(soc)、复杂的可编程逻辑设备(cpld)等。

此外,任何基于软件的实施方案(包括例如用于致使计算机执行任何所公开的方法的计算机可执行指令)可以通过合适的通信手段上传、下载或远程访问。这种合适的通信手段包括例如互联网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括rf、微波和红外通信)、电子通信、或其他这样的通信手段。

本公开的实施方案可以根据以下条款来描述:

1.一种用于在分布式计算环境中的虚拟机实例上执行命令的方法,所述方法包括:

从客户端计算设备接收用于在所述分布式计算环境内的一个或多个虚拟机实例上执行命令的命令执行请求,所述命令执行请求包括标签;

基于所述标签来检索所述一个或多个虚拟机实例的实例识别信息;

检索与由所述命令执行请求指定的所述命令相关联的命令规范文档;

将命令执行消息传达到所述一个或多个虚拟机实例中的每一个,所述命令执行消息包括所述命令规范文档和由所述命令执行请求识别的至少一个命令参数;

从所述一个或多个虚拟机实例接收在所述一个或多个虚拟机实例处执行所述命令的命令执行结果;以及

将所述命令执行结果传达到所述客户端计算设备。

2.根据条款1所述的方法,其中所述一个或多个虚拟机实例包括多个实例,并且所述方法还包括:

经由应用程序设计接口(api)接收所述命令执行请求。

3.根据条款2所述的方法,其还包括:

为所述多个实例中的每一个生成所述命令执行消息;以及

将所述生成的消息传达到所述多个实例用于使用与所述命令相关联的插件执行。

4.根据任何前述条款所述的方法,其中所述命令执行结果包括从执行所述命令生成的命令执行状态或输出。

5.根据任何前述条款所述的方法,其中所述分布式计算环境包括预置计算服务。

6.根据任何前述条款所述的方法,其中所述命令规范文档包括所述命令的至少一个定义,并且所述至少一个命令参数包括由所述至少一个定义使用的参数键值对。

7.一种包括指令的计算机可读存储介质,所述指令在执行时致使计算机系统:

使用来自客户端计算设备的命令,检索在分布式计算环境中运行的多个实例的实例识别信息,所述命令用于在所述实例中的至少一个上执行;

使用所述检索到的实例识别信息将所述命令传达到所述多个实例;以及

接收在所述多个实例中的至少第一实例上执行所述命令的至少第一命令执行结果。

8.根据条款7所述的计算机可读存储介质,其中所述指令在执行时还致使所述计算机系统:

经由应用程序设计接口(api)从所述客户端计算设备接收所述命令。

9.根据条款8所述的计算机可读存储介质,其中所述接收的命令包括标签,并且所述指令在执行时还致使所述计算机系统:

使用所述标签检索所述实例识别信息。

10.根据条款8或9所述的计算机可读存储介质,其中所述指令在执行时还致使所述计算机系统:

基于所述接收到的命令的至少一部分来检索命令规范文档,其中所述命令规范文档是从所述客户端计算设备接收的自定义规范文档。

11.根据条款7-10中任一项所述的计算机可读存储介质,其中所述多个实例中的至少一个正在物理硬件上运行。

12.根据条款7-10中任一项所述的计算机可读存储介质,其中所述指令在执行时还致使所述计算机系统:

在所述传达之前对所述接收的命令进行更新以包括所述命令规范文档的至少一部分。

13.根据条款7-12中任一项所述的计算机可读存储介质,其中所述指令在执行时还致使所述计算机系统:

在接收到之后将所述至少第一命令执行结果传达到所述客户端计算设备。

14.根据条款7-13中任一项所述的计算机可读存储介质,其中所述指令在执行时还致使所述计算机系统:

接收在所述多个实例中的至少第二实例上执行所述命令的至少第二命令执行结果。

15.根据条款14所述的计算机可读存储介质,其中所述指令在执行时还致使所述计算机系统:

聚合所述至少第一和第二命令执行结果以生成聚合结果。

16.根据条款15所述的计算机可读存储介质,其中所述指令在执行时还致使所述计算机系统:

将所述聚合结果传达到所述客户端计算设备。

17.一种系统,其包括:

通过网络耦合在一起以形成分布式计算环境的多个服务器计算机,所述多个服务器计算机用于执行多个虚拟机实例;以及

耦合到所述多个服务器计算机和客户端计算设备的命令执行服务,所述命令执行服务可操作以:

从所述客户端计算设备接收用于在所述分布式计算环境内的所述虚拟机实例中的至少一个上执行命令的命令执行请求,所述命令执行请求包括实例识别信息或者一个或多个标签;

基于所述实例识别信息或所述一个或多个标签来选择所述多个虚拟机实例中的一个或多个;

针对所述选定的一个或多个虚拟机实例中的每一个生成命令执行消息,所述命令执行消息包括具有所述命令的至少一个定义的命令规范文档;以及

将所述生成的命令执行消息传达到所述选定的一个或多个虚拟机实例中的每一个以使用与所述命令相关联的插件来执行。

18.根据条款17所述的系统,其中所述系统还包括耦合到所述命令执行服务和所述多个虚拟机实例的实例消息传递服务,并且所述命令执行服务还可操作以:

使用所述实例消息传递服务将所述生成的命令执行消息传达到所述一个或多个虚拟机实例中的每一个。

19.根据条款17或18所述的系统,其中所述命令执行服务还可操作以:

从所述一个或多个虚拟机实例接收执行所述命令的命令执行结果;以及

将所述命令执行结果传达到所述客户端计算设备。

20.根据条款17-19中任一项所述的系统,其中所述命令执行服务还可操作以:

经由api从所述客户端计算设备接收与所述命令相关联的所述命令规范文档或所述插件。

所公开的方法、装置和系统无论如何不应被解释为限制性的。相反,本公开涉及各种所公开实施方案的所有新颖和非明显的特征和方面,它们是单独的以及彼此进行各种组合和子组合。所公开的方法、装置和系统不限于任何特定方面或特征或其组合,所公开的实施方案也不要求存在任何一个或多个具体优点或解决问题。

鉴于可以应用所公开发明的原理的许多可能的实施方案,应当认识到,所示出的实施方案仅是本发明的优选示例,而不应被认为是限制本发明的范围。相反,本发明的范围由所附权利要求书限定。因此,属于这些权利要求的范围内的所有内容均作为发明被要求保护。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1