用于多节点应用的部署系统的制作方法

文档序号:6495485阅读:226来源:国知局
用于多节点应用的部署系统的制作方法
【专利摘要】一种部署系统提供用于部署多节点分布式应用、比如云计算平台应用的能力,该多节点分布式应用具有执行专门化作业的多个互连的节点。部署系统包括部署引导器,该部署引导器调配基础设施,该基础设施包括用于托管云计算平台应用的多个节点。部署引导器基于部署清单中的在基础设施与将由云计算平台应用执行的多个专门化作业之间的映射而向在调配的VM上执行的部署代理分发多个作业(例如应用包和配置)。部署代理将作业应用于它们的相应VM(例如起动应用)、由此部署云计算平台应用。
【专利说明】用于多节点应用的部署系统
[0001]有关申请的交叉引用
[0002]本申请要求对于2011年4月12日提交并且标题为"DEPLOYMENT FRAMEWORK FORCLOUD PLATFORM ARCHITECTURE"的第61/474,669号美国临时专利申请的权益和优先权,该美国临时专利申请通过引用而结合于此。本申请与标题为"Release Management Systemfor a Mult1-Node Application"(代理案号为 A703.02)的专利申请和标题为〃ReleaseLifecycle Management System for a Mult1-Node Application"(代理案号为 A703.03)的专利申请有关,这些申请被转让给本申请的受让人,并且已经与本申请在同日提交。
【技术领域】
【背景技术】
[0003]“平台即服务”(也常称为“PaaS”)一般描述作为集成解决方案而由服务提供方提供的成套技术,该集成解决方案使web开发者(或者任何其它应用开发者)能够构建、部署和管理web应用(或者任何其它类型的联网应用)的生命周期。PaaS的一个主要组成是“云计算平台”,该云计算平台是由服务提供方运行和维护的网络(例如因特网等)基础设施,可以在该网络基础设施上部署开发的web应用。通过提供为了鲁棒地运行web应用而需要的硬件资源和软件层,云计算平台使开发者关注于web应用开发本身,并且将可伸缩性以及其它计算和存储资源要求(例如数据存储、数据库访问、处理能力、设施、功率和带宽等)的后勤留给云计算平台(例如成本为服务提供方的收费)。服务提供方可以附加地向传统IDE(即集成开发环境)提供插件部件,该插件部件辅助使用IDE来创建web应用的开发者以与服务提供方的云计算平台兼容的方式恰当构造、开发和测试这样的应用。一旦开发者使用IDE来完成web应用,插件部件辅助开发者将web应用部署到云计算平台中。
[0004]然而,由于在提供灵活和可缩放的云计算平台中的复杂性,几乎没有服务提供方提供PaaS。云计算平台的当前实现方式使用多个部件(例如云控制器、健康管理器、服务调配器、路由器和应用执行代理),这些部件执行不同作用,并且相互协调以提供云计算服务。为了部署这样的云计算平台,系统管理员必须构建、配置、部署和维护部件(例如云控制器、健康管理器、服务调配器、路由器和应用执行代理)中的每个部件。尽管可以在将所有部件安装在单个系统(例如膝上型计算机、服务器)时人工执行部署,但是在部件跨多个联网系统安装时,部署过程变得有挑战,这是因为在这样的安装中,每个系统必须用特定的计算资源来调配、用具体的联网配置来建立、并且让不同软件应用安装有依赖库和/或运行时间以执行系统在云计算平台内的指派作用。此外,更新部件中的任何部件(例如用于库或者操作系统的安全补丁)要求系统管理员必须为云计算平台中的其它部件修改操作。例如在需要更新部件之一时,系统管理员可能必须挂起当前连接到部件的其它部件的操作,或者在另一示例中更新其它部件的设置以正确地连接到更新的部件。因而,用于多节点应用、比如云计算平台的部署过程可能过于复杂和耗时而无法让系统管理员管理。
【发明内容】

[0005]本发明的一个或者多个实施例提供一种用于多节点分布式应用(例如云计算平台)的部署系统,该多节点分布式应用具有执行专门化作用的任何数目的节点,以及针对每个专门化作用而利用的任何依赖软件和/或联网、存储和服务配置。可以在允许动态调配计算资源的硬件基础设施、比如虚拟化基础设施上面实施部署系统的实例。部署系统包括自动化框架,该自动化框架利用制定的部署清单以自动调配基础设施(例如虚拟机),以及安装和配置每个专门化作用所需要的应用包。制定的部署清单简化了对于具有可变要求的复杂多节点应用的部署过程并且启用可重复和可预测的部署。
[0006]根据一个实施例的一种用于部署具有在多个不同节点上执行的多个功能部件的应用的方法包括:由部署模块接收用于应用的规范。该规范指定(i)待部署的应用的每个功能部件的实例数目;以及(ii)由执行功能部件中的任何一个功能部件的任何节点所将需要的硬件属性。该方法包括请求虚拟基础设施平台起动足以在单独虚拟机(VM)中执行功能部件的每个实例的多个VM。VM中的每个VM (i)被配置用于支持由功能部件中的至少一个功能部件所需要的硬件属性;并且(ii)包括被配置用于与部署模块通信的代理部件。该方法还包括弓丨导VM中的每个VM中的代理部件中的每个代理部件在VM中安装代码,该代码实施功能部件中的与VM的硬件属性兼容的功能部件,由此使VM作为应用的功能部件的实例之一而执行。
[0007]—种非瞬态计算机可读存储介质包括指令,这些指令在计算设备中执行时部署具有在多个不同节点上执行的多个功能部件的应用。根据一个实施例,非瞬态计算机可读存储介质包括用于执行由部署模块接收用于应用的规范的步骤的指令,其中规范指定(i)待部署的应用的每个功能部件的实例数目;以及(ii)执行功能部件中的任何一个功能部件的任何节点所将需要的硬件属性。指令还执行请求虚拟基础设施平台起动足以在单独虚拟机(VM)中执行功能部件的每个实例的多个VM的步骤。VM中的每个VM (i)被配置用于支持功能部件中的至少一个功能部件所需要的硬件属性;并且(ii)包括被配置用于与部署模块通信的代理部件。指令还执行引导VM中的每个VM中的代理部件中的每个代理部件在VM中安装代码的步骤,该代码实施功能部件中的、与VM的硬件属性兼容的功能部件,由此使VM作为应用的功能部件的实例之一而执行。
[0008]根据一个实施例,一种用于部署具有在多个不同节点上执行的多个功能部件的应用的计算机系统包括系统存储器和被编程用于执行以下步骤的处理器:由部署模块接收用于应用的规范。规范指定(i)待部署的应用的每个功能部件的实例数目;以及(ii)执行功能部件中的任何一个功能部件的任何节点所将需要的硬件属性。处理器被编程用于执行以下步骤:请求虚拟基础设施平台起动足以在单独虚拟机(VM)中执行功能部件的每个实例的多个VM,其中VM中的每个VM (i)被配置用于支持功能部件中的至少一个功能部件所需要的硬件属性;并且(ii)包括被配置用于与部署模块通信的代理部件。处理器还被编程用于执行以下步骤:引导VM中的每个VM中的代理部件中的每个代理部件在VM中安装代码,该代码实施功能部件中的与VM的硬件属性兼容的功能部件,由此使VM作为应用的功能部件的实例之一而执行。
【专利附图】

【附图说明】[0009]图1描绘多节点分布式应用的广义示意图。
[0010]图2描绘图1的多节点分布式应用的一个示例、即云计算平台应用。
[0011]图3描绘用于多节点分布式应用的部署系统的一个实施例。
[0012]图4描绘部署系统的部署引导器和代理的一个实施例。
[0013]图5描绘用于由部署引导器来部署云计算平台应用的流程图。
[0014]图6描绘在部署云计算平台应用之后的图4的部署系统。
【具体实施方式】
[0015]图1描绘多节点分布式应用100的广义示意图。多节点应用100包括经由消息总线104通信以向用户106提供应用服务的多个节点102 (例如前端和后端作业)。每个节点102作为功能部件的实例执行并且包括用于执行功能部件在多节点应用100内的一个或者多个专门化任务的部件软件应用和/或库。如以上描述的那样,多节点应用100的建立和部署可能是复杂的。例如由于多个节点102中的每个节点可以在多节点应用100内充当不同角色,所以节点102可以在不同网络上、被连接到多个依赖服务108、使用不同部件软件应用、具有不同资源要求等等。
[0016]图2描绘可以是多节点应用100的一个示例的云计算平台应用200,该云计算平台应用动态提供将用来托管web应用220的云计算服务。在于2010年4月26日提交并且标题为〃Cloud Platform Architecture〃的第12/767,010号美国专利申请中进一步描述云计算平台应用200的一个示例,该美国专利申请通过引用而整体结合于此。云计算平台应用200包括专门化功能部件、比如云控制器202、路由器204、应用执行代理206、健康管理器208、服务调配器210、服务212和消息总线214。这些功能部件以协调方式操作以提供web应用220可以访问的云计算服务、比如关系数据库服务(例如MySQL等)、CRM (客户关系管理)服务、web服务、应用服务器服务(例如JBoSS、RailS等)、监视服务、后台任务调度器、记录服务、消息服务、存储器对象高速缓存服务和任何其它适当软件服务。
[0017]在一个实施例中,云控制器202为开发者250提交的web应用220编排部署过程。云控制器202与云计算平台应用200的其它功能部件交互以绑定提交的web应用220需要的服务和用于向应用执行代理206传输用于部署的包web应用。健康管理器208通过监视由云计算平台应用200的其它功能部件在消息总线214上广播的消息来跟踪和维护云计算平台应用200的“健康”。Web应用220访问云计算平台应用200提供的服务集212、比如关系数据库服务(例如MySQL等)、监视服务、后台任务调度器、记录服务、消息服务、存储器对象高速缓存服务等。服务调配器210作为在服务212与云计算平台应用200的其它功能部件(例如云控制器202、健康管理器208、路由器204等)之间的通信中介而服务,并且辅助在web应用部署过程期间向web应用220调配或者绑定这种可用服务的任务。消息总线214提供公共接口,通过该公共接口,云计算平台应用200的功能部件、比如服务调配器210、云控制器202、健康管理器208、路由器204和应用执行代理206可以通信和接收通知。
[0018]一旦云控制器202成功编排web应用220在一个或者多个应用执行代理206中的部署,终端用户106可以例如通过在膝上型计算机或者一般为任何计算设备上驻留的web浏览器或者任何其它适当客户端应用访问web应用220。路由器204接收web浏览器的访问请求(例如统一资源定位符或者URL)并且向托管web应用220的对应系统路由请求。[0019]如描述的那样,每个部件在云计算平台应用200内具有单独角色——该角色具有单独软件应用和库依赖性(例如MySQL、Redis, MongoDB, Apache)——并且被特别构建、配置、部署和维护用于云计算平台应用200作为整体工作。另外,由于通常在一个或者多个虚拟机(VM)中运行每个部件,所以每个VM也由系统管理员特别调配、配置、部署和维护。这样,在其中部署web应用220的云计算平台应用200本身具有繁琐和复杂的部署过程。因而。实施例提供一种将自动化框架和工具化用于简化、自动和可重复部署的用于云计算平台应用的部署技术。
[0020]图3描绘具有用于部署多节点分布式应用的部署系统306的多节点应用平台300的一个实施例。例如系统管理员302可以利用多节点应用平台300以部署图2的其中可以部署web应用220的云计算平台应用200。
[0021]在一个实施例中,系统管理员302通过通信地连接到部署系统306的管理客户端304、例如通过管理客户端304的命令行接口(CLI)或者其它用户接口发出一个或者多个命令来指示部署系统306。除了发送系统管理员302发出的一个或者多个命令之外,管理客户端304还可以如后文描述的那样发送成捆应用数据、配置文件和其它信息(统称为“发布”),这些应用数据、配置文件和其它信息由部署系统306解包、处理和/或分发以部署云计算平台应用200。除了发布之外,管理客户端304还提供与发布关联的部署清单(manifest),该部署清单描述云计算平台应用200在已经部署云计算平台应用200之后的希望的计算环境。部署清单描述如后文将描述的希望的计算环境的特性、比如待利用的资源池(例如VM组)数目、待建立的网络和其它设置并且在这一实施例中充当用于部署的规范。
[0022]多节点应用平台300包括在其上部署和执行云计算平台应用200的基础设施平台308。在图3的实施例中,基础设施平台308包括以提供虚拟化环境316的方式配置的硬件资源310如服务器312i至312n和一个或者多个存储阵列网络(SAN)如SAN314,该虚拟化环境支持跨服务器312i至3124丸行多个虚拟机(VM)。如以下进一步描述的那样,这些VM提供虚拟计算资源——这些虚拟计算资源支持部署系统306执行的服务和功能——以及用于托管云计算平台应用200的功能部件的虚拟计算资源。在一个实施例中,基础设施平台308被实施为提供计算机基础设施作为服务的云基础设施服务或者其它基础设施即服务(“IaaS”)。
[0023]虚拟化环境316包括编排部件318 (例如在一个实施例中实施为在虚拟机中运行的过程),该编排部件监视部署系统306的基础设施资源消耗水平和要求(例如通过如以下进一步详述的那样监视通过寻址和发现层334路由的通信),并且根据需要或者期望而向部署系统306提供附加基础设施资源。例如,如果部署系统306要求附加VM来托管云计算平台应用200的新部署的功能部件并且缩放当前运行的多节点应用以支持高峰需求,则编排部件318可以发起和管理在服务器312i至312n上虚拟机的实例化以支持这样的需要。在与图3的实施例相似的实施例的一个示例实现方式中,通过在服务器312i至312,上运行加利福尼亚帕罗奥多的VMware Inc.提供的基于VMware ESX?的管理程序技术来实施虚拟化环境316(但是应当认识到可以利用与这里的教导一致的包括Xen?和Microsoft Hyper-V虚拟化技术的任何其它虚拟化技术)。
[0024]在图3的实施例中,部署系统306包括部署引导器320 (例如在一个或者多个VM上运行),该部署引导器根据已经向部署系统306提交的部署清单编排用于云计算平台应用200的部署过程。部署引导器320接收部署清单的指令并且与部署系统306的其它部件交互以生成云计算平台应用200将被部署到其上的逻辑基础设施350。在图3中描绘的实施例中,部署引导器320暴露通信接口、比如代表状态转移(REST)架构,通过该通信接口,部署引导器320从客户端(例如管理客户端304)接收管理命令和其它部署数据(例如发布)。
[0025]部署引导器320可以调配VM (被标识为主干单元(stem cell) VM32+至324M)以托管云计算平台应用200的功能部件、比如云控制器202、应用执行代理206、健康管理器208、路由器204、服务调配器210等。在图3的实施例中,部署引导器320请求基础设施平台308动态创建和删除主干单元VM (例如主干单元VM321至324M)。主干单元VM32+至324m是基于预定义VM模板(被称为“主干单元”)创建的VM,该VM模板包括基本操作系统、代理322以及支持库、运行时间和/或应用。代理322与部署引导器320协调配置主干单元VM321至324m以执行云计算平台应用200的各种角色。代理322将特定作业应用于在其上执行的主干单元VM321,从而主干单元VM321在云计算平台应用200内执行特定管理角色(例如云控制器202、健康管理器208、应用执行代理206等之一的作业)。 [0026]除了调配主干单元VM之外,部署引导器320可以请求基础设施平台308动态创建和删除被称为工作器330的临时VM,这些临时VM执行有助于部署的一个或者多个处理任务。在一个实施例中,例如可以创建工作器330以执行将要在主干单元VM321至324?上部署的部件应用和/或库的软件编译。用与主干单元VM321至324M相似的配置来配置工作器330 (例如具有相同虚拟硬件规范、架构和/或配置),以使编译的软件能够在主干单元VM321至324?上执行。可以在用来保持在部署过程期间生成的非自然成分的对象存储库332 (例如团点(blob)存储库)中存储处理任务(例如软件编译)的结果和其它高速缓存的数据。另外,部署引导器320可以利用(例如在一个或者多个VM中运行的)服务集328以有助于编排部署过程。例如关系数据库服务(例如MySQL等)、监视服务、后台任务调度器、记录服务、消息收发服务、存储器对象高速缓存服务等可以包括服务328。
[0027]寻址和发现层334提供公共接口,通过该公共接口,部署系统306的部件、比如部署引导器320、健康监视器336、服务328、工作器330和在主干单元VM324:至324M上执行的一个或者多个代理322可以通信和接收通知。例如部署引导器320可以利用寻址和发现层334以请求从基础设施平台308调配VM并且在部署云计算平台应用200期间向代理322提供部署指令。类似地,主干单元VM321可以通过寻址和发现层334在部署云计算平台应用200期间通过寻址和发现层334与其它主干单元VM324m通信。在一个实施例中,实施寻址和发现层334为消息代理服务(例如在一个或者多个VM中运行),该消息代理服务定义公共协议和消息格式,通过该公共协议和消息格式,部署系统306的部件可以交换消息并且广播通知和其它信息。在这样的实施例中,部署系统306的部件例如通过已知认证技术(例如口令等)与消息代理服务建立连接(例如有时也被称为“订阅”消息代理服务),并且一旦连接到消息代理服务就可以向和从也已经订阅消息代理系统的其它部件提供、接收和请求消息、通知和其它相似信息。可以在一个实施例中使用的消息代理服务的一个示例是基于AMPQ (高级消息排队协议)开放协议标准的RabbitMQ?。然而应当理解,可以实施除了这样的消息代理服务之外的备选接口和通信方案用于寻址和发现层334。
[0028]部署系统306还包括(例如在VM中运行的)健康监视器336,该健康监视器通过监视部署系统306的其它部件在寻址和发现层334上广播的消息来跟踪和维护部署系统306的“健康”。例如健康监视器336可以检测缺乏来自(例如在主干单元VM上运行的)代理322的通信并且确定主干单元VM的故障(例如云计算平台应用200的部件的故障)。健康监视器336可以向部署引导器320自动广播请求以重启有故障的主干单元W、或者提供替换的主干单元VM以执行相同角色。健康监视器336还可以被配置用于发起对有故障的可用服务或者部署系统306的其它部件(例如部署引导器320、对象存储库332、服务328、工作器330和在主干单元VM324至324M上执行的一个或者多个代理322等)的重启。
[0029]应当认识到可以实施与这里的教导一致的除了图3的实施例之外的部署系统架构。例如尽管图3在多节点应用平台300托管的基础设施平台308上实施部署系统306,但是应当认识到部署系统306可以由除了多节点应用平台300之外的实体在任何类型的硬件基础设施上面、比如在非虚拟化基础设施平台上实施为直接在硬件资源310上的进程或者守护进程(daemon)。还应当认识到实施例可以用松耦合方式配置部署系统306和基础设施平台308,而在部署系统306与基础设施平台308之间的通信仅通过基础设施308的编排部件318发生,该编排部件通过连接到寻址和发现层334来监视硬件资源消耗。在这样的松耦合实施例中,应当认识到可以在任何基础设施平台上、包括在膝上型或者个人计算机上(例如在该情况下,部署系统306的每个部件在膝上型或者个人计算机上作为单独进程或者后台程序运行)实施部署系统306。
[0030]图4描绘部署引导器320的一个实施例的更具体视图。部署引导器320基于部署清单402管理云计算平台应用200的部署,该部署清单描述云计算平台应用200的希望的部署后计算环境。部署清单402例如按照名称和/或版本号指定待部署的云计算平台应用200的发布。部署清单402提供云计算平台应用200的全规范,该规范包括具体功能部件(例如云控制器202、健康管理器208、应用执行代理206等)、基础设施平台308提供的逻辑基础设施350 (例如主干单元VM324m)、功能部件的向逻辑基础设施350上的映射。例如部署清单402可以指定应当调配十个主干单元VM以托管组成云计算平台应用200的部件。系统管理员可以创建用于云计算平台应用200的初始部署的部署清单402、修改部署清单402以向上或者向下缩放已经部署的云计算平台应用200或者升级部署的云计算平台应用200。在一个具体实现中,部署清单402是用结构化文档格式、比如YAML或者可扩展标记语言(XML)格式化的配置文件,该配置文件具有有助于部署系统306的部署过程的名称-值对和/或名称-值对的分级节段。结合下表I中所示样本部署清单来描述部署清单402的细节。
[0031]
【权利要求】
1.一种用于部署应用的方法,所述应用具有在多个不同节点上执行的多个功能部件,所述方法包括: 由部署模块接收用于所述应用的规范,其中所述规范指定(i)待部署的所述应用的每个功能部件的实例数目;以及(ii)由执行所述功能部件中的任何一个功能部件的任何节点所将需要的硬件属性; 请求虚拟基础设施平台起动足以在单独虚拟机(VM)中执行功能部件的每个实例的多个VM,其中所述VM中的每个VM (i )被配置用于支持由所述功能部件中的至少一个功能部件所需要的硬件属性;并且(ii)包括被配置用于与所述部署模块通信的代理部件;以及 引导所述VM中的每个VM中的所述代理部件中的每个代理部件在所述VM中安装代码,所述代码实施所述功能部件中的、与所述VM的所述硬件属性兼容的功能部件,由此使所述VM作为所述应用的所述功能部件的所述实例之一而执行。
2.根据权利要求1所述的方法,其中所述引导所述代理部件中的每个代理部件安装代码还包括: 引导所述VM中的每个VM中的所述代理部件中的每个代理部件安装计算机可执行指令包,所述计算机可执行指令包由所述规范针对每个功能部件而指定、并且被配置用于在由每个VM执行时执行所述功能部件的操作。
3.根据权利要求1所述的方法,其中用于待部署的所述应用的所述规范指定由执行所述功能部件中的任何一个功能部件的任何节点所将需要的网络属性;并且其中所述VM中的每个VM根据由所述功能部件中的至少一个功能部件所需要的所述网络属性而被配置。
4.根据权利要求1所述的方法,其中所述规范指定用于所述功能部件中的任何一个功能部件的多个配置设置;并且`其中引导所述代理部件中的每个代理部件安装代码还包括: 取回用于所述功能部件之一的配置文件,其中所述配置文件指定具有变量的至少一个配置设置,所述变量引用所述规范中的所述多个配置设置之一; 修改所述配置文件以用由所述规范提供的所述引用的配置设置的值替换所述变量;以及 向对与修改的所述配置文件对应的所述功能部件的实例进行托管的所述VM中的每个VM中的所述代理部件中的每个代理部件提供修改的所述配置文件。
5.根据权利要求1所述的方法,还包括: 请求所述虚拟基础设施平台以根据由所述规范指定的辅助VM的数目起动多个辅助VM,其中所述辅助VM中的每个辅助VM被配置用于支持由所述功能部件中的至少一个功能部件所需要的所述硬件属性; 引导所述辅助VM中的每个辅助VM以将独立于机器架构的代码编译成可由所述VM中的每个VM执行以作为所述应用的所述功能部件的所述实例之一执行的代码。
6.根据权利要求1所述的方法,其中所述请求所述虚拟基础设施平台以起动所述多个VM还包括: 请求使用指定盘映像的模板来调配所述VM中的每个VM,所述盘映像具有访客操作系统和在其上安装的所述代理部件。
7.根据权利要求1所述的方法,其中用于所述应用的所述多个功能部件被配置用于协调以提供用于托管一个或者多个web应用的云计算服务。
8.一种包括指令的非瞬态计算机可读存储介质,所述指令在计算设备中执行时通过执行以下步骤来部署具有在多个不同节点上执行的多个功能部件的应用: 由部署模块接收用于所述应用的规范,其中所述规范指定(i)待部署的所述应用的每个功能部件的实例数目;以及和(ii)执行所述功能部件中的任何一个功能部件的任何节点所将需要的硬件属性; 请求虚拟基础设施平台起动足以在单独虚拟机(VM)中执行功能部件的每个实例的多个VM,其中所述VM中的每个VM (i)被配置用于支持所述功能部件中的至少一个功能部件所需要的硬件属性;并且(ii)包括被配置用于与所述部署模块通信的代理部件;以及 引导所述VM中的每个VM中的所述代理部件中的每个代理部件在所述VM中安装代码,所述代码实施所述功能部件中的、与所述VM的所述硬件属性兼容的功能部件,由此使所述VM作为所述应用的所述功能部件的所述实例之一而执行。
9.根据权利要求8所述的非瞬态计算机可读存储介质,其中所述用于引导所述代理部件中的每个代理部件安装代码的指令还包括用于以下步骤的指令: 引导所述VM中的每个VM中的所述代理部件中的每个代理部件安装计算机可执行指令包,所述计算机可执行指令包由所述规范针对每个功能部件而指定、并且被配置用于在由每个VM执行时执行所述功能部件的操作。
10.根据权利要求8所述的非瞬态计算机可读存储介质,其中用于待部署的所述应用的所述规范指定由执行所述功能部件中的任何一个功能部件的任何节点所将需要的网络属性;并且其中所述VM中的每个VM根据所述功能部件中的至少一个功能部件所需要的所述网络属性而被配置。
11.根据权利要求8所述的非瞬态计算机可读存储介质,其中所述规范指定用于所述功能部件中的任何一个功能部件的多个配置设置;并且其中所述用于引导所述代理部件中的每个代理部件安装代码的指令还包括用于以下步骤的指令: 取回用于所述功能部件之一的配置文件,其中所述配置文件指定具有变量的至少一个配置设置,所述变量引用所述规范中的所述多个配置设置之一; 修改所述配置文件以用由所述规范提供的所述引用的配置设置的值替换所述变量;以及 向对与修改的所述配置文件对应的所述功能部件的实例进行托管的所述VM中的每个VM中的所述代理部件中的每个代理部件提供修改的所述配置文件。
12.根据权利要求8所述的非瞬态计算机可读存储介质,还包括用于以下步骤的指令: 请求所述虚拟基础设施平台以根据由所述规范指定的辅助VM的数目起动多个辅助VM,其中所述辅助VM中的每个辅助VM被配置用于支持所述功能部件中的至少一个功能部件所需要的所述硬件属性; 引导所述辅助VM中的每个辅助VM以将独立于机器架构的代码编译成可由所述VM中的每个VM执行以作为所述应用的所述功能部件的所述实例之一执行的代码。
13.根据权利要求8所述的非瞬态计算机可读存储介质,其中所述用于请求所述虚拟基础设施平台起动所述多个VM的指令还包括用于以下步骤的指令: 请求使用指定盘映像的模板来调配所述VM中的每个VM,所述盘映像具有访客操作系统和在其上安装的所述代理部件。
14.根据权利要求8所述的非瞬态计算机可读存储介质,其中用于所述应用的所述多个功能部件被配置用于协调提供用于托管一个或者多个web应用的云计算服务。
15.一种用于部署应用的计算机系统,所述应用具有在多个不同节点上执行的多个功能部件,所述计算机系统包括系统存储器和被编程用于执行以下步骤的处理器: 由部署模块接收用于所述应用的规范,其中所述规范指定(i)待部署的所述应用的每个功能部件的实例数目;以及(ii)由执行所述功能部件中的任何一个功能部件的任何节点所将需要的硬件属性; 请求虚拟基础设施平台起动足以在单独虚拟机(VM)中执行功能部件的每个实例的多个VM,其中所述VM中的每个VM (i)被配置用于支持所述功能部件中的至少一个功能部件所需要的硬件属性;并且(ii)包括被配置用于与所述部署模块通信的代理部件;以及引导所述VM中的每个VM中的所述代理部件中的每个代理部件在所述VM中安装代码,所述代码实施所述功能部件中的、与所述VM的所述硬件属性兼容的功能部件,由此使所述VM作为所述应用的所述功能部件的所述实例之一而执行。
16.根据权利要求15所述的计算机系统,其中所述处理器还被编程用于执行以下步骤: 引导所述VM中的每个VM中的所述代理部件中的每个代理部件安装计算机可执行指令包,所述计算机可执行指令包由所述规范针对每个功能部件而指定、并且被配置用于在由每个VM执行时执行所述功能部件的操作。
17.根据权利要求15所述的计算机系统,其中用于待部署的所述应用的所述规范指定执行所述功能部件中的任何一个功能部件的任何节点所将需要的网络属性;并且其中所述VM中的每个VM根据所述功能`部件中的至少一个功能部件所需要的所述网络属性而被配置。
18.根据权利要求15所述的计算机系统,其中所述规范指定用于所述功能部件中的任何一个功能部件的多个配置设置;并且其中所述处理器还被编程用于执行以下步骤: 取回用于所述功能部件之一的配置文件,其中所述配置文件指定具有变量的至少一个配置设置,所述变量引用所述规范中的所述多个配置设置之一; 修改所述配置文件以用由所述规范提供的所述引用的配置设置的值替换所述变量;以及 向对与修改的所述配置文件对应的所述功能部件的实例进行托管的所述VM中的每个VM中的所述代理部件中的每个代理部件提供修改的所述配置文件。
19.根据权利要求15所述的计算机系统,其中所述处理器还被编程用于执行以下步骤: 请求所述虚拟基础设施平台以根据由所述规范指定的辅助VM的数目起动多个辅助VM,其中所述辅助VM中的每个辅助VM被配置用于支持所述功能部件中的至少一个功能部件所需要的所述硬件属性; 引导所述辅助VM中的每个辅助VM以将独立于机器架构的代码编译成可由所述VM中的每个VM执行以作为所述应用的所述功能部件的所述实例之一执行的代码。
20.根据权利要求15所述的计算机系统,其中用于所述应用的所述多个功能部件被配置用于协调提供用于托管一个或者多个web应用的云计算服务。
【文档编号】G06F9/455GK103608773SQ201280027619
【公开日】2014年2月26日 申请日期:2012年4月12日 优先权日:2011年4月12日
【发明者】V·斯皮瓦克, K·斯卡尔, O·沙尔迪宾 申请人:威睿公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1