CN102959506B - 用于计划应用部署的方法和系统 - Google Patents
用于计划应用部署的方法和系统 Download PDFInfo
- Publication number
- CN102959506B CN102959506B CN201080067619.4A CN201080067619A CN102959506B CN 102959506 B CN102959506 B CN 102959506B CN 201080067619 A CN201080067619 A CN 201080067619A CN 102959506 B CN102959506 B CN 102959506B
- Authority
- CN
- China
- Prior art keywords
- application
- distribution plan
- virtual server
- application model
- model
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- 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
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Abstract
根据一个示例,其中提供了一种在计算机系统中部署应用的方法。该方法包括针对多个计算机应用中的每一个获得应用特性集;基于所获得的特性,把所述多个应用中的每一个指派给预定应用模型集中的一个预定应用模型;以及部分地基于所获得的特性和部分地基于应用模型兼容性数据来确定硬件特性集、虚拟服务器分布计划以及应用分布计划。
Description
背景技术
许多现代商业和组织极为依赖信息技术(IT)来提供基于计算机的工具和服务,以使得它们和它们的客户能够高效地操作。该工具和服务通常由众多不同的软件应用来提供,所述软件应用通常在诸如计算机服务器、联网设备、存储设备等等之类的多种计算硬件上运行。出于效率和易于管理的原因,此计算硬件在专门的数据中心中正日益被统一。
通过使用诸如虚拟机之类的软件虚拟化应用,可以便利地把软件应用布置为在虚拟化环境中运行。这样,单个计算机服务器可以有效地同时运行多个计算机操作系统实例(或者虚拟映像(virtual image))以及在所述虚拟映像中的每一个上同时运行不同的应用。
当决定要在数据中心中配备什么计算硬件时,常常对将要运行的软件应用的性质给予很少的考虑。相应地,计划不良的数据中心可能配备有比要运行一组软件应用实际需求的多得多的计算硬件。这样的过配备不仅成本高,而且它还可能导致软件应用以低效的方式被部署在计算硬件上。低效部署可以导致所谓的服务器或虚拟蔓延,其结果可能包括在功率、制冷以及空间需求方面的显著增加。
附图说明
现在将参考附图、借助仅仅非限制性的示例来描述本发明的示例,在附图中:
图1是图示了数据中心的一部分的简化框图;
图2是计算机服务器中的操作系统和软件应用的示例部署的简化图解;
图3是图示了依据本发明的示例的虚拟化评估引擎302的简化框图;
图4是概述依据本发明的示例的操作虚拟化评估引擎的方法的简化流程图;
图5是图示了依据本发明的示例的虚拟化评估引擎的简化框图;
图6是概述依据本发明的示例的操作虚拟化评估引擎的方法的简化流程图;
图7是依据一个示例的虚拟映像和应用部署计划的图解;以及
图8是图示了依据本发明的一个示例的虚拟化评估引擎的实施方式的简化框图。
具体实施方式
下面将参考各种示例来描述各种实施例。
企业软件应用正越来越多地被部署在被配备在诸如数据中心之类的专门设施中的功能强大的计算硬件上的虚拟化环境中。图1示出了图示数据中心100的一部分的简化框图。数据中心100包括连接到数据中心主干网络104的多个计算机服务器102a-102n。本领域技术人员将意识到,为了简明起见,未示出典型数据中心的所有元件。
服务器102a-102n中的每一个运行虚拟化应用,诸如VMWare公司的vSphere应用,其使得不同操作系统的实例或者虚拟映像能够同时在该服务器中的每一个上执行。例如,服务器102a可以执行使得Microsoft、Linux和Solaris操作系统的实例能够同时执行的虚拟化应用,以及还使得不同的应用能够在所述不同操作系统实例中的每一个上同时执行。
如图2中所示,虚拟化应用202执行和管理三个不同操作系统实例204、206和208的虚拟化执行。在第一操作系统实例204上执行应用210a、210b和210c。在第二操作系统实例206上执行应用212a和212b。在第三操作系统实例208上执行应用214a至214d。
目前,希望部署一组应用的系统架构师通常例如在数据中心中标识了一组未使用的计算硬件,并且很大程度地基于他们的个人知识和经验确定了该组应用将如何部署在计算硬件上。然而,对于系统架构师而言通常基本上过规定(over-specify)硬件需求以避免潜在的服务器过载的风险。
此外,对于系统架构师而言,通常通过仅少量地给每个服务器加载应用来以有点谨慎的方式在硬件上部署应用,以便避免服务器过载的风险。然而,这样的方案可以导致所谓的虚拟化或者服务器蔓延,其中大量的物理服务器以低利用率运行。这可能导致就数据中心功率、制冷系统、存储器、储存器和物理空间而言的显著低效率。
现在参考图3,其示出了依据本发明的示例的虚拟化评估引擎302。下面进一步参考图4和图6的流程图来描述依据各种示例的操作虚拟化评估引擎302的方法。
依据一个或多个示例,虚拟化评估引擎302确定或生成可以被用来执行一组目标应用的一组计算硬件的特性,以及附加地确定分布或部署所确定硬件的该组目标应用的有效方式。
在一个示例中,虚拟化评估引擎302获得(402)与期望运行在数据中心或者其他计算设施中的一组目标应用相关的数据306a至306n。虚拟化评估引擎302处理(404)所获得的数据并且生成(406)可以用来执行目标应用的一组硬件需求304a至304n的特性。虚拟化评估引擎302然后生成(408)部署计划308以用于适当地把那些应用分布在所确定的硬件上。部署计划308包括用于跨所确定的那组计算硬件来分布操作系统虚拟映像的计划310,以及用于在不同的操作系统虚拟实例之间分布、部署、或者堆叠目标应用的计划312。
与该组应用有关的数据306例如可以通过使用软件代理、软件管理工具来自动地获得、手动地获得、或者以任何其他适当方式获得。数据306可以包括技术特性或者需求,例如包括应用被设计为在其上运行的操作系统、所要求的存储器的量、所要求的储存器的量、等等。数据306另外可以包括商业需求数据。商业需求数据例如可以定义对商业施加的约束或需求。商业需求例如可以通过数据中心或系统管理员或者架构师来获得,或者采用任何其他适当方式来获得。
在不同的软件应用之间可能存在复杂的交互。例如,出于商业或安全原因,一个软件应用可能是被允许在特定物理计算机服务器上运行的唯一应用以确保满足对商业施加的安全需求。此外,可以要求这样的应用安装在独立的虚拟化应用上。借助于进一步的示例,应用可以依赖于特定的操作系统二进制库,为了冗余可以要求采用物理硬件分散(例如,其中要求物理硬件服务器处于分离的数据中心壳体中)来进行应用组件级聚类,等等。
了解所有的不同参数和因素是特别具有挑战性的和复杂的任务。
现在参考图5,其中示出了系统500,在其中,依据示例更详细地示出了虚拟化评估引擎302。进一步对图6进行参考。
应用模型匹配器模块502获得(602)期望采用虚拟化方式安装和执行的一组目标应用的应用属性的集合504a至504n。在本示例中,应用属性包括技术506和非技术508应用属性这二者。在其他示例中,应用属性504a至504n可以包括除了技术和非技术属性这二者之外的属性。
非技术属性例如可以包括功能需求,其可以影响应用在虚拟环境中或者在物理硬件上的放置或共栖。例如,非技术属性可以根据功能或商业方面来限定是否允许一应用与其他应用共栖在同一虚拟机中或者甚至在同一物理硬件上。例如,对于具有安全需求的应用而言可能是这样的,在该应用中,应用拥有者不希望该应用与任何其他应用共享物理或虚拟资源。
在一些示例中,所获得的属性的集合504a至504n包括属性优先化或者权重。在其他示例中,一旦获得了属性,就可以由用户手动地或者通过施加预定权重自动地分配权重。权重例如可以用来指示不同特性的相对重要性。
下面在表1和2中示出了示例应用属性。
表1—示例应用属性
表2—示例应用属性。
在一些示例中,可以使用诸如可扩展标记语言(XML)之类的标记语言来定义应用属性。
系统500包括应用模型储存器510,在其中存储一组预定应用模型。
可以通过对可能期望在数据中心中运行的不同软件应用的分析来定义每个应用模型。这样的分析可以适当地由系统管理员或者架构师手动地执行或者通过应用分析模块或者工具(未示出)自动地执行。每个应用模型目的是提供标识关键应用特性的唯一的或者基本唯一的技术和/或非技术属性的集合。一些应用模型可以仅具有技术属性,而其他应用模型可以具有技术和非技术属性这二者。
下面在表3和4中示出了示例应用模型。
表3—示例应用模型
表4—示例应用模型。
在一些示例中,可以使用诸如XML之类的标记语言来定义应用模型。下面在表1和2中示出示例应用属性。
在604处,应用模型匹配器502试图把针对其获得应用属性504的目标应用中的每一个匹配或者指派到存储在应用模型储存器510中的应用模型。
在一个示例中,该匹配或者指派处理可以通过搜索与针对给定应用的所获得的应用属性504中的每一个精确匹配的应用模型来执行。在其他示例中,匹配处理例如可以通过搜索最佳匹配或者基本上匹配所获得的应用属性的应用模型、或者在预定相似性程度上匹配所述属性中的至少一些属性的应用模型来执行。例如,应用属性中的一些或者所有应用属性可以具有限定相对重要性级别或者可接受的相似性级别的相关权重。在一些示例中,在适当时候该分析处理可以使用适合的XML解析技术。
一旦针对每个目标应用的应用属性中的每一个已经与一应用模型匹配或者被指派给一应用模型,结果就被传给虚拟机映像计划模块512。
虚拟机映像计划模块512获得存储在应用模型兼容性数据储存器514中的应用模型兼容性数据。在一些示例中,应用模型兼容性数据可以与应用模型数据一起存储。
应用模型兼容性数据定义了在虚拟化环境中哪些应用模型与哪些其他应用模型兼容,以及,通过推断定义了哪些应用模型与哪些其他应用模型不兼容。下面在表5中示出了一示例。
表5—示例应用模型兼容性。
一个应用模型与另一个的兼容性可以通过对技术和非技术应用属性的分析来加以确定。该分析例如可以由系统管理员或者系统架构师通过使用应用分析工具、处理监视器或者采用任何合适的方式手动地加以执行。下面在表1和2中示出示例应用属性。
举例来说,可以确定要求Linux操作系统的应用模型与要求Windows操作系统的应用不兼容。类似地,可以确定其中要求应用组件聚类的应用模型与其中不要求应用聚类的应用模型不兼容。
虚拟机映像计划模块512使用应用模型兼容性数据确定(606)哪些应用与彼此兼容,以及因此在给定的虚拟机映像中或者在同一物理硬件上哪些应用可以与哪些其他应用共栖。它们的对应的应用模型可以被确定为是不兼容的应用被确定为不能够与彼此共栖。例如,要求Linux系统的应用可以被确定为不能够在Windows操作系统的虚拟机映像中共栖。借助于进一步的示例,具有定义不允许服务器共享的属性的应用将不被允许与其他应用共栖,甚至将不被允许与要求同一操作系统的应用共栖。
虚拟映像计划模块512考虑到应用兼容性数据来确定用以执行该组目标应用所必要的每个操作系统的最小数目的虚拟机实例,以及哪些应用应当和不应当并置在同一操作系统实例中的细节。虚拟映像计划模型512还为每个虚拟映像确定适当的配置参数。然而,此初始确定是在没有对所要求的硬件资源进行任何注意的情况下做出的。如下面所描述的,根据所确定的硬件特性可以要求更大数目的虚拟机映像。
所确定的细节被传给虚拟机映像部署和应用部署计划模块516。
具有一组应用模型以及那些模型之间的预定兼容性的一个特定优点是它减少了确定不同的应用是否与彼此兼容的任务以便目标应用的关键特性与一组应用模型的特性的模式匹配的相对直接的操作。
为了确定高效的部署计划,可能需要考虑与要执行的软件应用、所要求的操作系统、虚拟映像、虚拟化应用以及物理硬件相关的大量因素。该因素可以包括技术或物理因素以及商业因素这二者。
硬件技术因素例如可以包括:处理力;多任务处理能力;存储器容量;储存器容量;以及网络带宽。软件应用技术因素例如可以包括:存储器需求;联网需求;储存器需求;安全需求;冗余需求;以及处理力需求。
虚拟机部署和应用部署计划模块516获得(610)定义可用的目标虚拟机映像的属性的虚拟机映像属性520。虚拟机映像属性520可以包括所要求的最小硬件资源、可能的执行线程数、以及其他适当的特性的细节。虚拟机属性520例如可以由系统管理员或者系统架构师通过由虚拟机开发者或者供应者供应的数据、通过软件监视应用、软件代理、或者采用任何其他合适的方式来获得。
虚拟机部署和应用部署计划模块516获得(612)存储在部署计划优选数据储存器524中的部署计划优选数据。该部署计划优选数据可以由系统管理员或者系统架构师来设置,或者可以定义默认的预定的部署计划优选集。部署计划优选确定了将由模块516考虑的优选,如下面进一步描述的那样。
所述优选可以包括硬件优选,诸如优选的处理特性,优选的硬件制造者,费用范围,服务器类型,等等。所述优选还可以针对通过虚拟映像使用硬件来定义特定限制或阈值。在一个示例中,所述优选可以定义硬件设备的CPU利用率的最大量。使用该计划优选使得最终的部署或堆叠计划能够适合于特定系统管理员或者系统架构师需求。
连同VM映像属性(520)一起考虑部署计划优选,从而使得VM映像部署和应用部署计划模块(516)产生一组硬件特性518、虚拟机部署计划(526)以及应用部署或者可堆叠性(stackability)计划(528)。
在614处,模块516通过依次分析目标应用中的每一个的特性以及把每个应用指派给一虚拟映像,来确定初始虚拟机和应用部署计划。应用至虚拟映像的指派考虑了应用特性,诸如指派给同一虚拟映像的其他应用所要求的资源,以及应用兼容性数据。如果虚拟机部署和应用部署计划模块516确定了通过把该应用添加到该虚拟映像将超出虚拟机映像资源,则寻求在其上放置该应用的不同的虚拟映像。如果找到了合适的虚拟映像,则把该应用指派给该找到的虚拟映像。如果没有找到合适的虚拟映像,则分配新的虚拟映像,并且把该应用指派给该新的虚拟映像。在一个示例中,分配给虚拟映像的资源可以基于在优选储存器524中存储的硬件优选。在另一示例中,分配给虚拟映像的资源可以基于默认的硬件特性集。
在616处,虚拟映像部署和应用部署计划模块516基于初始虚拟机部署计划来确定适合于以虚拟化方式执行目标应用的一组最小的硬件属性518。举例来说,可以通过确定针对处理力、储存器、存储器、网络能力等等的、如根据应用属性确定的最小需求来进行所述确定。
在进一步的示例中,由模块516确定的硬件属性可以例如从硬件库或者数据库(未示出)、通过选择总体具有满足所确定的最小硬件需求的硬件属性的一组物理硬件,来限定一组市售的硬件。在一些示例中该选择处理可以包括定价信息和其他技术和非技术属性。
根据在616处确定的那组物理硬件以及根据其特性,模块618可能需要调整初始虚拟机和应用部署计划以产生最终的虚拟机映像和应用部署计划。举例来说,如果费用限制包括在硬件优选数据中,则模块516可以确定要求两个较小且较便宜的服务器,而不是一个较大较昂贵的服务器。在此情况下,可以要求一个或多个附加的虚拟机映像,以及该应用部署计划将需要调整以考虑该附加的虚拟机映像或多个附加的虚拟机映像。
使用所获得的信息,虚拟机部署和应用部署计划模块516确定(614)最终的虚拟映像部署计划526和最终的应用部署或堆叠计划528。虚拟映像部署计划限定了被确定为适合于托管或执行该组应用的虚拟映像的类型和数目。虚拟映像部署计划526另外限定了所定义的虚拟映像应当被安装在所确定的物理硬件上所依照的方式。应用部署或堆叠计划528限定了目标应用中的哪些应当被安装在虚拟映像中的哪些上。
在一些示例中,虚拟机映像部署和应用部署计划模块516针对目标硬件和目标应用的不同组合、使用所述应用和虚拟机属性中的适当的那些、来计算不同的虚拟机部署计划526和应用堆叠计划528。
在一个示例中,模块516确定虚拟机和应用部署的多个不同组合,并且基于一个或多个不同参数对不同的组合分等级。模块516可以基于不同的准则对不同的组合分等级,所述不同的准则例如包括:最小数目的虚拟机映像、最小数目的物理服务器、每虚拟机映像最大数目的应用、较低的硬件费用,等等。模块516可以基于诸如存储在优选数据储存器524中的优选之类的一些预定优选,自动地把部署计划中的一个选择作为优选的部署计划。
在进一步的示例中,可以把不同部署计划的列表呈现给系统管理员或者架构师以用于手动选择优选的部署计划和优选的硬件属性。该呈现例如可以经由与虚拟化评估引擎302相关联的可视显示单元(未示出)来进行。
所确定的虚拟机和应用部署计划526和528以及所确定的硬件属性518可以采用适当的元数据的形式来加以输出,例如采用XML格式来加以输出。虚拟机和应用部署计划526和528可以被虚拟化管理应用用来给目标硬件自动地配置适当的虚拟机映像,以及依据所选择的虚拟机和应用部署计划适当地分布目标应用。所确定的硬件属性518可以被采购应用使用以用于订购所确定的硬件。
在图7中示出了虚拟映像和应用部署计划的示例图解。示出了多个物理服务器702a至702d,每个分别运行虚拟化应用704a至704d。服务器702a运行单个Windows虚拟映像706a,在其上运行多个Windows应用708a。服务器702b运行Windows虚拟映像706b和Linux虚拟映像706b',在该Windows虚拟映像706b上运行Windows应用708b,在Linux虚拟映像706b'上运行Linux应用708b'。服务器702c运行Windows虚拟映像706c和Solaris虚拟映像706c',在该Windows虚拟映像706c上运行Windows应用708c,在Solaris虚拟映像706c'上运行Solaris应用708c'。最后,服务器702d运行Windows虚拟映像706d,在其上运行单个Windows应用708d。
在又一示例中,把应用模型匹配器模块502配置为当其确定了针对一应用的一组应用属性504并未适当地匹配当前存储在应用模型储存器510中的任何应用模型时,创建新的应用模型。在一个示例中,如果一组应用属性仅部分匹配现有的应用模型,则可以通过下列各步骤来创建新的应用模型:确定最接近匹配的应用模型以及复制所确定的最接近匹配的应用模型的一部分以及对它进行修改以针对非匹配元素创建新的模型属性。可以把新生成的应用模型存储在应用模型储存器510中以供将来使用。在一个示例中,当创建新的应用模型时可以触发警报,例如以允许系统管理员或者架构师更新或者验证新创建的应用模型,以及如果需要把应用模型兼容性数据添加到应用兼容性数据储存器514。
现在参考图8,其中示出了虚拟化评估引擎302的示例实施方式的框图。虚拟化评估引擎302包括微处理器、控制逻辑或者微控制器802以用于执行存储在存储器804中的机器可读指令。机器可读或者计算机可执行指令当被处理器802执行时可以执行如上面被描述为计算机实施的方法的方法步骤。输入和输出操作可以由I/O模块806处理。处理器802、存储器804和I/O接口806经由总线808耦合或者通信。
在进一步的示例中,提供了承载当被计算机解释时促使计算机执行依据上面描述的示例中的任何示例的方法的计算机可实施指令的载体。
将理解的是,示例可以采用硬件、软件、或者硬件和软件的组合的形式来实现。任何这样的软件可以被以有形的易失或非易失储存器(诸如例如像ROM的存储设备,无论是否是可擦除的或者可重写的)的形式来加以存储,或者以诸如例如RAM、存储器芯片、器件或者集成电路之类的存储器的形式来加以存储,或者被存储在诸如例如CD、DVD、磁盘或者磁带之类的光学或磁性可读介质上。
将理解的是,存储设备和存储介质是机器可读储存器的示例,其适合于存储当被执行时实施本发明的实施例的一个或多个程序。因此,示例可以提供包括用于实施如本文所描述的系统或方法的代码的程序。示例另外可以提供存储这样的程序的机器可读储存器。仍进一步地,可以以电子方式经由任何介质(诸如通过有线或无线连接载送的通信信号)传达示例,并且示例适合地包括同样的东西。
此说明书(包括任何随附的权利要求书、摘要和附图)中所公开的所有特征,和/或如此公开的任何方法或过程的所有步骤可以采用任何组合进行组合,除了这样的特征和/或步骤中的至少一些是互斥的组合之外。
此说明书(包括任何随附的权利要求书、摘要和附图)中所公开的每个特征可以由用作相同的、等价的或相似目的的替代特征替换,除非以其它方式明确声明。因此,除非以其它方式明确声明,所公开的每个特征仅是等价或相似特征的通用系列中的一个示例。
Claims (14)
1.一种在计算机系统中计划应用部署的方法,包括:
针对多个计算机应用中的每一个获得应用特性集;
基于所获得的特性,把所述多个计算机应用中的每一个指派给预定应用模型集中的一个预定应用模型;
基于与所述多个计算机应用被指派给的预定应用模型的兼容性有关的数据来确定所述多个计算机应用与彼此的兼容性;以及
部分地基于所获得的特性和部分地基于应用模型兼容性数据来确定硬件特性集、虚拟服务器分布计划以及应用分布计划。
2.如权利要求1所述的方法,其中所述确定硬件特性集、虚拟服务器分布计划以及应用分布计划的步骤包括:
确定初始虚拟服务器分布计划;
确定所述硬件特性集;
依据所确定的硬件特性集修订所述初始虚拟服务器分布计划;以及
确定所述应用分布计划。
3.如权利要求1所述的方法,其中,所确定的硬件特性集定义了适合于执行所述多个计算机应用的计算硬件集的特性,其中,所确定的虚拟服务器分布计划定义了将被部署在所定义的计算硬件中的每一个上的虚拟服务器的数目和类型,以及其中,所述应用分布计划定义了所述多个计算机应用中的哪些计算机应用将被部署在所述虚拟服务器中的哪些上。
4.如权利要求1所述的方法,其中,确定虚拟服务器分布计划包括:确定适合于在所确定的计算硬件上执行所述多个计算机应用的虚拟服务器的特性和数目。
5.如权利要求1所述的方法,其中,所述指派的步骤进一步包括:在确定了应用并未适当地匹配所述预定应用模型集中的任何预定应用模型的情况下,基于所述应用的特性生成新的应用模型。
6.如权利要求5所述的方法,其中,所述生成新的应用模型的步骤包括:确定最接近匹配的应用模型,以及基于所确定的最接近匹配的应用模型生成新的应用模型。
7.如权利要求1所述的方法,其中,确定虚拟服务器分布计划和应用分布计划进一步包括:
确定多个不同的硬件特性集、虚拟服务器分布计划以及应用分布计划,虚拟服务器分布计划、应用分布计划以及所述多个不同的硬件特性集中的每一个是基于应用特性和所获得的优选数据的不同组合来确定的;以及
基于所获得的优选数据来选择虚拟服务器分布计划、应用分布计划和所述多个确定的硬件特性集之一。
8.一种在计算机系统中计划应用部署的系统,包括处理器、与所述处理器通信的存储器以及计算机可执行指令,所述计算机可执行指令被存储在所述存储器中并且可在所述处理器上执行以:
针对多个应用中的每一个获得特性集;
使用所获得的特性将所述应用中的每一个与预定应用模型匹配;
基于与所述多个应用被指派给的预定应用模型的兼容性有关的数据来确定所述多个应用与彼此的兼容性;
生成初始虚拟服务器分布计划;
生成硬件特性集;以及
依据所生成的硬件特性集生成修订的虚拟服务器分布计划。
9.如权利要求8所述的系统,其中,所述计算机可执行指令还包括用来生成所述应用可以被部署在其上的计算硬件的列表的指令。
10.如权利要求8所述的系统,其中,所述计算机可执行指令还包括用来生成虚拟服务器分布计划的指令,所述虚拟服务器分布计划详细描述适合于执行所述多个应用的虚拟服务器的类型和数目以及用于详细描述每个虚拟服务器将被部署在所确定的计算硬件中的哪些上。
11.如权利要求10所述的系统,其中,所述计算机可执行指令还包括用来生成详细描述所述应用中的每一个将被部署在所述虚拟服务器中的哪些上的应用部署计划的指令。
12.如权利要求8所述的系统,其中,所述计算机可执行指令还包括这样的指令,该指令用来:
在确定了应用并未与所述应用模型中的任何应用模型匹配的情况下,基于所述应用的特性生成新的应用模型,以及把所生成的应用模型存储在应用模型数据储存器中。
13.如权利要求8所述的系统,其中,用来生成初始虚拟服务器分布计划和修订的虚拟服务器分布计划的所述计算机可执行指令还包括这样的指令,该指令用来:
生成多个硬件特性集、虚拟服务器和应用分布计划;以及
依据所获得的优选数据选择硬件特性集之一和相关联的所生成的虚拟服务器和应用分布计划。
14.如权利要求8所述的系统,其中,所述计算机可执行指令还包括这样的指令,该指令用来:
把所生成的计算硬件的列表发送给采购应用以用于订购所生成的计算硬件的列表。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2010/039432 WO2011162744A1 (en) | 2010-06-22 | 2010-06-22 | Methods and systems for planning application deployment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102959506A CN102959506A (zh) | 2013-03-06 |
CN102959506B true CN102959506B (zh) | 2017-04-26 |
Family
ID=45371702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080067619.4A Active CN102959506B (zh) | 2010-06-22 | 2010-06-22 | 用于计划应用部署的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9858068B2 (zh) |
EP (1) | EP2585910B1 (zh) |
CN (1) | CN102959506B (zh) |
WO (1) | WO2011162744A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858068B2 (en) | 2010-06-22 | 2018-01-02 | Hewlett Packard Enterprise Development Lp | Methods and systems for planning application deployment |
CN102947790B (zh) | 2010-06-22 | 2017-10-17 | 慧与发展有限责任合伙企业 | 用于确定应用的部署的方法和系统 |
US9571332B2 (en) * | 2012-04-17 | 2017-02-14 | Adara Networks, Inc. | Methods and apparatuses for remote application provisioning automation over virtualized IT infrastructure |
US9355228B2 (en) * | 2012-07-13 | 2016-05-31 | Angel Secure Networks, Inc. | System and method for policy driven protection of remote computing environments |
GB2503932A (en) * | 2012-07-13 | 2014-01-15 | Ibm | Creating a hybrid processing thread to be executed on multiple application servers |
US9292349B2 (en) * | 2013-03-15 | 2016-03-22 | International Business Machines Corporation | Detecting deployment conflicts in heterogenous environments |
US9298511B2 (en) | 2013-03-15 | 2016-03-29 | International Business Machines Corporation | Resolving deployment conflicts in heterogeneous environments |
WO2014190544A1 (zh) * | 2013-05-31 | 2014-12-04 | 华为技术有限公司 | 应用部署方法和设备 |
US10530871B2 (en) | 2013-09-04 | 2020-01-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Controlling services deployment in distributed computing systems based on historical use by electronic devices |
US9600310B2 (en) * | 2013-12-31 | 2017-03-21 | Open Invention Network, Llc | Compatibility-based configuration of hardware with virtualization software |
CN105354198B (zh) * | 2014-08-19 | 2019-07-02 | 中国移动通信集团湖北有限公司 | 一种数据处理方法及装置 |
EP3201764A1 (en) | 2014-09-29 | 2017-08-09 | Hewlett-Packard Enterprise Development LP | Provisioning a service |
US10795856B1 (en) * | 2014-12-29 | 2020-10-06 | EMC IP Holding Company LLC | Methods, systems, and computer readable mediums for implementing a data protection policy for a transferred enterprise application |
US10114664B1 (en) * | 2015-09-21 | 2018-10-30 | Veritas Technologies Llc | Systems and methods for automated delivery and identification of virtual drives |
US20180032322A1 (en) * | 2016-07-29 | 2018-02-01 | Hewlett Packard Enterprise Development Lp | Automated devops application deployment |
US10609180B2 (en) | 2016-08-05 | 2020-03-31 | At&T Intellectual Property I, L.P. | Facilitating dynamic establishment of virtual enterprise service platforms and on-demand service provisioning |
US10372362B2 (en) * | 2017-03-30 | 2019-08-06 | Intel Corporation | Dynamically composable computing system, a data center, and method for dynamically composing a computing system |
US11196643B2 (en) | 2018-04-04 | 2021-12-07 | Hewlett Packard Enterprise Development Lp | State transitions for a set of services |
US11281491B2 (en) | 2018-11-21 | 2022-03-22 | Hewlett Packard Enterprise Development Lp | Execution of services concurrently |
US11029936B2 (en) * | 2019-04-11 | 2021-06-08 | Microsoft Technology Licensing, Llc | Deploying packages to devices in a fleet in stages |
US11221837B2 (en) | 2019-04-11 | 2022-01-11 | Microsoft Technology Licensing, Llc | Creating and deploying packages to devices in a fleet based on operations derived from a machine learning model |
US11216296B2 (en) * | 2019-04-17 | 2022-01-04 | Hewlett Packard Enterprise Development Lp | Identifying a least cost cloud network for deploying a virtual machine instance |
US11861352B2 (en) * | 2021-12-29 | 2024-01-02 | Microsoft Technology Licensing, Llc | Smart deployment using graph optimization |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1836208A (zh) * | 2003-10-23 | 2006-09-20 | 微软公司 | 计算机系统和分布式应用程序的基于模型管理 |
Family Cites Families (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999956B2 (en) * | 2000-11-16 | 2006-02-14 | Ward Mullins | Dynamic object-driven database manipulation and mapping system |
US7093001B2 (en) | 2001-11-26 | 2006-08-15 | Microsoft Corporation | Methods and systems for adaptive delivery of multimedia contents |
US7310673B2 (en) * | 2001-12-21 | 2007-12-18 | Hewlett-Packard Development Company, L.P. | Network resource assignment system and method |
US8447963B2 (en) * | 2002-06-12 | 2013-05-21 | Bladelogic Inc. | Method and system for simplifying distributed server management |
US7743127B2 (en) | 2002-10-10 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Resource allocation in data centers using models |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7146353B2 (en) | 2003-07-22 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Resource allocation for multiple applications |
US7665085B2 (en) * | 2004-03-15 | 2010-02-16 | Ramco Systems Limited | Flexible deployment of software applications |
US7478361B2 (en) * | 2004-06-17 | 2009-01-13 | International Business Machines Corporation | Method and system for managing application deployment |
US20060080413A1 (en) | 2004-06-17 | 2006-04-13 | International Business Machines Corporation | Method and system for establishing a deployment plan for an application |
US8549513B2 (en) | 2005-06-29 | 2013-10-01 | Microsoft Corporation | Model-based virtual system provisioning |
US7587492B2 (en) | 2005-07-29 | 2009-09-08 | Hewlett-Packard Development Company, L.P. | Dynamic performance management for virtual servers |
US8387048B1 (en) | 2006-04-25 | 2013-02-26 | Parallels IP Holdings GmbH | Seamless integration, migration and installation of non-native application into native operating system |
US7774463B2 (en) | 2006-07-25 | 2010-08-10 | Sap Ag | Unified meta-model for a service oriented architecture |
US9218213B2 (en) * | 2006-10-31 | 2015-12-22 | International Business Machines Corporation | Dynamic placement of heterogeneous workloads |
US8181186B1 (en) * | 2007-01-11 | 2012-05-15 | Altrinsic Solutions, LLC. | Hardware independent imaging method |
US7673052B2 (en) | 2007-03-21 | 2010-03-02 | International Business Machines Corporation | Policy algorithm for selection of compatible systems for virtual server mobility |
US8024396B2 (en) | 2007-04-26 | 2011-09-20 | Microsoft Corporation | Distributed behavior controlled execution of modeled applications |
US20080294777A1 (en) * | 2007-05-25 | 2008-11-27 | Alexei Karve | Method and apparatus for template-based provisioning in a service delivery environment |
US8782322B2 (en) | 2007-06-21 | 2014-07-15 | International Business Machines Corporation | Ranking of target server partitions for virtual server mobility operations |
US7886028B2 (en) | 2007-07-05 | 2011-02-08 | International Business Machines Corporation | Method and system for system migration |
CA2697965C (en) | 2007-08-31 | 2018-06-12 | Cirba Inc. | Method and system for evaluating virtualized environments |
US8127296B2 (en) | 2007-09-06 | 2012-02-28 | Dell Products L.P. | Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration |
US8468230B2 (en) | 2007-10-18 | 2013-06-18 | Fujitsu Limited | Method, apparatus and recording medium for migrating a virtual machine |
JP5104588B2 (ja) | 2007-10-18 | 2012-12-19 | 富士通株式会社 | マイグレーションプログラム、および仮想マシン管理装置 |
US8225308B2 (en) | 2007-10-26 | 2012-07-17 | Microsoft Corporation | Managing software lifecycle |
US8087015B2 (en) | 2007-10-26 | 2011-12-27 | Microsoft Corporation | Assignment of application models to deployment targets |
US7962587B2 (en) | 2007-12-10 | 2011-06-14 | Oracle America, Inc. | Method and system for enforcing resource constraints for virtual machines across migration |
US8386610B2 (en) | 2007-12-31 | 2013-02-26 | Netapp, Inc. | System and method for automatic storage load balancing in virtual server environments |
US8151256B2 (en) | 2008-01-31 | 2012-04-03 | Oracle America, Inc. | Platform independent registry framework |
US8671404B2 (en) | 2008-02-12 | 2014-03-11 | Red Hat, Inc. | Distributing and managing virtual machines |
US8175863B1 (en) | 2008-02-13 | 2012-05-08 | Quest Software, Inc. | Systems and methods for analyzing performance of virtual environments |
US10108460B2 (en) | 2008-02-28 | 2018-10-23 | International Business Machines Corporation | Method and system for integrated deployment planning for virtual appliances |
US8230069B2 (en) | 2008-03-04 | 2012-07-24 | International Business Machines Corporation | Server and storage-aware method for selecting virtual machine migration targets |
US7506037B1 (en) | 2008-05-13 | 2009-03-17 | International Business Machines Corporation | Method determining whether to seek operator assistance for incompatible virtual environment migration |
US7970905B2 (en) | 2008-07-03 | 2011-06-28 | International Business Machines Corporation | Method, system and computer program product for server selection, application placement and consolidation planning of information technology systems |
US8291378B2 (en) * | 2008-07-29 | 2012-10-16 | International Business Machines Corporation | Simplified deployment modeling |
US8849987B2 (en) | 2008-07-29 | 2014-09-30 | International Business Machines Corporation | Automated discovery of a topology of a distributed computing environment |
US8595737B2 (en) | 2009-03-17 | 2013-11-26 | Hitachi, Ltd. | Method for migrating a virtual server to physical server according to a variation ratio, a reference execution time, a predetermined occupied resource amount and a occupancy amount |
US8789043B2 (en) | 2009-03-24 | 2014-07-22 | International Business Machines Corporation | Optimized placement planning for virtual machines in a network by breaking relocation graph into one or more cores to apply different solutions |
US7904540B2 (en) | 2009-03-24 | 2011-03-08 | International Business Machines Corporation | System and method for deploying virtual machines in a computing environment |
US8117613B2 (en) | 2009-04-08 | 2012-02-14 | Microsoft Corporation | Optimized virtual machine migration mechanism |
US8086808B2 (en) | 2009-04-23 | 2011-12-27 | Hitachi, Ltd. | Method and system for migration between physical and virtual systems |
US8261266B2 (en) | 2009-04-30 | 2012-09-04 | Microsoft Corporation | Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application |
US8418165B2 (en) * | 2009-05-27 | 2013-04-09 | Microsoft Corporation | Package design and generation |
JP4951034B2 (ja) | 2009-06-25 | 2012-06-13 | 株式会社日立製作所 | 計算機システムとその稼働情報管理方法 |
US8489744B2 (en) | 2009-06-29 | 2013-07-16 | Red Hat Israel, Ltd. | Selecting a host from a host cluster for live migration of a virtual machine |
US9069730B2 (en) | 2009-06-29 | 2015-06-30 | Hewlett-Packard Development Company, L. P. | Coordinated reliability management of virtual machines in a virtualized system |
CN101937357B (zh) | 2009-07-01 | 2013-11-06 | 华为技术有限公司 | 一种虚拟机迁移决策方法、装置及系统 |
US8832683B2 (en) | 2009-11-30 | 2014-09-09 | Red Hat Israel, Ltd. | Using memory-related metrics of host machine for triggering load balancing that migrate virtual machine |
US8549467B2 (en) * | 2009-12-16 | 2013-10-01 | International Business Machines Corporation | Integrating software components in a software system using configurable glue component models |
WO2011077490A1 (ja) | 2009-12-24 | 2011-06-30 | 株式会社日立製作所 | 仮想ボリュームを提供するストレージシステム |
US20110202640A1 (en) | 2010-02-12 | 2011-08-18 | Computer Associates Think, Inc. | Identification of a destination server for virtual machine migration |
US9027017B2 (en) | 2010-02-22 | 2015-05-05 | Virtustream, Inc. | Methods and apparatus for movement of virtual resources within a data center environment |
US8478878B2 (en) | 2010-03-11 | 2013-07-02 | International Business Machines Corporation | Placement of virtual machines based on server cost and network cost |
US9626206B2 (en) | 2010-03-18 | 2017-04-18 | Microsoft Technology Licensing, Llc | Virtual machine homogenization to enable migration across heterogeneous computers |
US9207993B2 (en) | 2010-05-13 | 2015-12-08 | Microsoft Technology Licensing, Llc | Dynamic application placement based on cost and availability of energy in datacenters |
US9858068B2 (en) | 2010-06-22 | 2018-01-02 | Hewlett Packard Enterprise Development Lp | Methods and systems for planning application deployment |
CN102947790B (zh) | 2010-06-22 | 2017-10-17 | 慧与发展有限责任合伙企业 | 用于确定应用的部署的方法和系统 |
US20130238804A1 (en) | 2010-11-16 | 2013-09-12 | Hitachi, Ltd. | Computer system, migration method, and management server |
US9612855B2 (en) | 2011-01-10 | 2017-04-04 | International Business Machines Corporation | Virtual machine migration based on the consent by the second virtual machine running of the target host |
US20130339956A1 (en) | 2011-03-03 | 2013-12-19 | Hitachi, Ltd. | Computer system and optimal arrangement method of virtual machine in computer system |
US8806484B2 (en) | 2011-04-18 | 2014-08-12 | Vmware, Inc. | Host selection for virtual machine placement |
US8713577B2 (en) | 2011-06-03 | 2014-04-29 | Hitachi, Ltd. | Storage apparatus and storage apparatus management method performing data I/O processing using a plurality of microprocessors |
US8825964B1 (en) | 2011-09-26 | 2014-09-02 | Emc Corporation | Adaptive integration of cloud data services with a data storage system |
US8683548B1 (en) | 2011-09-30 | 2014-03-25 | Emc Corporation | Computing with policy engine for multiple virtual machines |
JP6044131B2 (ja) | 2012-06-25 | 2016-12-14 | 富士通株式会社 | プログラム、管理サーバおよび仮想マシン移動制御方法 |
US10318342B2 (en) | 2013-02-06 | 2019-06-11 | International Business Machines Corporation | Managing virtual clustering environments according to requirements |
-
2010
- 2010-06-22 US US13/806,031 patent/US9858068B2/en active Active
- 2010-06-22 WO PCT/US2010/039432 patent/WO2011162744A1/en active Application Filing
- 2010-06-22 EP EP10853787.9A patent/EP2585910B1/en active Active
- 2010-06-22 CN CN201080067619.4A patent/CN102959506B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1836208A (zh) * | 2003-10-23 | 2006-09-20 | 微软公司 | 计算机系统和分布式应用程序的基于模型管理 |
Also Published As
Publication number | Publication date |
---|---|
CN102959506A (zh) | 2013-03-06 |
US20130097597A1 (en) | 2013-04-18 |
EP2585910A1 (en) | 2013-05-01 |
US9858068B2 (en) | 2018-01-02 |
EP2585910B1 (en) | 2018-02-21 |
EP2585910A4 (en) | 2014-09-10 |
WO2011162744A1 (en) | 2011-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102959506B (zh) | 用于计划应用部署的方法和系统 | |
CN102947790B (zh) | 用于确定应用的部署的方法和系统 | |
Liu et al. | Multi-objective scheduling of scientific workflows in multisite clouds | |
US8667019B2 (en) | Placement goal-based database instance consolidation | |
US8219987B1 (en) | Optimized virtual machine specification for provisioning application specific runtime environment | |
Chen et al. | A systematic framework enabling automatic conflict detection and explanation in cloud service selection for enterprises | |
US20060235664A1 (en) | Model-based capacity planning | |
US9122843B2 (en) | Software license reconciliation facility | |
CN105573830B (zh) | 一种虚拟机迁移方法 | |
CN101946261A (zh) | 基于计算机的业务过程的自动化模型产生 | |
CN101946257A (zh) | 建模基于计算机的业务过程以及模拟操作 | |
EP3191948A1 (en) | Computing instance launch time | |
US10025630B2 (en) | Operating programs on a computer cluster | |
US20190347190A1 (en) | Code usage map | |
US10891298B2 (en) | Systems and methods for package component visualizations | |
US9559914B1 (en) | Computing instance placement | |
CN108829491A (zh) | 用于集成计算系统的依存性解决系统和方法 | |
WO2019212751A1 (en) | System and method for building idempotent configuration management modules for a cloud infrastructure service | |
US11150957B1 (en) | Application mapping to system resources for instance creation | |
CN110249312A (zh) | 数据集成作业转换 | |
US11429440B2 (en) | Intelligent orchestration of disaggregated applications based on class of service | |
US10469329B1 (en) | Computing service capacity management | |
JP2014021847A (ja) | リソース管理装置及びリソース管理方法及びプログラム | |
AT&T | ||
Fortuna et al. | On-premise artificial intelligence as a service for small and medium size setups |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161229 Address after: American Texas Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Applicant before: Hewlett-Packard Development Company, L.P. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |