CN102725733B - 在平台之间移植虚拟机映像 - Google Patents

在平台之间移植虚拟机映像 Download PDF

Info

Publication number
CN102725733B
CN102725733B CN201080060191.0A CN201080060191A CN102725733B CN 102725733 B CN102725733 B CN 102725733B CN 201080060191 A CN201080060191 A CN 201080060191A CN 102725733 B CN102725733 B CN 102725733B
Authority
CN
China
Prior art keywords
model
topological
source
target
cloud
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
Application number
CN201080060191.0A
Other languages
English (en)
Other versions
CN102725733A (zh
Inventor
I·波达
I·萨克哈雷维
A·米罗斯金
V·B·波诺玛雷维
Y·加波南科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102725733A publication Critical patent/CN102725733A/zh
Application granted granted Critical
Publication of CN102725733B publication Critical patent/CN102725733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Abstract

在一个实施例中,提供一种对与源平台相关联的源拓扑模型和与目标平台相关联的目标拓扑模型进行差异化的方法。这一差异化由处理器执行并且产生拓扑差异。从资产库获得工作流模型中的操作,该操作与拓扑差异相关联。资产库的至少部分存储于持久存储介质中。传输用于部署解决方案的部分的操作以用于部署。解决方案的所部署的部分包括与目标平台兼容的目标映像。

Description

在平台之间移植虚拟机映像
技术领域
本发明涉及分布式计算机系统领域。具体而言,本发明涉及一种用于在平台之间移植(port)虚拟映像的方法和系统。
背景技术
云计算是描述基于因特网的服务的术语。基于因特网的服务由服务提供商托管。服务提供商可以通过计算机网络向请求客户端提供硬件基础设施或者软件应用。请求客户端可以使用传统的基于客户端的“浏览器”软件应用来访问软件应用,而软件(指令)和数据存储于由云计算提供商维护的服务器上。
为了使服务提供商能够利用在云计算环境中运行应用,服务提供商需要能够将它们的现有应用移入云计算环境中。备选地,服务提供商可能需要从一个计算环境向另一计算环境移植它们的应用。
从一个环境向另一环境移植应用经常耗费时间并且难以做到。在从一个云提供商到另一云提供商的一个或者多个虚拟映像中的独立于移植平台的解决方案之所以困难,是因为映像格式是云计算环境支持的管理程序(hypervisor)技术特有的。另外,在客户操作系统中需要多个令人厌烦的手动配置步骤以服从云特有的管理程序要求,并且如下基础映像经常不可用,这些基础映像具有适当版本的部分安装和配置的附属软件部件等。
US0090282404公开了一种用于根据用户规范自动配置虚拟机(VM)并且在物理主机上部署VM的供应服务器(provisioningserver)。用户可以从预先配置的准备好部署的VM的列表选择,或者他可以选择他想要VM具有哪个硬件、操作系统和应用。如果所需配置可用,则供应服务器继而相应地配置VM,或者如果所需配置不可用,则它应用试探法以配置与用户的请求匹配最好的VM。该发明还包括用于监视VM和主机的状态、用于在主机之间迁移VM以及用于创建VM的网络的机制。
US7356679公开了自动捕获源计算机的硬件和软件配置的源映像(包括至少一个源盘的状态)。源计算机可以保持未预备并且无需用于有助于计算机克隆和重新配置的程序。自动分析源映像并且确定目的地计算机的硬件配置。如为了与目的地计算机兼容或者为了定制而需要的那样修改源映像,并且在可能的修改之后在目的地计算机上部署源映像。源和目的地计算机中的一个或者两个计算机可以是虚拟机。
然而,上述现有技术解决方案都未公开一种用于从一个云计算环境向另一云计算环境移植部分/完整解决方案(包括具有兼容校验/信息的一个或者多个虚拟映像)的装置。
发明内容
在一个实施例中,提供一种对与源平台相关联的源拓扑模型和与目标平台相关联的目标拓扑模型进行差异化的方法。这一差异化由处理器执行并且产生拓扑差异。从资产库获得工作流模型中的操作,该操作与拓扑差异相关联。资产库的至少部分存储于持久存储介质中。传输用于部署解决方案的部分的操作以用于部署。解决方案的所部署的部分包括与目标平台兼容的目标映像。
前文为发明内容并且因此必然包含对细节的简化、概括和省略;因而,本领域技术人员将理解,本发明内容仅为说明性而并非旨在于以任何方式限制。如仅由权利要求限定的其它方面、发明特征和优点将在下文阐述的非限制具体描述中变得清楚。
从第一方面来看,本发明提供一种由信息操纵(handling)系统实施的方法,该方法包括:对与源平台相关联的源拓扑模型和与目标平台相关联的目标拓扑模型进行差异化从而产生拓扑差异,其中差异化的至少部分由处理器执行;从资产库获得工作流模型中的操作,其中操作与拓扑差异相关联,并且其中资产库的至少部分存储于持久存储介质中;以及传输操作以用于部署解决方案的至少部分,其中解决方案的所部署的部分包括与目标平台兼容的目标虚拟映像。
优选地,本发明提供一种方法,该方法还包括:通过执行操作在目标平台部署解决方案的部分。
优选地,本发明提供一种方法,其中部署的结果包括从源平台向目标平台移植解决方案。
优选地,本发明提供一种方法,其中源平台是第一个云,并且其中所述目标平台是第二个云。
优选地,本发明提供一种方法,其中解决方案是复合解决方案,并且其中第二个云包括多个云。
优选地,本发明提供一种方法,其中源平台是专用云,并且其中目标平台是公共云。
优选地,本发明提供一种方法,该方法还包括:在元数据中搜索与目标平台相关联的至少一个基本虚拟映像元数据。
优选地,本发明提供一种方法,该方法还包括:在一个或者多个云特有的虚拟映像库中搜索元数据。
优选地,本发明提供一种方法,该方法还包括:取回搜索中使用的输入参数,其中输入参数由目标拓扑模型提供。
优选地,本发明提供一种方法,该方法还包括:响应于搜索从存储于资产库中的元数据取回一个或者多个基本虚拟映像描述。
优选地,本发明提供一种方法,其中资源平台是第一个云,并且其中目标平台是第二个云,该方法还包括:从资产库取回对应于源平台的模型单元的第一集合;从资产库取回对应于目标平台的模型单元的第二集合,其中差异化产生一个或者多个共同模型单元和一个或者多个不同模型单元;重用对应于每个共同模型单元的一个或者多个工作流步骤的第一集合;从资产库取回对应于不同模型单元中的一个或者多个模型单元的一个或者多个工作流步骤的第二集合;以及使用工作流步骤的重用的第一集合和工作流步骤的取回的第二集合来创建工作流模型。
优选地,本发明提供一种方法,该方法还包括:将拓扑差异与源拓扑模型和目标拓扑模型相关联;以及在资产库中存储拓扑差异和关联作为补丁。
优选地,本发明提供一种方法,该方法还包括:接收对于源拓扑模型而言部分共同的第二源拓扑模型和对于目标平台而言部分共同的第二目标平台;在资产库中搜索包括补丁的一个或者多个补丁,其中搜索包括相关联的源拓扑模型;响应于搜索从资产库取回补丁;以及将取回的补丁应用于第二源拓扑模型从而产生与第二目标平台相关联的第二目标拓扑模型。
优选地,本发明提供一种方法,其中解决方案是包括多个虚拟部分的复合解决方案,其中虚拟部分包括虚拟映像的模型及其组成客户OS、中间件和应用模型单元,其中向不同目标平台部署每个虚拟部分,并且其中每个目标平台对应于公共云或者专用云。
优选地,本发明提供一种方法,该方法还包括:传输包括操作的多个操作以用于部署完整解决方案。
优选地,本发明提供一种方法,其中差异化还包括:标识对应于源平台的模型单元的第一集合;标识对应于目标平台的模型单元的第二集合;比较模型单元的第一集合与模型单元的第二集合,该比较产生一个或者多个改变的模型单元的集合和一个或者多个共同模型单元的集合;从对应于共同模型单元的源拓扑模型取回自动化步骤模型的第一集合;在资产库中搜索改变的模型单元,该搜索产生对应于改变的模型单元的自动化步骤模型的第二集合;以及在工作流模型中包括自动化步骤模型的第一集合和第二集合。
优选地,本发明提供一种方法,其中差异化产生一个或者多个新单元的标识,其中在目标拓扑模型中发现而在源拓扑模型中未发现新单元,并且其中该方法还包括:在资产库中搜索新单元。
优选地,本发明提供一种方法,其中用于部署解决方案的部分的操作使解决方案的部分能够从一个云销售商向另一云销售商移植。
优选地,本发明提供一种方法,其中用于部署解决方案的部分的操作设置安全防火墙。
优选地,本发明提供一种方法,其中用于部署解决方案的部分的操作在目标平台中实例化目标虚拟映像。
优选地,本发明提供一种方法,其中源平台是在一个或者多个计算机系统的第一集合上运行的第一管理程序,其中目标平台是在一个或者多个计算机系统的第二集合上运行的第二管理程序,并且其中第一管理程序和第二管理程序是不同类型的管理程序。
优选地,本发明提供一种方法,其中源拓扑模型和目标拓扑模型各自包括元数据,该元数据描述一个或者多个软件应用部件、中间件软件应用部件和客户操作系统部件。
优选地,本发明提供一种方法,其中由源拓扑模型和目标拓扑模型所各自包括的元数据还包括一个或者多个虚拟映像部署参数,其中源拓扑模型包括对应于源云和源证书以及源服务端点的源配置参数的源拓扑模型单元,其中目标拓扑模型包括对应于目标云和目标证书以及目标服务端点的目标配置参数的目标拓扑模型单元。
优选地,本发明提供一种方法,该方法还包括:将每个源拓扑模型单元与源自动化步骤模型相关联,源自动化步骤模型具体描述用来部署相关联的源拓扑模型单元的操作中的一个或者多个操作;将每个目标拓扑模型单元与目标自动化步骤模型相关联,目标自动化步骤模型具体描述用来部署相关联的目标拓扑模型单元的操作中的一个或者多个操作;以及在工作流模型中存储每个目标自动化步骤模型。
优选地,本发明提供一种方法,其中执行用于部署解决方案的部分的操作实现多租户。
优选地,本发明提供一种方法,其中执行用于部署解决方案的部分的操作实现可变工作负荷。
从另一方面来看,本发明提供一种信息操纵系统,该系统包括:一个或者多个处理器;存储器,可由处理器中的至少一个处理器访问;持久存储介质,可由处理器中的至少一个处理器访问;网络接口,将信息操纵系统连接到计算机网络,其中网络接口可由处理器中的至少一个处理器访问;以及指令集,存储于存储器中并且由处理器中的至少一个处理器执行以便执行以下动作:对与源平台相关联的源拓扑模型和与目标平台相关联的目标拓扑模型进行差异化从而产生拓扑差异;从资产库获得工作流模型中的操作,其中操作与拓扑差异相关联,并且其中资产库的至少部分存储于持久存储介质中;以及传输操作以用于部署解决方案的至少部分,其中解决方案的所部署的部分包括与目标平台兼容的目标虚拟映像。
优选地,本发明提供一种信息操纵系统,其中动作还包括:通过执行操作在目标平台部署解决方案的部分。
优选地,本发明提供一种信息操纵系统,其中源平台是第一个云,并且其中目标平台是第二个云。
优选地,本发明提供一种信息操纵系统,其中动作还包括:在元数据中搜索与目标平台相关联的至少一个基本虚拟映像元数据。
优选地,本发明提供一种信息操纵系统,其中动作还包括:响应于搜索从存储于资产库中的元数据取回一个或者多个基本虚拟映像描述。
优选地,本发明提供一种信息操纵系统,其中源平台是第一个云,其中目标平台是第二个云,并且其中动作还包括:从资产库取回对应于源平台的模型单元的第一集合;从资产库取回对应于目标平台的模型单元的第二集合,其中差异化产生一个或者多个共同模型单元和一个或者多个不同模型单元;重用对应于每个共同模型单元的一个或者多个工作流步骤的第一集合;从资产库取回对应于不同模型单元中的一个或者多个模型单元的一个或者多个工作流步骤的第二集合;以及使用工作流步骤的重用的第一集合和工作流步骤的取回的第二集合来创建工作流模型。
优选地,本发明提供一种信息操纵系统,其中动作还包括:将拓扑差异与源拓扑模型和目标拓扑模型相关联;以及在资产库中存储拓扑差异和关联作为补丁。
优选地,本发明提供一种信息操纵系统,其中动作还包括:接收对于源拓扑模型而言部分共同的第二源拓扑模型和对于目标平台而言部分共同的第二目标平台;在资产库中搜索包括补丁的一个或者多个补丁,其中搜索包括相关联的源拓扑模型;响应于搜索从资产库取回补丁;以及将取回的补丁应用于第二源拓扑模型从而产生与第二目标平台相关联的第二目标拓扑模型。
优选地,本发明提供一种信息操纵系统,其中动作还包括:标识对应于源平台的模型单元的第一集合;标识对应于目标平台的模型单元的第二集合;比较模型单元的第一集合与模型单元的第二集合,该比较产生一个或者多个改变的模型单元的集合和一个或者多个共同模型单元的集合;从对应于共同模型单元的源拓扑模型取回自动化步骤模型的第一集合;在资产库中搜索改变的模型单元,该搜索产生对应于改变的模型单元的自动化步骤模型的第二集合;以及在工作流中包括自动化步骤模型的第一集合和第二集合。
优选地,本发明提供一种信息操纵系统,其中差异化产生一个或者多个新单元的标识,其中在目标拓扑模型中发现而在源拓扑模型中未发现新单元,并且其中动作还包括:在资产库中搜索新单元。
优选地,本发明提供一种信息操纵系统,其中源平台是在一个或者多个计算机系统的第一集合上运行的第一管理程序,其中目标平台是在一个或者多个计算机系统的第二集合上运行的第二管理程序,并且其中第一管理程序和第二管理程序是不同类型的管理程序。
优选地,本发明提供一种信息操纵系统,其中源拓扑模型和目标拓扑模型各自包括元数据,元数据描述一个或者多个软件应用部件、中间件软件应用部件和客户操作系统部件。
优选地,本发明提供一种信息操纵系统,其中由源拓扑模型和目标拓扑模型所各自包括的元数据还包括一个或者多个虚拟映像部署参数,其中源拓扑模型包括对应于源云和源证书以及源服务端点的源配置参数的源拓扑模型单元,其中目标拓扑模型包括对应于目标云和目标证书以及目标服务端点的目标配置参数的目标拓扑模型单元。
优选地,本发明提供一种信息操纵系统,其中动作还包括:将每个源拓扑模型单元与源自动化步骤模型相关联,源自动化步骤模型具体描述用来部署相关联的源拓扑模型单元的操作中的一个或者多个操作;将每个目标拓扑模型单元与目标自动化步骤模型相关联,目标自动化步骤模型具体描述用来部署相关联的目标拓扑模型单元的操作中的一个或者多个操作;以及在工作流模型中存储每个目标自动化步骤模型。
从另一方面来看,本发明提供一种由信息操纵系统实施的方法,该方法包括:获得将向目标平台部署的拓扑模型单元;在存储于持久存储介质中的资产库中存储的多个自动化步骤模型中搜索与接收的拓扑模型单元相关联的所选自动化步骤模型,该搜索由一个或者多个处理器执行;从资产库获得一个或者多个部署操作,其中获得的部署操作与所选自动化步骤模型相关联;以及执行获得的部署操作以便向目标平台部署拓扑模型单元。
优选地,本发明提供一种方法,其中搜索还包括:从多个自动化步骤模型标识自动化步骤模型的集合,其中该自动化步骤模型的集合中的每个自动化步骤模型与拓扑模型单元相关联。并且比较该标识的自动化步骤模型的集合与标准的集合,其中该比较造成标识所选自动化步骤模型。
优选地,本发明提供一种由信息操纵系统实施的方法,该方法包括:使用处理器从持久存储介质取回源映像元数据,其中源映像元数据对应于与源平台相关联的源映像;由处理器比较取回的源映像元数据与一个或者多个可用映像元数据,该一个或者多个可用映像元数据对应于与目标平台相关联的一个或者多个可用虚拟映像;基于比较来标识与源映像元数据最兼容的可用映像元数据之一;以及使用对应于所标识的可用映像元数据的可用虚拟映像作为与目标平台兼容的目标虚拟映像。
优选地,本发明提供一种方法,其中源映像元数据与源拓扑模型相关联,并且目标平台与目标拓扑模型相关联。
优选地,本发明提供一种方法,其中源映像元数据和可用映像元数据包括软件部件元数据。
优选地,本发明提供一种方法,该方法还包括:在使用之前增强可用虚拟映像。
优选地,本发明提供一种方法,其中增强还包括:更新可用虚拟映像中包括的一个或者多个软件部件。
优选地,本发明提供一种方法,其中更新包括添加软件部件之一。
从另一方面来看,本发明提供一种方法,该方法包括:获得与拓扑差异相关联的操作,其中拓扑差异是与源平台相关联的源拓扑模型和与目标平台相关联的目标拓扑模型之间的差异;以及通过执行所获得的操作来部署解决方案的至少部分,其中解决方案的所部署的部分包括与目标平台兼容的目标映像。
优选地,本发明提供一种方法,其中源平台是第一个云,其中目标平台是第二个云,并且其中部署解决方案的至少部分包括:从第一个云向第二个云移植解决方案的至少部分。
优选地,本发明提供一种方法,其中源平台是专用云,其中目标平台是公共云,并且其中部署解决方案的至少部分包括:从专用云向公共云部署解决方案。
附图说明
现在将参照以下附图仅通过示例描述本发明的实施例:
图1是根据本发明的优选实施例的信息操纵系统的实施例的框图,该系统充当云计算环境中的节点并且在该系统中也可以实施这里描述的方法;
图2是根据本发明的优选实施例的图1中所示的信息操纵系统环境的扩展的实施例,该扩展用于例示可以在联网环境中操作的广泛多种信息操纵系统上执行这里描述的方法;
图3是描绘根据本发明的优选实施例的云计算环境的实施例的图;
图4是描绘根据本发明的优选实施例的由云计算环境提供的功能抽象层的集合的实施例的图;
图5是根据本发明的优选实施例的用来从源向目标平台移植解决方案的存储于资产库中的源和目标拓扑模型以及自动化步骤模型的实施例的图;
图6是示出了根据本发明的优选实施例的如下步骤的流程图,采取这些步骤以利用拓扑模型单元以发现源拓扑模型与目标拓扑模型之间的共性和差异以便生成部署工作流;
图7是示出了根据本发明的优选实施例的自动化步骤模型的实施例的图,这些自动化步骤模型用来创建向云环境部署的示例部署工作流;
图8是示出了根据本发明的优选实施例的为了创建拓扑模型而采取的步骤的流程图;
图9是示出了根据本发明的优选实施例的为了创建自动化步骤模型而采取的步骤的流程图;
图10是示出了根据本发明的优选实施例的为了指定输入参数并且在拓扑模型中存储而采取的步骤的流程图;
图11是示出了根据本发明的优选实施例的为了完全指定和部署基于云的应用的运行实例而采取的步骤的流程图;
图12是示出了根据本发明的优选实施例的为了重用资产库中存储的资产并且使用所重用的资产向目标云环境部署解决方案而采取的步骤的流程图;
图13是示出了根据本发明的优选实施例的为了发现与请求匹配的现有拓扑单元、替换云特有的模型单元并且在资产库中存储新的和改变的模型单元而采取的步骤的流程图;
图14是示出了根据本发明的优选实施例的为了生成部署工作流模型而采取的步骤的流程图;
图15是示出了根据本发明的优选实施例的为了根据模型生成部署工作流并且使用部署引擎来部署而采取的步骤的流程图;并且
图16是示出了根据本发明的优选实施例的为了根据模型生成部署工作流并且向多个基于云的环境部署复合解决方案而采取的步骤的流程图。
具体实施方式
为了便利,具体实施方式具有以下章节:第1节:云计算定义;以及第2节:具体实现。
第1节:云计算定义
以下定义中的许多定义已经取自于Peter Mell和Tim Grance的、日期注为2009年10月7日的“Draft NIST Working Definition ofCloud Computing”。
云计算是如下模型,该模型用于实现对如下可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的便利、随需网络访问,可以用最少的管理工作或者服务提供商交互迅速供应和释放这些资源。这一云模型促进可用性并且包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
随需自服务:消费者可以如需要的那样自动单方面供应计算能力(诸如服务器时间和网络存储)而无需与每个服务提供商的人类交互。
广泛网络接入:能力跨网络可用并且通过如下标准机制来访问,这些机制促进由异构瘦或者胖客户端平台(例如,移动电话、膝上型计算机和PDA)使用。
资源联合:联合提供商的计算资源以使用多租户模型来服务于多个消费者,并且根据消费者需求动态分配和重新分配不同物理和虚拟资源。存在位置独立意义,因为客户一般对所提供的资源的确切位置没有控制或者了解、但是可以能够在更高抽象水平(例如,国家、州或者数据中心)指定位置。资源的示例包括存储、处理、存储器、网络带宽和虚拟机。
迅速弹性:可以迅速和弹性(在一些情况下自动)地供应能力以快速扩张以及迅速释放能力以快速收缩。对于消费者,可用于供应的能力经常显得无限并且可以在任何时间以任何数量来购买。
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活跃用户账户)的某一抽象水平利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用从而为所利用的服务的提供商和消费者二者提供透明性。
服务模型如下:
云软件即服务(SaaS):向消费者提供的能力是使用提供商的在云基础结构上运行的应用。应用是通过瘦客户端接口(诸如web浏览器(例如,基于web的电子邮件)从各种客户端设备可访问的。消费者不管理或者控制包括网络、服务器、操作系统、存储乃至个别应用能力的下层云基础结构,而以有限的用户特有的应用配置设置为可能的例外。
云平台即服务(PaaS):向消费者提供的能力是向云基础结构上部署使用由提供商支持的编程语言和工具而创建的由消费者创建或者取得的应用。消费者不管理或者控制包括网络、服务器、操作系统或者存储的下层云基础结构,但是对部署的应用和可能的应用托管环境配置具有控制。
云基础结构即服务(IaaS):向消费者提供的能力是供应处理、存储、网络和其它基本计算资源,其中消费者能够部署和运行可以包括操作系统和应用的任意软件。消费者不管理或者控制下层云基础结构,但是对操作系统、存储、部署的应用具有控制以及对所选网络部件(例如,主机防火墙)具有可能的有限控制。
部署模型如下:
专用云:仅为组织操作云基础结构。它可以由组织或者第三方管理并且可以存在于驻地上或者驻地外。它在适当位置具有安全机制。可以在适当位置的安全机制的示例是防火墙。可以在适当位置的安全机制的另一示例是虚拟专用网络(VPN)。
团体云:云基础结构由若干组织共享并且支持具有共享关注(例如,使命、安全要求、策略和顺应考虑)的具体团体。它可以由组织或者第三方管理并且可以存在于驻地上或者驻地外。
公共云:使云基础结构可用于一般公众或者大型工业群体并且由销售云服务的组织拥有。
混合云:云基础结构是两个或者多个云(专用、团体或者公共)的复合,这些云保持唯一实体、但是由实现数据和应用可移植性的标准化或者专有技术(例如,用于在云之间的负荷平衡的云爆发(burst))绑定在一起。
云计算环境面向服务而以无状态、低耦合、模块性和语义可互操作性为焦点。
虚拟映像代表文件系统中的虚拟机并且可以包括如为了将它作为虚拟机运行而必需的配置参数。虚拟机可以由称为管理程序的软件部件执行,该软件部件可以位于物理机器中并且可以补充物理机器的操作系统。虚拟映像也可以称为机器映像或者虚拟机映像。
虚拟机是如同物理机器一样执行程序的机器的软件实现。
“映像”是计算机系统和在计算机系统上运行的软件的状态。在管理程序系统中,映像可以是“虚拟映像”,因为管理程序控制对计算机系统硬件的访问,并且从客户操作系统或者分区的观点来看,当事实上管理程序实际上控制对计算机硬件部件的访问并且管理计算机硬件资源在多个分区(例如,客户操作系统等)之间的共享时,好像客户操作系统/分区控制整个计算机系统一样。
第2节:具体实施
如本领域技术人员将理解的那样,具体实现可以体现为系统、方法或者计算机程序产品。因而,实施例可以采用全硬件实施例、全软件实施例(包括固件、常驻软件、微代码等)或者组合软件与硬件方面的实施例这样的形式,这些实施例在这里都可以通称为“电路”、“模块”或者“系统”。另外,实施例可以采用在一个或者多个计算机可读介质中体现的计算机程序产品这一形式,该计算机可读介质具有体现于其上的计算机可读程序代码。
可以利用一个或者多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以例如是但不限于电子、磁、光学、电磁、红外线或者半导体系统、装置或者设备或者前述各项的任何适当组合。计算机可读存储介质的更多具体示例(非穷举列表)将包括以下示例:具有一个或者多个接线的电连接、便携计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或者前述各项的任何适当组合。在本文献的上下文中,计算机可读存储介质可以是任何有形介质,该介质可以包含或者存储用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。
计算机可读信号介质可以包括例如在基带中或者作为载波的部分的传播的数据信号,该信号具有体现于其中的计算机可读程序代码。这样的传播的信号可以采用多种形式(包括但不限于电磁、光学或者其任何适当组合)中的任何形式。计算机可读信号介质可以是任何计算机可读介质,该计算机可读介质并非计算机可读存储介质并且可以传送、传播或者运送用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。
可以使用适当介质(包括但不限于无线、有线、光纤线缆、RF等或者前述各项的任何适当组合)来传输计算机可读介质上体现的程序代码。
可以用一种或者多种编程语言(包括诸如Java、Smalltalk、C++等面向对象编程语言和诸如“C”编程语言或者相似编程语言之类的常规过程编程语言)的任何组合来编写用于实现操作的计算机程序代码。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立软件包、部分在用户的计算机上并且部分在远程计算机上或者完全在远程计算机或者服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或者广域网(WAN))连接到用户的计算机,或者可以进行与外部计算机的连接(例如,通过使用因特网服务提供商的因特网)。
下文参照方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述实施例。将理解,流程图图示和/或框图的每个块以及在流程图图示和/或框图中的块组合可以由计算机程序指令实施。可以向通用计算机、专用计算机或者其它可编程数据处理装置的处理器提供这些计算机程序指令以产生机器,从而使得经由计算机或者其它可编程数据处理装置的处理器执行的指令创建用于实施在流程图和/或框图的一个或者多个块中指定的功能/动作的装置。
这些计算机程序指令也可以存储于计算机可读介质中,该介质可以指引计算机、其它可编程数据处理装置或者其它设备以特定方式工作,从而使得存储于计算机可读介质中的指令产生包括如下指令的制造品,这些指令实施在流程图和/或框图的一个或者多个块中指定的功能/动作。
也可以向计算机、其它可编程数据处理装置或者其它设备上加载计算机程序指令(功能描述材料)以使系列操作步骤在计算机、其它可编程装置或者其它设备上执行以产生计算机实施的过程,从而使得在计算机或者其它可编程装置上执行的指令提供用于实施在流程图和/或框图的一个或者多个块中指定的功能/动作的过程。
在以下描述和附图中阐述某些具体细节以提供对各种实施例的透彻理解。然而,在以下公开内容中未阐述经常与计算和软件技术相关联的某些公知细节以免不必要地模糊各种实施例。另外,相关领域普通技术人员将理解他们未用下文描述的细节中的一个或者多个细节也可以实践其它实施例。最后,尽管在以下公开内容中参照步骤和序列描述各种方法,但是这样的描述是用于提供对实施例的清楚实现,并且步骤和步骤序列不应解释为是为了实践实施例而必需的。下文代之以旨在于提供对一个或者多个实施例的具体描述而不应解释为限制,任何数目的变化代之以可以落入由具体实施方式后的权利要求限定的范围内。
以下具体实施方式将一般遵循如上文阐述的发明内容从而如必需的那样进一步说明和展开各种方面和实施例的定义。为此,这一具体实施方式先阐述图1中的计算环境的示例,该计算环境适合实施与实施例相关联的软件和/或硬件技术。在图2中图示了联网环境的实施例作为基本计算环境的扩展,以强调可以跨多个分立设备执行的那些现代计算技术。
现在参照图1,其示出了可以充当云计算节点的信息操纵系统的实施例的示意图。云计算节点10仅为适当云计算节点的一个示例而并非旨在于暗示关于这里描述的使用或者功能范围的任何限制。无论如何,云计算节点10能够实施和/或执行在上述章节1中阐述的功能中的任何功能。
在云计算节点10中存在可与许多其它通用或者专用计算系统环境或者配置一起操作的计算机系统/服务器12。可以适合与计算机系统/服务器12一起使用的公知计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或者膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型计算机系统、主机计算机系统和包括任何上述系统或者设备的分布式云计算环境等。
可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述计算机系统/服务器12。一般而言,程序模块包括执行特定任务或者实施特定抽象数据类型的例程、程序、对象、部件、逻辑、数据结构等。可以在分布式云计算环境(其中任务由通过通信网络链接的远程处理设备执行)中实践计算机系统/服务器12。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。
如图1中所示,以通用计算设备的形式示出了云计算节点10中的计算机系统/服务器12。计算机系统/服务器12的部件可以包括但不限于一个或者多个处理器或者处理单元16、系统存储器28和将包括系统存储器28的各种系统部件耦合到处理器16的总线18。
总线18代表任何若干总线结构类型(包括存储器总线或者存储器控制器、外围总线、加速图形端口和使用多种总线架构中的任何总线架构的处理器或者本地总线)中的一个或者多个总线结构类型。举例而言而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围部件互连(PCI)总线。
计算机系统/服务器12通常包括多种计算机系统可读介质。这样的介质可以是计算机系统/服务器12可访问的任何可用介质,并且它包括易失性和非易失性介质、可拆卸和非可拆卸介质。
系统存储器28可以包括采取易失性存储器形式的计算机系统可读介质(诸如随机存取存储器(RAM)30和/或高速缓存存储器32)。计算机系统/服务器12还可以包括其它可拆卸/非可拆卸、易失性/非易失性计算机系统存储介质。仅举例而言,可以提供硬盘驱动器34以用于从非可拆卸、非易失性磁介质(未示出并且通常称为“硬盘”)读取和向该磁介质写入。虽然未示出,但是可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)读取和向该磁盘写入的磁盘驱动器以及用于从可拆卸、非易失性光盘(诸如CD-ROM、DVD-ROM或者其它光学介质)读取或者向该光盘写入的光盘驱动器。在这样的实例中,各自可以由一个或者多个数据介质接口连接到总线18。如下文将进一步描绘和描述的那样,存储器28可以包括具有如下一组(或者至少一个)程序模块的至少一个程序产品,该程序模块被配置成实现这里描述的功能。
具有一组(至少一个)程序模块42的程序/工具40以及操作系统、一个或者多个应用程序、其它程序模块和程序数据可以例如而不限于存储于存储器28中。操作系统、一个或者多个应用程序、其它程序模块和程序数据中的每项或者其某一组合可以包括联网环境的实现。程序模块42一般实现如这里描述的功能和/或方法。
计算机系统/服务器12也可以与诸如键盘、指点设备、显示器24等一个或者多个外部设备14通信;与让用户能够与计算机系统/服务器12交互的一个或者多个设备通信;和/或与任何如下设备(例如,网卡、调制解调器等)通信,该设备使计算机系统/服务器12能够与一个或者多个其它计算设备通信。这样的通信可以经由I/O接口22发生。另外,计算机系统/服务器12可以经由网络适配器20来与一个或者多个网络(诸如局域网(LAN)、一般广域网(WAN)和/或公共网络(例如,因特网))通信。如描绘的那样,网络适配器20经由总线18与计算机系统/服务器12的其它部件通信。应当理解,虽然未示出,但是其它硬件和/或软件部件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
图2提供根据一个实施例的图1中所示的信息操纵系统环境的扩展,该扩展用于例示可以在联网环境中操作的广泛多种信息操纵系统上执行这里描述的方法。信息操纵系统类型的范围从小型手持设备(诸如手持计算机/移动电话210)到大型主机系统(诸如主机计算机270)。手持计算机210的示例包括个人数字助理(PDA)。个人娱乐设备(诸如MP3播放器、便携电视和光盘播放器)。信息操纵系统的其它示例包括笔或者写字板、计算机220、膝上型或者笔记本计算机230、工作站240、个人计算机系统250和服务器260。图2中未个别示出的其它信息操纵系统类型由信息操纵系统280代表。如图所示,各种信息操纵系统可以使用计算机网络200来联网在一起。可以用来互连各种信息操纵系统的计算机网络类型包括局域网(LAN)、无线局域网(WLAN)、因特网、公共交换电话网(PSTN)、其它无线网络和可以用来互连信息操纵系统的任何其它网络拓扑。许多信息操纵系统包括非易失性数据存储库(诸如硬盘驱动器和/或非易失性存储器)。图2中所示的信息操纵系统中的一些信息操纵系统描绘单独非易失性数据存储库(服务器260利用非易失性数据存储库265,主机计算机270利用非易失性数据存储库275,并且信息操纵系统280利用非易失性数据存储库285)。非易失性数据存储库可以是各种信息操纵系统外部的部件或者可以在信息操纵系统之一内部。此外。可以使用各种技术(诸如将可拆卸非易失性存储设备145连接到信息操纵系统的USB端口或者其它连接器)在两个或者更多信息操纵系统之间共享可拆卸非易失性存储设备145。此外,计算机网络200可以用来将各种信息操纵系统连接到包括云计算环境205和任何数目的其它云计算环境的云计算环境201。如图3和图4中所示,云计算环境300包括一起工作以提供云计算环境的多个联网信息操纵系统(节点)。云计算环境201各自提供图4中所示的抽象层。抽象层包括硬件和软件层400、虚拟化层410、管理层420和工作负荷层430。在各种层400-430内的部件可以从一个云计算环境到另一云计算环境变化。在图4中示出了在各种层内发现的部件的示例。
现在参照图3,描绘了例示性云计算环境201。如图所示,云计算环境201包括计算设备(诸如例如个人数字助理(PDA)或者蜂窝电话210、台式计算机250、膝上型计算机290、汽车计算机系统230)与之通信的一个或者多个云计算节点10以及图2中所示的其它类型的客户端设备。这允许从云计算环境201提供基础结构、平台和/或软件作为(如上文在章节1中描述的)服务以便无需每个客户端单独维护这样的资源。理解图2和图3中所示的计算设备类型旨在于仅是例示性的,并且云计算环境201可以通过任何类型的网络和/或网络/可寻址连接(例如,使用web浏览器)来与任何类型的计算机化设备通信。
如本发明人这里已经认识到的那样,用于不同云(或者管理程序)的源和目的地虚拟映像可以具有客户OS和/或中间件的不兼容硬件架构、高级程序技术、类型和/或版本。在虚拟映像中的盘分区可以是云(或者管理程序)提供商特有的。直接复制具有少量定制的内容可能不工作。例如,Amazon EC2支持用于x86硬件的XEN虚拟映像,而具有p系列服务器的IMB云可能仅支持System p映像。
本发明人这里也已经认识到在一些情形中由于API差异而不能向移植的解决方案添加云(或者管理程序)特有的配置(诸如防火墙和块存储卷)。例如,Amazon EC2提供用于将块存储卷附着到运行实例的配置选项,但是基于VMware的专用云可以未提供该选项。
发明人这里也已经认识到包括多个虚拟映像的解决方案可能需要仅部分移植到不同云(或者管理程序)。例如,在虚拟映像中利用商业逻辑层而在另一虚拟映像中利用数据库层的解决方案可以由于数据隐私问题而仅需向公共云移植商业逻辑层虚拟映像并且数据库层虚拟映像保留于专用云中。然而,发明人已经认识到在一些情形中可能希望向不同云(或者管理程序)移植整个解决方案。
发明人这里也已经认识到可能希望在向不同云(或者管理程序)移植时在供应工作流中标识和/或可视化改变、添加和/或删除的解决方案部件/配置以及改变、添加和/或删除的对应部署操作。发明人也已经认识到可能希望在用于源模型的补丁中存储这些改变、添加和/或删除。例如,从基于VMware的专用云向Amazon EC2移植WebSphere应用需要从基本VMware映像改变成具有WebSphere和用于部署Amazon机器映像(AMI)而不是VMware映像的改变的操作的基本AMI。
如本领域技术人员也已经认识到的那样,可能希望向多个云供应解决方案。例如,Amazon EC2和IBM Development at Test Cloud二者提供用于实例化映像并且安全地远程连接到运行虚拟机而且远程执行解决方案供应任务的API。
现在参照图4,示出了由云计算环境201(图3)提供的一组功能抽象层400的一个实施例。应当预先理解图4中所示的部件、层和功能旨在于仅是例示性的并且实施例不限于此。如图所示,提供以下层和对应功能:
硬件和软件层410包括硬件和软件部件。硬件部件的示例包括主机(在一个示例中为 系统);基于RISC(精简指令集计算机)架构的服务器(在一个示例中为IBM系统;IBM系统;IBM系统);存储设备;网络和联网部件。软件部件的示例包括网络应用服务器软件(在一个示例中为IBM应用服务器软件);以及数据软件(在一个示例中为IBM数据库软件)。(IBM、zSeries、pSeries、xSeries、BaldeCenter、WebSphere和DB2是国际商业机器公司在美国、其它国家或者二者的商标。)
虚拟化层420提供如下抽象层,可以从该层提供以下虚拟实体:虚拟服务器;虚拟存储;虚拟网络(包括虚拟专用网络);虚拟应用;以及虚拟客户端。
管理层430提供下文描述的功能。资源供应提供动态采办用来在云计算环境内执行任务的计算资源和其它资源。计量和定价提供在云计算环境内利用资源时的成本跟踪以及针对这些资源的消费的开账单或者开发票。在一个示例中,这些资源可以包括应用软件许可。安全性提供针对用户和任务二者的标识验证以及针对数据和其它资源的保护。用户门户为用户和系统管理员二者提供对云计算环境的访问。服务水平管理提供云计算资源分配和管理,从而使得满足必需的服务水平。服务水平协议规划和实现提供对根据SLA预期将来需要的云计算资源的预先安排和采办。
工作负荷层440提供云计算环境被用于的功能。可以从这一层提供的工作负荷和功能的示例包括:映射和导航;软件开发和生命周期管理;虚拟教室教育递送;数据分析处理;以及事务处理;如上文提到的那样,关于图4描述的所有前述示例仅为例示性的并且不限于这些示例。
图5是用来从源向目标平台移植解决方案的存储于资产库中的源和目标拓扑模型以及自动化步骤模型的实施例的图。在一个实施例中,“解决方案”是用来满足某些功能和非功能要求的包括一个或者多个软件应用的软件解决方案,该软件应用由一个或者多个基于硬件的计算机系统执行。软件解决方案包括一个或者多个软件应用及其有关配置参数。在一个实施例中,解决方案是“交钥匙(turn-key)”解决方案和“一站式(one-stop)”方式。解决方案可以包括多个应用并且可以包括隶属于应用的配置信息。解决方案可以在性质上为复合,因为它可以包括多个虚拟映像。解决方案的部分可以在一个虚拟映像中,并且解决方案的另一部分可以在另一虚拟映像中。使用资产库500作为用于拓扑和自动化数据的仓库。拓扑数据描述基于云的解决方案的部件及其关系。资产库500用来存储用于任何数目的拓扑模型510的数据。在一个实施例中,资产库500存储于从计算机系统可访问的持久存储介质(诸如非易失性存储设备)中。每个拓扑模型510描述在基于云的解决方案中使用的数据。当先向特定云环境(“目标云”)部署基于云的解决方案(“目标云拓扑”)时,可以搜索资产库500中存储的资产以便标识资产库中已经存储的拓扑(“源云拓扑”),该源云拓扑可以用来通过重用各种源云拓扑模型单元来开发目标云拓扑。在一个实施例中,这发生于从源云(例如,由第一云提供商提供的云)向目标云(例如,由第二云提供商提供的云)移植解决方案时。
源平台的一个实施例将是其中已经部署了解决方案的云(例如,Amazon EC2TM云)。目标平台的一个实施例可以是解决方案被移植到的另一个云(例如,IBM Smart Business Development and TestCloud)。源平台的一个实施例可以是管理程序(例如,VMware管理程序),并且对应的目标平台的一个实施例可以是另一管理程序(例如,KVM管理程序)。源平台的一个实施例可以是具有盘分区的物理计算机系统(例如,IBM pSeries服务器),并且对应的目标平台的一个实施例可以是另一物理计算机系统(例如,SunMicrosystems服务器)。此外,平台可以被混合和匹配。例如,源平台的一个实施例可以是管理程序,并且对应的目标平台的一个实施例可以是云。
尽管对应于许多拓扑模型的模型单元可以存储于资产库500中,但是在图5中示出了两个——源云拓扑模型单元520和目标云拓扑模型单元560。源云拓扑模型和目标云拓扑模型包括各种模型单元(诸如元数据(分别为522和562)、证书和服务端点数据(分别为524和564)以及配置参数(分别为526和566))。模型单元可以用来代表应用、中间件、客户操作系统、虚拟映像、配置参数和其它解决方案部件。每个模型单元可以包括元数据(诸如虚拟映像类型、id、配置参数、软件版本、访问证书、防火墙规则等)。用于相应拓扑模型的元数据包括多个元数据项(诸如虚拟映像部署参数、关于拓扑中包括的软件的元数据、关于拓扑中包括的中间件的元数据和关于拓扑中包括的客户操作系统的元数据)。
如图所示,自动化步骤模型515也存储于资产库500中并且与拓扑模型单元相关联。顾名思义,自动化步骤模型描述用来部署拓扑中包括的各种拓扑模型单元的自动化步骤。源云自动化步骤模型530包括用来部署源云拓扑模型单元520的自动化步骤,而目标云自动化步骤模型570包括用来部署目标云拓扑模型单元560的自动化步骤。当开发目标云拓扑模型单元560和目标云自动化步骤模型570时,将源云拓扑模型单元520与目标云拓扑模型单元之间的差异与存在于目标拓扑中但是不存在于源拓扑中的新模型单元一起标识。
此外,差异包括存在于源拓扑中但是不存在于目标拓扑中的去除的模型单元。搜索资产库500以便发现用于目标拓扑模型中标识的不同的和新的模型单元的自动化步骤模型。差异可以存储于资产库500中以作为补丁并且可以应用于相似源拓扑模型以创建目标拓扑模型。一个或者多个处理器可以用来在与源平台(例如,源云、源管理程序等)相关联的源拓扑模型和与目标平台(例如,目标云、目标管理程序等)相关联的目标拓扑之间执行差异化。拓扑模型包括拓扑模型单元。
拓扑模型单元可以包括单元参数或者属性并且也可以包括类型。类型可以例如是虚拟映像、中间件、操作系统、防火墙或者本领域中已知的任何其它类型。管理程序是可以在操作系统以上运行的软件。管理程序可以在操作系统以下运行。管理程序可以允许不同操作系统或者单个操作系统的不同实例同时在系统上运行。换言之,管理程序可以允许主机系统托管多个客户机器。这一差异化产生包括新的、改变的和去除的模型单元的拓扑差异。拓扑差异可以是对应于解决方案的各种如下部件的拓扑模型单元的集合,这些部件相对于源拓扑模型在目标拓扑模型中不同。
当从源平台向目标平台移植解决方案时,可能需要改变拓扑模型单元的集合。从资产库500获得如下集合,该集合包括工作流模型(例如,存储于自动化步骤模型515中的自动化步骤模型)中的至少一个操作。工作流模型中的操作是可以执行的动作。例如,工作流模型中的操作可以用来在sMash应用服务器以上安装sMash应用。
通过另一示例,工作流模型中的操作可以用来实例化虚拟映像。每个操作与源拓扑模型和目标拓扑模型之间的拓扑差异中的模型单元之一相关联。在一个实施例中,通过使用一个或者多个处理器来执行获得的操作中的一个或者多个操作来部署完整解决方案(例如,从源拓扑向目标拓扑移植的解决方案)。在一个实施例中,通过使用一个或者多个处理器执行获得的操作中的一个或者多个操作从源拓扑向目标拓扑移植解决方案的部分。解决方案的所部署的部分包括与目标平台(例如,目标云590、目标管理程序等)兼容的目标映像。在一个实施例中,兼容性源于诸如管理程序技术、硬件架构、操作系统版本、中间件版本、在不同云中可用的API(诸如配置防火墙和VPN)等多种原因。在一个实施例中,不兼容是由于上文讨论的一个或者多个部件从源平台到目标平台不兼容的各种相同原因。
如图所示,源部署工作流575操作以向源云580部署解决方案。该部署造成在源云中加载虚拟映像582并且向运行中间件映像实例部署应用550。类似地,目标部署工作流585操作以向目标云590部署解决方案。该部署造成在目标云中加载虚拟映像592并且向运行中间件映像实例部署应用550。
注意,向源云580和目标云590二者部署共同应用550。在一个实施例中,应用550是独立于平台的应用(诸如用独立于平台的计算机语言(诸如在依赖于平台的“虚拟机”上运行的Java编程语言)编写的应用)。可以通过使用虚拟映像模型单元中的元数据和它的包含在目标拓扑模型中的单元来标识目标映像。可以使用这一元数据作为输入以在元数据中搜索目标云中的所有已知虚拟映像。所有这样的元数据可以存储于资产库中。可以标识并且向目标平台(云)部署目标映像,从而使得应用可以部署于运行目标映像的目标平台上。在一个实施例中,目标映像包括操作系统和如下中间件(例如虚拟机),该中间件提供适合应用进行操作的目标环境。以这一方式,可以向具有在目标拓扑模型中描述的相似模型单元的目标云移植和部署当前运行在源云中的并且在源拓扑模型中描述的解决方案。
图6是示出了根据一个实施例的如下步骤的流程图,采取这些步骤以利用拓扑模型单元以发现在源拓扑模型与目标拓扑模型之间的共性和差异以便生成部署工作流。
共性可以是对应于解决方案的如下各种部件的拓扑模型单元的集合,这些部件相对于源拓扑模型在目标拓扑模型中相同。共性的示例可以是在与目标平台相关联的模型单元中代表的虚拟映像类型可以与在与源平台相关联的模型单元中代表的虚拟映像类型相同。诸如当类型对于两个模型单元而言相同、但是某一其它参数(诸如例如映像标识符)当与和源拓扑模型相关联的模型单元比较时在与目标拓扑模型相关联的模型单元中不同时,共性可以在性质上为部分。诸如当两个拓扑模型单元的所有参数相同并且不存在任何不同的参数时,共性可以在性质上为全部。如果共性在性质上为全部,则当从源平台向目标平台移植解决方案时可以无需改变相关联的部署操作和解决方案部件。如果共性在性质上为部分,则这些可以视为差异或者它们可以视为完全共同。
差异可以是对应于解决方案的如下各种部件的拓扑模型单元的集合,这些部件相对于源拓扑模型在目标拓扑模型中不同。差异的示例可以是在与目标平台相关联的模型单元中代表的虚拟映像类型可以不同于在与源平台相关联的模型单元中代表的虚拟映像类型。如果存在差异,则当从源平台向目标平台移植解决方案时可能需要改变相关联的部署操作和解决方案部件。
处理始于600,在步骤610,创建并且在资产库500中存储源拓扑模型单元和拓扑模型。在步骤620,针对在步骤610中为源拓扑模型创建的一些拓扑模型单元创建自动化步骤模型并且也在资产库500中存储这些自动化模型。在步骤625,使用在步骤610和620中创建的模型(拓扑和自动化)以生成用于源云580的部署工作流628。
步骤630和640类似于步骤610和620,然而,步骤630和640涉及不同(目标)云。在步骤630,创建并且在资产库500中存储目标拓扑模型单元和拓扑模型。这些目标拓扑模型单元和拓扑模型被设计成部署在源云上部署的相同解决方案,然而,目标拓扑模型单元和拓扑模型被设计成在不同“目标”云上运行解决方案。在步骤640,针对在步骤630中为目标拓扑模型创建的一些拓扑模型单元创建自动化步骤模型并且也在资产库500中存储这些自动化模型。
在步骤650,从资产库500读取并且比较源拓扑模型和目标拓扑模型以便标识模型之间的差异。这些差异可以包括改变的、新的或者去除的单元。改变的模型单元是存在于源模型和目标模型二者中、但是具有不同参数或者子类型(例如,源拓扑子类型的虚拟映像不同于目标拓扑子类型的虚拟映像)的那些单元。参数差异可以包括中间件版本。新模型单元是不存在于源拓扑中但是向目标拓扑添加的那些单元(例如,如下拓扑模型单元等,无需该拓扑模型单元来向源云部署解决方案、但是需要该拓扑模型单元以便向目标云部署解决方案)。去除的模型单元是在源拓扑中、但是不存在于目标拓扑中的模型单元。在步骤660,在资产库500中搜索对应于标识的改变的和新的单元的自动化步骤模型。在步骤660中发现的自动化步骤是存储于资产库500中的自动化步骤模型。例如,如果标识了新的或者改变的模型单元,则存储于资产库中的如下不同拓扑可能已经存在,该拓扑对应于标识的新的或者改变的模型单元。此外,当第一次遇到模型单元时,可以针对遇到的模型单元开发并且在资产库500中存储自动化步骤模型,从而使得当步骤660操作时将发现它。
在步骤670,使用在步骤660中(为新的/改变的模型单元)标识的自动化步骤模型和用来在步骤625中生成用于源云的部署工作流的一些步骤来生成用于目标云590的部署工作流675。注意,从源工作流模型丢弃用于去除的单元的部署操作。在步骤680,部署工作流675和628由部署引擎690执行从而造成在源云580中运行解决方案的实例582并且在目标云590中运行解决方案的实例592。在一个实施例中,通过向部署引擎690传输工作流模型中包括的操作来执行部署工作流的执行。
部署引擎690可以是在670执行生成步骤的相同计算机系统上的软件进程或者可以在经由计算机网络连接的不同计算机系统上。如果使用相同计算机系统,则可以使用内部操作(例如,经由子例程调用、经由执行内嵌代码(该内嵌代码操纵部署操作)、经由外部程序调用等)来传输操作。如果使用不同计算机系统,则可以经由通过网络(诸如专用计算机网络(例如,LAN)和/或公共网络(例如,因特网、公共交换电话网络(PSTN)等))的传输向其它计算机系统传输操作。尽管示出了一个部署引擎,但是可以使用不同部署引擎。在一个实施例中,自动化步骤模型提供用于如下步骤的通用表示,这些步骤用来对各种模型单元的部署进行自动化,而生成的部署工作流(628和675)包括设计成由部署引擎690读取和处理的功能描述材料(例如,脚本等)。
图7是示出了自动化步骤模型的一个实施例的图,这些自动化步骤模型用来创建向云环境部署的示例部署工作流。拓扑模型700包括拓扑模型单元。自动化步骤模型710对应于一些拓扑模型单元。部署工作流720根据自动化步骤模型710来生成并且提供用于部署解决方案的多个操作。图7示出了包括公共目标云760和专用目标云780的混合解决方案的示例。公共目标云功能的示例将是从网络(诸如因特网)可公共访问的客户前端操作。专用目标云功能的示例将是操纵数据库和LDAP操作的后端服务器应用。
在所示示例中,部署工作流包括操作725至750。操作725向公共目标云760和专用目标云780实例化特定机器映像。这造成在公共目标云780上实例化具有客户OS 768的云机器映像。在一个实施例中,操作725也在专用目标云780上实例化云机器映像782,而在一个实施例中,云机器映像782是由多个公共目标云所利用的共同后端服务器。在专用目标云780上实例化和运行的云机器映像782包括客户操作系统784,该操作系统可以是与在公共目标云上运行的操作系统不同的操作系统。云机器映像782也可以包括数据库应用在其之下操作的数据库服务器786(例如,IBM DB2TM数据库服务器等)。云机器映像782也可以包括LDAP应用在其之下操作的LDAP(轻量级目录访问协议)服务器788。
操作730在公共目标云上实例化的映像上安装中间件应用(诸如IBMsMashTM中间件应用)。这造成应用服务器772在具有客户OS 768的云机器映像上运行。此外,操作730可以安装应用服务器上运行的独立于平台的应用774。如图所示,具有客户OS 768的云机器映像包括IP表规则和VPN配置770,并且公共目标云包括云的弹性IP地址762、云的安全组764和云的弹性块存储766。在一个云环境中,操作735运行以配置弹性IP地址,从而产生云的弹性IP地址762的配置。在这一云环境中,操作740运行以配置云的安全组764,并且操作745运行以配置云的弹性块存储766。操作750运行以配置VPN(虚拟专用网络)。操作750的结果是对在实例化的映像768中运行的IP表规则和VPN配置770的更新,该映像在公共目标云760与专用目标云780之间建立虚拟专用网络。
图8是示出了根据一个实施例的为了创建拓扑模型而采取的步骤的流程图。处理始于800,在步骤802,选择中间件单元(诸如Java虚拟机(例如,IBMsMash应用等))。中间件单元一般独立于平台。拓扑模型804包括所选中间件运行时环境810置于其中的虚拟装置806。也选择独立于平台的应用808(诸如Java应用)并且将该应用与中间件运行时环境810相关联。在步骤805,为云特有的基本虚拟映像添加拓扑模型单元。继而在虚拟装置806中包括机器映像812。在这一示例中,机器映像812包括客户操作系统814(例如,Linux操作系统等)、服务器软件816和云映像实例818。
可以在用于云的一个或者多个云特有的映像库中发现用于与该云兼容的现有虚拟映像的元数据。这样的元数据可以包括对预先安装于现有虚拟映像中的软件部件的描述。虚拟装置单元中的元数据和它的包括在目标拓扑模型中的单元可以描述用于解决方案的可以发现预先安装于云特有的基本虚拟映像中的必备软件部件。虚拟装置单元中的元数据可以用来搜索映像库中的元数据以发现用于向目标云部署解决方案的适当基本虚拟映像。如果标识为搜索结果的虚拟映像不包括所有必备软件部件或者必备软件部件的正确版本,则可以确定最接近匹配基本虚拟映像。继而可以通过添加、更新或者去除虚拟映像中的软件部件来增强这样的最接近匹配基本虚拟映像作为部署工作流的部分。
在步骤820,在一个实施例中添加云特有的配置设置822和824(诸如弹性IP地址、卷信息、安全组设置等)。在步骤826,将应用服务器(中间件运行时环境810)链接到应用单元(独立于平台的应用808)。在步骤828,操作系统特有的配置设置被添加并且与客户操作系统814相关联。这些操作系统特有的配置设置可以包括HTTP设置、网络设置、防火墙设置等。在步骤832,为如下目标云添加一个或者多个虚拟装置(外部服务单元834),该目标云托管从基于云的虚拟装置外部提供的必备应用服务(诸如数据库服务和LDAP服务)。在步骤836,在应用单元(应用808)与在步骤832中添加的必备外部服务之间配置应用通信链路。在步骤838,在不同模型单元之间指定部署顺序约束。步骤838允许对用来部署解决方案的自动化步骤的定序。在步骤840,在资产库500中存储拓扑模型804(包括所有拓扑模型单元和指定的部署顺序)。在一个实施例中,资产库500由资产管理器软件应用850管理。在预定义过程860,存储的拓扑模型和指定的部署步骤用来创建也存储于资产库850中的自动化模型(关于创建自动化模型的处理细节,见图9和对应的文字)。
图9是示出了根据一个实施例的为了创建自动化步骤模型而采取的步骤的流程图。处理创建用于向目标云部署解决方案的各种自动化步骤模型910。处理始于900,在步骤905,创建自动化步骤模型915。自动化步骤模型915包括用于在目标云中部署云特有的配置(该配置建立安全组)等的操作920。在步骤925,创建自动化步骤模型930以用于安装应用(包括用于应用服务器(中间件运行时环境)和独立于平台的软件应用的参数)。自动化步骤模型930包括用来安装独立于平台的应用(例如Java sMash应用等)的操作935和用来配置中间件运行时环境的操作940。在步骤945,创建自动化步骤模型950以用于在目标云上实例化映像。自动化步骤模型950包括用来在目标云上实例化特定映像的操作955。在步骤960,在示出为由资产管理器应用软件850管理的资产库500中存储自动化步骤模型910。在预定义过程970,提供输入参数指定并且将这些指定与目标拓扑一起存储于资产库中(关于处理细节,见图10和对应的文字)。
图10是示出了根据一个实施例的为了指定输入参数并且在拓扑模型中存储而采取的步骤的流程图。在图10中示出了图8中介绍的拓扑模型804。在图10中,处理始于1000,在步骤1010,向部件绑定部署模型单元。例如,向拓扑模型中的应用单元绑定如下资产库中的特定压缩文件资产,该资产库包含可部署的独立于平台的二进制文件。应用808包括如下性质和参数1020,这些性质和参数将例如具有配置于其中的指定压缩文件(“zip”文件)。在步骤1030,为拓扑模型单元指定配置参数中的一些但是可能并非所有配置参数。例如,可以指定HTTP端口、zip文件名和用于应用的URL。在步骤1040,在资产库500中共享部分指定的模式作为可重用资产。在预定义过程1050,完全指定并且向目标平台部署实例(关于处理细节,见图11和对应的文字)。
图11是示出了根据一个实施例的为了完全指定和部署基于云的应用的运行实例而采取的步骤的流程图。图11中所示的流程图也示出了在指定期间部署有少量配置改变的用于多租户的多个实例。处理始于1100,在步骤1105,完全指定并且在拓扑模型804中存储拓扑模型单元中的参数。一些拓扑模型单元与描述用来部署拓扑模型单元的操作的自动化步骤模型910相关联。在步骤1110,生成并且在自动化工作流模型1115中存储部署操作的有序序列。在一个实施例中,自动化工作流模型是对用来部署拓扑模型单元的操作的通用描述。在步骤1120,根据自动化工作流模型1115生成部署工作流1125。在一个实施例中,部署工作流1125是采取可以由特定部署引擎1135运行的格式的对操作的非通用描述。以这一方式,可以执行步骤1120以提供与不同部署引擎一起操作的不同部署工作流。
在步骤1130,部署引擎1135执行部署工作流1125并且创建在一个或者多个目标云1140上运行的基于云的应用的一个或者多个运行实例(实例1150和1155)。在步骤1160,观测和测试运行实例以保证基于云的解决方案恰当运行。关于是否需要改变在模型单元中指定的参数进行确定(判决1170)。如果需要改变,则判决1170转向“是”分支,在步骤1175,编辑实例的参数并且处理循环回到重新生成工作流模型、部署工作流并且由部署引擎重新执行部署工作流。这一循环继续直至无需进一步改变,于是判决1170转向“否”分支。注意,如果指定这样的参数作为可以通过用户输入在重新部署之前改变的输入参数则可以不必重新生成工作流模型。关于是否在一个目标云(或者多个目标云)中创建应用(基于云的解决方案)的多个实例进行确定。如果创建应用的多个实例,则判决1180转向“是”分支,在步骤1185,改变少数工作流参数以便创建下一实例,并且处理循环回到生成另一工作流模型和另一部署工作流,并且处理使用部署引擎来执行新部署工作流。例如,可能需要在多租户解决方案中为新租户部署新实例。在一个实施例中,多租户性是用于在多个客户端之间共享平台(例如,云、管理程序)的能力。在另一示例中,可能需要解决方案的新实例以便满足变化工作负荷中的不同性能或者安全要求。这一循环继续直至无需应用的更多实例,这时,判决1180转向“否”分支并且处理在1195结束。
图12是示出了根据一个实施例的为了重用资产库中存储的资产并且使用重用的资产向目标云环境部署解决方案而采取的步骤的流程图。处理始于1200,在步骤1210,处理接收对向特定目标云或者管理程序移植解决方案的请求。在预定义过程1220,在资产库500中发现与请求最接近的现有拓扑和拓扑模型单元。预定义过程1220包括替换云特有的模型单元并且在资产库500中存储新拓扑和新模型单元。关于预定义过程1220的处理细节,见图13和对应的文字。在步骤1230,完全指定并且在资产库500中存储目标拓扑模型中的配置参数。在预定义过程1240,在资产库500中发现对应于替换的或者添加的云特有的模型单元的自动化步骤模型。也在预定义过程1240中,在资产库500内发现对应于目标云特有的拓扑模型单元的自动化步骤模型并且在资产库500中存储自动化步骤模型。
资产步骤模型用来向目标云部署拓扑模型单元。关于预定义过程1240的处理细节,见图14和对应的文字。在预定义过程1250,基于自动化步骤模型生成部署工作流(关于处理细节,见图15和对应的文字,并且关于复合解决方案的部署的细节,见图16和对应的文字)。部署结果是源云1260(该云具有现有的基于云的解决方案的实例1265)和目标云1270(该云具有基于云的解决方案的新实例1275)。在一个实施例中,从计算机网络200(诸如因特网)可访问源云和目标云二者。因而,例如,每个实例可以诸如通过使用基于客户端的web浏览软件来提供客户端通过计算机网络可访问的基于web的应用的实例。
图13是示出了根据一个实施例的为了发现与请求匹配的现有拓扑单元、替换云特有的模型单元并且在资产库中存储新的和改变的模型单元而采取的步骤的流程图。图13由图12中所示的预定义过程1220调用。图13中所示的处理始于1300,在步骤1320,从用户1310接收针对新的基于云的解决方案的要求。在步骤1325,搜索资产库500中存储的现有拓扑模型的元数据以便发现在某一程度上与用户提供的要求匹配的现有拓扑模型。在一个实施例中,可以从资产库500取回更早计算的差异作为补丁并且可以将差异应用于现有源拓扑模型以创建目标拓扑模型。关于是否在资产库中发现与用户的要求匹配的任何现有拓扑模型进行确定(判决1330)。如果没有与用户的要求匹配的拓扑模型当前存在于资产库中,则判决1330转向“否”分支,在预定义过程1335,创建新拓扑模型(关于创建新拓扑模型的示例,例如见图8和对应的文字)。
另一方面,如果发现与用户的要求匹配的一个或者多个拓扑模型,则判决1330转向“是”分支,在步骤1340,复制资产库中发现的与用户的要求最接近匹配的现有拓扑模型。在步骤1350,在资产库中存储新拓扑模型(在预定义过程1335中创建的新创建的拓扑模型或者在步骤1340中复制的现有拓扑模型)。
关于拓扑模型单元是否需要修改进行确定(判决1360)。例如,如果在步骤1340复制了拓扑模型,那么如果复制的拓扑模型不与由用户指定的要求确切匹配,则新目标拓扑模型可能需要修改。如果一个或者多个拓扑模型单元需要修改,则判决1360转向“是”分支,在步骤1370,从目标拓扑模型取回需要修改的拓扑模型单元并且修改这些拓扑模型单元以满足用户的要求。在步骤1380,在资产库500中的拓扑目标模型中存储修改的拓扑模型单元。返回到判决1360,如果拓扑模型单元无需修改,则判决1360转向绕过步骤1370和1380的“否”分支。在步骤1390,替换用于目标云的云特有的模型单元。处理继而在1395返回到调用例程(见图12)。
图14是示出了根据一个实施例的为了生成部署工作流模型而采取的步骤的流程图。图14由图12中所示的预定义过程1240调用。图14中所示的处理始于1400,在步骤1410,标识用来在目标云上部署解决方案的第一改变的或者新的拓扑模型单元。注意,无需标识未改变的源拓扑模型单元,因为可以使用已经与未改变的拓扑模型单元相关联的自动化步骤模型。注意,如果从源拓扑模型去除了任何模型单元,则也可以从目标工作流模型去除对应的部署操作。也注意,在一个实施例中,多个拓扑模型单元可以与自动化步骤模型(ASM)相关联。如果多个拓扑模型单元与自动化步骤模型相关联,则可以关于是否所有单元存在于目标拓扑模型中进行校验。在步骤1420,在资产库500中搜索与目标云相关联的自动化步骤模型。
关于是否在资产库中发现任何匹配自动化步骤进行确定(判决1430)。如果未发现匹配自动化步骤模型,则判决1430转向“否”分支,在步骤1450,为目标云创建新自动化步骤模型。另一方面,如果发现匹配自动化步骤模型,则判决1430转向“是”分支,使用发现的自动化步骤模型。在步骤1450,将(通过搜索发现的或者在步骤1440中创建的)自动化步骤模型与标识的新的或者改变的拓扑模型单元相关联。关于是否存在更多改变的或者新的拓扑模型单元待处理进行确定(判决1460)。如果存在更多改变的或者新的拓扑模型单元待处理,则判决1460转向“是”分支,该分支循环回到如上文描述的那样标识下一改变的或者新的拓扑模型单元并且将它与自动化步骤模型相关联。注意,对于改变的模型单元,可以在搜索中使用在源云中使用的自动化步骤模型名称以便发现用于目标云的相似自动化步骤模型。这一循环继续直至无更多改变的或者新的拓扑模型单元待处理,这时,判决1460转向“否”分支。
在步骤1470,为目标云生成部署工作流模型1480。使用与标识的新的或者改变的拓扑模型单元相关联的发现或者新创建的自动化步骤模型以及已经与源拓扑模型中的未改变的拓扑模型单元相关联的自动化步骤模型来生成工作流模型以便向目标云移植解决方案。处理继而在1395返回到调用例程(见图12)。
图15是示出了根据一个实施例的为了根据模型生成部署工作流并且使用部署引擎来部署而采取的步骤的流程图。图15由图12中所示的预定义过程1250调用。图15中所示的处理始于1500,在步骤1510,从部署引擎数据存储库1515选择将用来向目标云部署解决方案的部署引擎。一些目标云可以使用特定部署引擎,而其它通用部署引擎也可以用来向目标云部署解决方案。部署引擎可以具有如下不同处理能力和特性,这些能力和特性可以使特定部署引擎对于向特定目标云部署解决方案而言有吸引力。在步骤1520,从在图14中生成的部署工作流模型1480选择第一部署操作。
每个自动化步骤可以包括多个部署操作。在工作流模型中对这些部署操作依次排序。部署操作也是部署引擎特有的。每个部署操作继而用来生成部署引擎特有步骤。步骤1520生成一个或者多个部署引擎1515特有的步骤,这些步骤能够由所选部署引擎执行。在部署工作流1530中存储生成的部署引擎特有步骤作为第一部署步骤1531、第二部署步骤1532等直至最后部署步骤1534。关于是否存在更多部署操作待处理进行确定(判决1540)。如果存在更多步骤模型待处理,则判决1540转向“是”分支,该分支循环回到如上文在步骤1520描述的那样从部署工作流模型1480选择下一自动化步骤模型并且生成部署引擎特有的步骤。这一循环继续直至无更多部署操作待处理,这时,判决1540转向“否”分支,调用所选部署引擎1550以处理部署工作流1530。部署工作流1530包括部署操作并且在调用之前向所选部署引擎1550传输。
部署引擎处理通过执行部署工作流1530中包括的第一部署步骤(步骤1531)来开始。执行第一部署步骤造成向目标平台(目标云1270)部署解决方案的部分。由部署引擎1515之一关于是否存在更多部署步骤待处理进行确定(判决1570)。如果存在更多部署步骤待处理,则判决1570转向“是”分支,该分支循环回到从部署工作流1530选择下一步骤并且执行该步骤(例如,第二部署步骤1532)从而造成向目标平台进一步部署解决方案。这一循环继续直至已经在步骤1560处理了最后部署步骤(最后部署步骤1534),这时,判决1570转向“否”分支并且处理在1595返回。执行所有部署步骤的结果是在目标平台(目标云1270)上运行的新的基于云的解决方案1275。
图16是示出了根据一个实施例的为了根据模型生成部署工作流并且向多个基于云的环境部署复合解决方案而采取的步骤的流程图。步骤与图15中示出和描述的步骤相同,然而,在图16中,部署步骤造成跨两个目标平台(第一目标云1610和第二目标云1630)部署解决方案从而产生复合解决方案1600。每个目标云托管解决方案的虚拟部分(由第一目标云1610托管的虚拟部分1620和由第二目标云1630托管的虚拟部分1640)。此外,在部署工作流1530中包括的部署步骤中的一个或者多个部署步骤在虚拟部分1620与虚拟部分1640之间建立通信链路1650。可以跨虚拟专用网络(VPN)建立通信链路1650。尽管在复合解决方案1600中示出了两个云和虚拟部分,但是可以在复合解决方案中包括任何数目的目标云和虚拟部分而在任何数目的虚拟部分之间建立通信链路。
在一个实施例中,可以使用如下模型驱动方式来重建用于目标云或者管理程序的解决方案,该方式可以避免i)复制映像内容;以及ii)按照统一盘文件格式表示虚拟映像内容。实施例可以允许在具有客户OS的不兼容硬件架构、管理程序技术、类型和版本的不同云(或者管理程序)提供商之间移植解决方案。实施例也可以允许在移植之时添加云特有(或者管理程序特有)的配置。实施例也可以允许在可以部分移植的用于混合云的复合解决方案中包括虚拟映像部分。
在一个实施例中,可以使用工具(诸如Eclipse建模框架(EMF)比较项目)在补丁中获得和/或存储产生拓扑差异的与源平台相关联的源拓扑模型和与目标平台相关联的目标拓扑模型。在一个实施例中,差异化的部分由可以从一个或者多个处理器选择的至少一个处理器执行。在一个实施例中,可以使用Eclipse以上的RationalSoftware Architect来构造和/或可视化拓扑模型单元。在一个实施例中,可以使用Eclipse以上的Rational Software Architect来构造和/或可视化自动化步骤模型。Rational Software Architect以XML格式存储模型数据。XML包括用于不同模型单元(诸如虚拟装置、中间件、虚拟映像、客户操作系统、云特有配置、应用级通信链路等)的不同分节。每个XML分节可以包括多个部署参数(诸如软件版本和类型)。可以在资产库的搜索中使用虚拟装置分节中的参数作为输入以用于发现用于目标云的兼容虚拟映像。
在一个实施例中,可以通过搜索Rational Asset Manager(其中可以存储包括部署操作的自动化步骤模型)来获得从资产库获得工作流模型中的操作。搜索可以使用用于与自动化步骤模型相关联的拓扑模型单元的元数据作为输入。在一个实施例中,可以在持久存储介质中存储资产库的部分。在一个实施例中,可以在持久存储介质中存储整个资产库(包括资产库的部分)。
在一个实施例中,执行用于部署解决方案的部分的操作,其中解决方案的所部署的部分包括与目标平台兼容的目标映像、可以使用Tivoli Provisioning Manager作为部署引擎来执行。在一个实施例中,Tivoli Provisioning Manager可以执行向不同云或者管理程序部署解决方案的不同部分的工作流。
公开了用于从源平台向目标平台移植解决方案的方法、计算机程序产品和系统的实施例。确定在源拓扑模型中的模型单元的集合与目标拓扑模型中的模型单元的集合之间的差异。源拓扑模型与源平台相关联,并且目标拓扑模型与目标平台相关联。借助工作流模型中的操作与确定的在源拓扑模型的模型单元的集合和目标拓扑模型单元的模型单元的集合之间的差异的关联从资产库获得该工作流模型的操作。传输该操作。该操作被配置成部署如下解决方案的至少部分,该解决方案包括与目标平台兼容的目标映像。这样的实施例可以用来在支持不同硬件架构、虚拟映像格式和编程接口的不同基础结构云或者管理程序之间移植解决方案。这样的实施例也可以用来在移植解决方案时重用共同解决方案部件、配置参数和部署自动化操作。
根据更多公开的实施例,源平台是硬件和软件资源的第一集合,并且目标平台是硬件和软件资源的第二集合。从硬件和软件资源的第一集合向硬件和软件资源的第二集合移植解决方案的至少部分。这样的实施例可以用来从一个云(或者管理程序或者计算机系统)向另一个云(或者管理程序或者计算机系统)移植解决方案。
根据更多公开的实施例,源平台是硬件和软件资源的专用集合。目标平台是硬件和软件资源的公共集合。这样的实施例可以用来从专用云向公共云移植解决方案。其它实施例可以用来从公共云向专用云、从专用云向专用云和/或从公共云向公共云移植解决方案。
根据更多公开的实施例,解决方案是复合解决方案。硬件和软件资源的第二集合包括硬件和软件资源的多个集合。这样的实施例可以用来向包括混合云的不同云(或者管理程序或者计算机系统)移植解决方案的不同虚拟部分。
根据更多公开的实施例,在存储于资产库中的元数据中搜索与目标平台相关联的至少一个基本映像元数据。这样的实施例可以用来发现解决方案的必备软件部件预先安装于其中的用于目标平台的可兼容基本虚拟映像。
根据更多公开的实施例,源平台是在一个或者多个计算机系统的第一集合上运行的第一管理程序。目标平台是在一个或者多个计算机系统的第二集合上运行的第二管理程序。第一管理程序和第二管理程序为不同类型的管理程序。这样的实施例可以用来从一个管理程序(或者计算机系统)向另一管理程序(或者计算机系统)移植解决方案。
根据更多公开的实施例,所确定的差异包括新模型单元、改变的模型单元或者去除的模型单元中的至少一个模型单元。这样的实施例可以用来在移植解决方案时重用共同解决方案部件、配置参数和部署自动化操作。
根据更多公开的实施例,所确定的差异还包括标识源拓扑模型中的模型单元的集合的一个或者多个属性和标识所标识的属性是否与目标拓扑中的模型单元的集合的的一个或者多个所标识的属性不兼容。所确定的差异可以包括如与目标拓扑模型相比的源拓扑模型的模型单元中的不兼容属性(包括类型)的标识。这样的实施例可以用来标识需要在移植解决方案时改变的解决方案部件、配置参数和部署自动化操作。
根据更多公开的实施例,响应于标识所标识的属性不兼容来分析模型单元的所标识的不兼容属性。修改模型单元的不兼容属性以便从源平台向目标平台移植解决方案。这样的实施例可以用来确定对用于移植解决方案的解决方案部件、配置参数和部署自动化操作的改变;并且也可以用来使模型单元中的所标识的不兼容属性与目标平台拓扑模型兼容。
根据更多公开的实施例,所标识的不兼容属性在与源拓扑模型比较时标识是否已经在目标拓扑中去除、添加或者修改了模型单元。这样的实施例可以用来标识需要在移植解决方案时改变的解决方案部件、配置参数和部署自动化操作。
根据更多公开的实施例,修改不兼容属性还包括添加新模型单元、更新模型单元或者去除模型单元以便纠正源拓扑的模型单元的集合与目标拓扑的模型单元的集合之间的所标识的不兼容。这样的实施例可以用来确定对用于移植解决方案的解决方案部件、配置参数和部署自动化操作的改变。
根据更多公开的实施例,模型单元包括如下数据,该数据标识拓扑模型的一个或者多个属性。这样的实施例可以用来确定用于向平台部署解决方案的配置和部署参数。
根据更多公开的实施例,源平台是在硬件资源和软件资源的第一集合上运行的第一管理程序。目标平台是在硬件资源和软件资源的第二集合上运行的第二管理程序。源管理程序和目标管理程序为不同类型。这样的实施例可以用来在与不同类型的管理程序兼容的虚拟映像之间移植解决方案。
提供了获得将向目标平台部署的拓扑模型单元的方法、计算机程序产品和系统的实施例。为与所接收的拓扑模型单元相关联的所选自动化步骤模型搜索资产库中存储的多个自动化步骤模型。搜索由一个或者多个处理器执行。从资产库获得一个或者多个部署操作。所获得的部署操作与所选自动化步骤模型相关联。执行所获得的部署操作以便向目标平台部署拓扑模型单元。这样的实施例可以用来构造用于向不同平台部署解决方案的新的或者改变的工作流模型。
方法、计算机程序产品和系统的实施例提供一种从持久存储介质取回源映像元数据的方式。源映像元数据对应于与源平台相关联的源映像。比较取回的源元数据与一个或者多个可用映像元数据,该可用映像元数据对应于与目标平台相关联的一个或者多个可用映像。基于比较来标识可用映像元数据中的与源映像元数据最兼容的可用映像元数据。使用对应于所标识的可用映像元数据的可用映像作为与目标平台兼容的目标映像。这样的实施例可以用来发现用于目标平台的可兼容基本虚拟映像,解决方案的必备软件部件中的多数(如果不是所有)软件部件预先安装于这些目标平台中。
理解存在各种备选实施例。例如,在一个实施例中,本发明提供一种包括计算机程序代码的计算机可读/可用介质,该计算机程序代码用于使计算机基础结构能够提供如这里讨论的功能。在这一程度上,计算机可读/可用介质包括实施各种过程中的每个过程的程序代码。理解术语计算机可读介质或者计算机可用介质包括程序代码的任何类型的物理实施例中的一个或者多个实施例。具体而言,计算机可读/可用介质可以包括体现于一个或者多个便携存储制造品(例如,光盘、磁盘、磁带等)上、计算设备的一个或者多个数据存储部分(诸如存储器28(图1)和/存储系统34(图1)(例如,固定盘、只读存储器、随机存取存储器、高速缓存存储器等))上和/或体现为(例如,在程序代码的有线/无线电子分发期间)通过网络传播的数据信号(例如,传播的信号)的程序代码。
在一个实施例中,提供一种在预订、广告和/或费用基础上执行该过程的方法。也就是说,服务提供商(诸如Solution Integrator)可以提出要提供这里描述的服务。在这一情况下,服务提供商可以创建、维护、支持等计算机基础结构(诸如为一个或者多个客户执行该过程的计算机系统12(图1))。作为回报,服务提供商可以在预订和/或费用协定之下从客户接收付款和/或服务提供商可以从向一个或者多个第三方的广告内容销售中接收付款。
在一个实施例中,提供一种用于提供这里描述的功能的计算机实施的方法。在这一情况下,可以提供计算机基础结构(诸如计算机系统12(图1)),并且可以获得(例如,创建、购买、使用、修改等)并且向计算机基础结构部署用于执行该过程的一个或者多个系统。在这一程度上,系统的部署可以包括以下操作中的一个或者多个操作:(1)从计算机可读介质向计算设备(诸如计算机系统12(图1))上安装程序代码;(2)向计算机基础结构添加一个或者多个计算设备;以及(3)并入和/或修改计算机基础结构的一个或者多个现有系统以使计算机基础结构能够执行该过程。
描述的实现方式之一是软件应用,即在可以例如在计算机的随机存取存储器中驻留的代码模块中的指令集(程序代码)或者其它计算机程序指令。功能描述材料包括“程序代码”、“计算机程序代码”、“计算机指令”以及如下指令集的按照任何语言、代码或者符号表示的任何表达,该指令集旨在于使具有信息处理能力的计算设备直接或者在以下操作中的任一个或者两个操作之后执行特定功能:(a)向另一语言、代码或者符号表示转换;和/或(b)以不同材料形式再现。在这一程度上,程序代码可以体现为以下各项中的一项或者多项:应用/软件程序、部件软件/功能库、操作系统、用于特定计算设备的基本设备系统/驱动器等。在计算机需要之前,指令集可以存储于另一计算机存储器中(例如,硬盘驱动中)或者可拆卸存储器(诸如光盘(用于最终在CDM ROM中使用)或者软盘(用于最终在软盘驱动中使用))中。因此,实施例可以实施为用于在计算机中使用的计算机程序产品。此外,虽然描述的各种方法便利地实施于由软件有选择地激活或者重新配置的通用计算机中,但是本领域普通技术人员也将认识到可以在硬件中、在固件中或者在构造成执行所需方法步骤的更专门化的装置中实现这样的方法。功能描述材料是向机器赋予功能的信息。功能描述材料包括但不限于计算机程序、指令、规则、事实、可计算功能的定义、对象和数据结构。
下文可以提供一种适合存储和/或执行程序代码的信息操纵系统(数据处理系统),并且该系统可以包括通过系统总线直接或者间接通信地耦合到存储器单元的至少一个处理器。存储器单元可以包括但不限于在实际执行程序代码期间运用的本地存储器、大容量存储和如下高速缓存存储器,这些高速缓存存储器提供对至少一些程序代码的暂时存储以便减少必须在执行期间从大容量存储取回代码的次数。一个或者多个输入/输出设备(包括但不限于键盘、显示器、指点设备等)可以直接或者通过居间设备控制器耦合到系统。
网络适配器也可以耦合到系统以使数据处理系统能够变成通过居间专用或者公共网络的任何组合耦合到其它数据处理系统、远程打印机、存储设备等。例示性网络适配器包括但不限于调制解调器、线缆调制解调器和以太网卡。
已经出于图示和描述的目的而呈现了前文描述。它并非旨在于穷举或者限制,因为显然许多修改和变化是可能的。本领域技术人员可以清楚的这样的修改和变化旨在于包含于如由所附权利要求限定的本公开内容的范围内。
尽管已经示出和描述了具体实施例,但是本领域技术人员将清楚,基于这里的教导,可以进行改变和修改而不脱离本公开内容及其更广义方面。
另外,将理解,一个或者多个实施例由所附权利要求限定。本领域技术人员将理解,如果意图为引入的权利要求要素的具体数目,则将在权利要求中将明确记载这样的意图,而当无这样的记载时,这样的限制不存在。对于非限制示例,为了辅助理解,以下所附权利要求包含使用引导短语“至少一个”和“一个或者多个”以引入权利要求要素。然而,使用这样的短语仍然不应解释为意味着由不定冠词“一个”引入权利要求使包含这样的引入权利要求要素的任何特定权利要求限于仅包含一个这样的要素的限制,即使当相同权利要求包括引导短语“一个或者多个”或者“至少一个”和不定冠词(诸如“一个”)时;这对于在权利要求中使用定冠词同样成立。

Claims (26)

1.一种用于在平台之间移植虚拟映像的方法,所述方法包括以下步骤:
对与源平台相关联的源拓扑模型和与目标平台相关联的目标拓扑模型进行差异化,其中所述源平台是第一云并且所述目标平台是第二云,所述差异化产生拓扑差异,其中所述差异化的至少部分由处理器执行,并且其中所述差异化包括:
比较对应于所述源平台的模型单元的第一集合与对应于所述目标平台的模型单元的第二集合,其中所述比较产生一个或者多个改变的模型单元和一个或者多个共同模型单元;
从对应于所述共同模型单元的所述源拓扑模型取回自动化步骤模型的第一集合;
在资产库中搜索所述改变的模型单元,所述搜索产生对应于所述改变的模型单元的自动化步骤模型的第二集合;
从所述资产库获得工作流模型中的操作,其中所述工作流模型包括所述自动化步骤模型的第一集合和所述自动化步骤模型的第二集合,并且其中所述操作与所述拓扑差异相关联,并且其中所述资产库的至少部分存储于持久存储介质中;以及
传输所述操作以用于部署解决方案的至少部分,其中所述解决方案的所部署的部分包括与所述目标平台兼容的目标虚拟映像。
2.如权利要求1所述的方法,还包括以下步骤:
通过执行所述操作在所述目标平台部署所述解决方案的所述部分。
3.如权利要求2所述的方法,其中所述部署的结果包括从所述源平台向所述目标平台移植所述解决方案。
4.如权利要求1所述的方法,还包括以下步骤:
在元数据中搜索与所述目标平台相关联的至少一个基本虚拟映像元数据。
5.如权利要求4所述的方法,还包括以下步骤:
取回所述搜索中使用的输入参数,其中所述输入参数由所述目标拓扑模型提供。
6.如权利要求4所述的方法,还包括以下步骤:
响应于所述搜索从存储于所述资产库中的所述元数据取回一个或者多个基本虚拟映像描述。
7.如权利要求1所述的方法,还包括以下步骤:
将所述拓扑差异与所述源拓扑模型和所述目标拓扑模型相关联;以及
在所述资产库中存储所述拓扑差异和所述关联作为补丁。
8.如权利要求7所述的方法,还包括以下步骤:
接收对于所述源拓扑模型而言部分共同的第二源拓扑模型和对于所述目标平台而言部分共同的第二目标平台;
在所述资产库中搜索包括所述补丁的一个或者多个补丁,其中所述搜索包括相关联的源拓扑模型;
响应于所述搜索从所述资产库取回所述补丁;以及
将取回的补丁应用于所述第二源拓扑模型从而产生与所述第二目标平台相关联的第二目标拓扑模型。
9.如权利要求1所述的方法,还包括以下步骤:
传输包括所述操作的多个操作以用于部署完整解决方案。
10.如权利要求1所述的方法,其中所述差异化产生一个或者多个新单元的标识,其中在所述目标拓扑模型中发现而在所述源拓扑模型中未发现所述新单元,并且其中所述方法还包括:
在所述资产库中搜索所述新单元。
11.如权利要求1所述的方法,其中用于部署所述解决方案的所述部分的所述操作设置安全防火墙。
12.如权利要求1所述的方法,其中用于部署所述解决方案的所述部分的所述操作在所述目标平台中实例化所述目标虚拟映像。
13.如权利要求1所述的方法,其中所述源平台是在一个或者多个计算机系统的第一集合上运行的第一管理程序,其中所述目标平台是在一个或者多个计算机系统的第二集合上运行的第二管理程序,并且其中所述第一管理程序和第二管理程序是不同类型的管理程序。
14.一种用于在平台之间移植虚拟映像的设备,所述设备包括:
用于对与源平台相关联的源拓扑模型和与目标平台相关联的目标拓扑模型进行差异化的装置,其中所述源平台是第一云并且所述目标平台是第二云,所述差异化产生拓扑差异,其中所述差异化的至少部分由处理器执行,并且其中所述差异化包括:
比较对应于所述源平台的模型单元的第一集合与对应于所述目标平台的模型单元的第二集合,其中所述比较产生一个或者多个改变的模型单元和一个或者多个共同模型单元;
用于从对应于所述共同模型单元的所述源拓扑模型取回自动化步骤模型的第一集合的装置;
用于在资产库中搜索所述改变的模型单元的装置,所述搜索产生对应于所述改变的模型单元的自动化步骤模型的第二集合;
用于从所述资产库获得工作流模型中的操作的装置,其中所述工作流模型包括所述自动化步骤模型的第一集合和所述自动化步骤模型的第二集合,并且其中所述操作与所述拓扑差异相关联,并且其中所述资产库的至少部分存储于持久存储介质中;以及
用于传输所述操作以用于部署解决方案的至少部分的装置,其中所述解决方案的所部署的部分包括与所述目标平台兼容的目标虚拟映像。
15.如权利要求14所述的设备,还包括:
用于通过执行所述操作在所述目标平台部署所述解决方案的所述部分的装置。
16.如权利要求15所述的设备,其中所述部署的结果包括从所述源平台向所述目标平台移植所述解决方案。
17.如权利要求14所述的设备,还包括:
用于在元数据中搜索与所述目标平台相关联的至少一个基本虚拟映像元数据的装置。
18.如权利要求17所述的设备,还包括:
用于取回所述搜索中使用的输入参数的装置,其中所述输入参数由所述目标拓扑模型提供。
19.如权利要求17所述的设备,还包括:
用于响应于所述搜索从存储于所述资产库中的所述元数据取回一个或者多个基本虚拟映像描述的装置。
20.如权利要求14所述的设备,还包括:
用于将所述拓扑差异与所述源拓扑模型和所述目标拓扑模型相关联的装置;以及
用于在所述资产库中存储所述拓扑差异和所述关联作为补丁的装置。
21.如权利要求20所述的设备,还包括:
用于接收对于所述源拓扑模型而言部分共同的第二源拓扑模型和对于所述目标平台而言部分共同的第二目标平台的装置;
用于在所述资产库中搜索包括所述补丁的一个或者多个补丁,其中所述搜索包括相关联的源拓扑模型的装置;
用于响应于所述搜索从所述资产库取回所述补丁的装置;以及
用于将取回的补丁应用于所述第二源拓扑模型从而产生与所述第二目标平台相关联的第二目标拓扑模型的装置。
22.如权利要求14所述的设备,还包括:
用于传输包括所述操作的多个操作以用于部署完整解决方案的装置。
23.如权利要求14所述的设备,其中所述差异化产生一个或者多个新单元的标识,其中在所述目标拓扑模型中发现而在所述源拓扑模型中未发现所述新单元,并且其中所述设备还包括:
用于在所述资产库中搜索所述新单元的装置。
24.如权利要求14所述的设备,其中用于部署所述解决方案的所述部分的所述操作设置安全防火墙。
25.如权利要求14所述的设备,其中用于部署所述解决方案的所述部分的所述操作在所述目标平台中实例化所述目标虚拟映像。
26.如权利要求14所述的设备,其中所述源平台是在一个或者多个计算机系统的第一集合上运行的第一管理程序,其中所述目标平台是在一个或者多个计算机系统的第二集合上运行的第二管理程序,并且其中所述第一管理程序和第二管理程序是不同类型的管理程序。
CN201080060191.0A 2009-12-31 2010-12-14 在平台之间移植虚拟机映像 Active CN102725733B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/651,277 2009-12-31
US12/651,277 US8984503B2 (en) 2009-12-31 2009-12-31 Porting virtual images between platforms
PCT/EP2010/069569 WO2011080063A1 (en) 2009-12-31 2010-12-14 Porting virtual machine images between platforms

Publications (2)

Publication Number Publication Date
CN102725733A CN102725733A (zh) 2012-10-10
CN102725733B true CN102725733B (zh) 2015-04-29

Family

ID=43734823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080060191.0A Active CN102725733B (zh) 2009-12-31 2010-12-14 在平台之间移植虚拟机映像

Country Status (8)

Country Link
US (3) US8984503B2 (zh)
JP (1) JP5669861B2 (zh)
KR (1) KR101442360B1 (zh)
CN (1) CN102725733B (zh)
BR (1) BR112012018768B1 (zh)
CA (1) CA2781496C (zh)
DE (1) DE112010004160T5 (zh)
WO (1) WO2011080063A1 (zh)

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079473A1 (en) * 2009-06-08 2012-03-29 Haruhito Watanabe Software updating system, displaying unit and software updating method
US8671222B2 (en) * 2010-05-11 2014-03-11 Smartshift Gmbh Systems and methods for dynamically deploying an application transformation tool over a network
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US9317267B2 (en) 2009-12-15 2016-04-19 International Business Machines Corporation Deployment and deployment planning as a service
US8984503B2 (en) 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
US9021046B2 (en) 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US9443078B2 (en) 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US9436459B2 (en) * 2010-05-28 2016-09-06 Red Hat, Inc. Generating cross-mapping of vendor software in a cloud computing environment
US8607200B2 (en) * 2010-06-01 2013-12-10 Red Hat, Inc. Executing a web application at different stages in the application life cycle
EP4006728A1 (en) * 2010-07-09 2022-06-01 State Street Corporation Systems and methods for private cloud computing
US10671628B2 (en) * 2010-07-09 2020-06-02 State Street Bank And Trust Company Systems and methods for data warehousing
US10235439B2 (en) 2010-07-09 2019-03-19 State Street Corporation Systems and methods for data warehousing in private cloud environment
US20120054626A1 (en) * 2010-08-30 2012-03-01 Jens Odenheimer Service level agreements-based cloud provisioning
US8856770B2 (en) * 2010-09-17 2014-10-07 Sap Ag Solution packages including segments of a process chain
US8819672B2 (en) * 2010-09-20 2014-08-26 International Business Machines Corporation Multi-image migration system and method
US8566397B2 (en) 2010-10-05 2013-10-22 Accenture Global Services Limited Operations management using communications and collaboration platform
US8800055B2 (en) * 2010-10-20 2014-08-05 International Business Machines Corporation Node controller for an endpoint in a cloud computing environment
US9128742B1 (en) * 2010-11-19 2015-09-08 Symantec Corporation Systems and methods for enhancing virtual machine backup image data
US8875122B2 (en) * 2010-12-30 2014-10-28 Sap Se Tenant move upgrade
US9009105B2 (en) * 2010-12-30 2015-04-14 Sap Se Application exits for consistent tenant lifecycle management procedures
US8555276B2 (en) 2011-03-11 2013-10-08 Joyent, Inc. Systems and methods for transparently optimizing workloads
US20120233315A1 (en) * 2011-03-11 2012-09-13 Hoffman Jason A Systems and methods for sizing resources in a cloud-based environment
US8732267B2 (en) * 2011-03-15 2014-05-20 Cisco Technology, Inc. Placement of a cloud service using network topology and infrastructure performance
US8909762B2 (en) * 2011-03-17 2014-12-09 Hewlett-Packard Development Company, L.P. Network system management
US8984104B2 (en) * 2011-05-31 2015-03-17 Red Hat, Inc. Self-moving operating system installation in cloud-based network
US20130007726A1 (en) * 2011-06-30 2013-01-03 Indrajit Poddar Virtual machine disk image installation
CN102325043B (zh) * 2011-07-20 2014-09-03 华为技术有限公司 一种拓扑生成方法、装置和系统
US8732693B2 (en) * 2011-08-04 2014-05-20 Microsoft Corporation Managing continuous software deployment
US8943220B2 (en) 2011-08-04 2015-01-27 Microsoft Corporation Continuous deployment of applications
US9038055B2 (en) 2011-08-05 2015-05-19 Microsoft Technology Licensing, Llc Using virtual machines to manage software builds
US8838764B1 (en) * 2011-09-13 2014-09-16 Amazon Technologies, Inc. Hosted network management
US8793379B2 (en) * 2011-11-01 2014-07-29 Lsi Corporation System or method to automatically provision a storage volume by having an app-aware based appliance in a storage cloud environment
US9880868B2 (en) * 2011-11-30 2018-01-30 Red Hat, Inc. Modifying an OS installer to allow for hypervisor-specific adjustment of an OS
TWI515658B (zh) * 2011-12-07 2016-01-01 萬國商業機器公司 用於創建虛擬裝置之方法及系統
KR101342592B1 (ko) * 2011-12-23 2013-12-17 주식회사 케이티 클라우드 시스템에서의 웹 방화벽 서비스 장치 및 방법
US8782224B2 (en) 2011-12-29 2014-07-15 Joyent, Inc. Systems and methods for time-based dynamic allocation of resource management
US8547379B2 (en) 2011-12-29 2013-10-01 Joyent, Inc. Systems, methods, and media for generating multidimensional heat maps
TWI462017B (zh) * 2012-02-24 2014-11-21 Wistron Corp 伺服器部署系統及資料更新的方法
US8789164B2 (en) 2012-03-16 2014-07-22 International Business Machines Corporation Scalable virtual appliance cloud (SVAC) and devices usable in an SVAC
WO2013138979A1 (en) * 2012-03-19 2013-09-26 Empire Technology Development Llc Hybrid multi-tenancy cloud platform
US9071613B2 (en) 2012-04-06 2015-06-30 International Business Machines Corporation Dynamic allocation of workload deployment units across a plurality of clouds
US9086929B2 (en) 2012-04-06 2015-07-21 International Business Machines Corporation Dynamic allocation of a workload across a plurality of clouds
GB2501287A (en) 2012-04-18 2013-10-23 Ibm Installing applications at selected runtime instances
US9286103B2 (en) * 2012-04-21 2016-03-15 International Business Machines Corporation Method and apparatus for providing a test network as an IP accessible cloud service
US9237188B1 (en) 2012-05-21 2016-01-12 Amazon Technologies, Inc. Virtual machine based content processing
US8924969B2 (en) 2012-06-07 2014-12-30 Microsoft Corporation Virtual machine image write leasing
TW201401074A (zh) * 2012-06-26 2014-01-01 Quanta Comp Inc 軟體跨雲部署機制及系統
US10338940B2 (en) * 2012-06-27 2019-07-02 International Business Machines Corporation Adjusting adminstrative access based on workload migration
US8856382B2 (en) 2012-07-30 2014-10-07 International Business Machines Corporation On-boarding services to a cloud environment
US9836548B2 (en) 2012-08-31 2017-12-05 Blackberry Limited Migration of tags across entities in management of personal electronically encoded items
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US9208041B2 (en) 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US8990772B2 (en) * 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US9135436B2 (en) 2012-10-19 2015-09-15 The Aerospace Corporation Execution stack securing process
GB2507338A (en) 2012-10-26 2014-04-30 Ibm Determining system topology graph changes in a distributed computing system
US8997088B2 (en) * 2012-11-02 2015-03-31 Wipro Limited Methods and systems for automated deployment of software applications on heterogeneous cloud environments
US11475381B2 (en) * 2012-12-24 2022-10-18 International Business Machines Corporation Graphical user interface for receiving proposed and displaying alternative computer architectures
US9256700B1 (en) * 2012-12-31 2016-02-09 Emc Corporation Public service for emulation of application load based on synthetic data generation derived from preexisting models
US10671418B2 (en) * 2013-01-09 2020-06-02 Red Hat, Inc. Sharing templates and multi-instance cloud deployable applications
US10025580B2 (en) * 2013-01-23 2018-07-17 Dell Products L.P. Systems and methods for supporting multiple operating system versions
US9104456B2 (en) 2013-03-14 2015-08-11 Joyent, Inc. Zone management of compute-centric object stores
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US8881279B2 (en) 2013-03-14 2014-11-04 Joyent, Inc. Systems and methods for zone-based intrusion detection
US8826279B1 (en) 2013-03-14 2014-09-02 Joyent, Inc. Instruction set architecture for compute-based object stores
US8943284B2 (en) 2013-03-14 2015-01-27 Joyent, Inc. Systems and methods for integrating compute resources in a storage area network
US8793688B1 (en) 2013-03-15 2014-07-29 Joyent, Inc. Systems and methods for double hulled virtualization operations
JP6550372B2 (ja) * 2013-03-15 2019-07-24 オラクル・インターナショナル・コーポレイション 仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
US8775485B1 (en) 2013-03-15 2014-07-08 Joyent, Inc. Object store management operations within compute-centric object stores
US9268549B2 (en) * 2013-03-27 2016-02-23 Vmware, Inc. Methods and apparatus to convert a machine to a virtual machine
CN103324474B (zh) * 2013-05-22 2016-08-03 中标软件有限公司 基于Linux操作系统跨体系构造ISO的方法及模块
US9390076B2 (en) * 2013-06-06 2016-07-12 Microsoft Technology Licensing, Llc Multi-part and single response image protocol
US10489175B2 (en) * 2013-06-10 2019-11-26 Amazon Technologies, Inc. Pre-configure and pre-launch compute resources
US9632802B2 (en) 2013-06-14 2017-04-25 Sap Se Automatic configuration of mobile programs
CN104253831B (zh) 2013-06-26 2018-05-11 国际商业机器公司 一种用于在云计算环境中部署应用的方法和系统
US9990189B2 (en) * 2013-07-03 2018-06-05 International Business Machines Corporation Method to optimize provisioning time with dynamically generated virtual disk contents
US9043576B2 (en) * 2013-08-21 2015-05-26 Simplivity Corporation System and method for virtual machine conversion
CN103607426B (zh) * 2013-10-25 2019-04-09 中兴通讯股份有限公司 安全服务订制方法和装置
KR20170016456A (ko) * 2014-06-10 2017-02-13 알까뗄 루슨트 보안성 있는 통합된 클라우드 저장
JP2016071562A (ja) 2014-09-29 2016-05-09 富士通株式会社 判定プログラム、方法及び装置
WO2016053306A1 (en) * 2014-09-30 2016-04-07 Hewlett Packard Enterprise Development Lp Topology based management of second day operations
WO2016053304A1 (en) * 2014-09-30 2016-04-07 Hewlett Packard Enterprise Development Lp Topology based management with compliance policies
EP3255839B1 (en) 2015-02-03 2024-04-24 Nec Corporation Virtual network system, virtual network control method, virtual network function database, integrated control device, control device, and control method and control program therefor
US9569249B1 (en) 2015-09-08 2017-02-14 International Business Machines Corporation Pattern design for heterogeneous environments
US9983796B2 (en) * 2015-09-17 2018-05-29 Veritas Technologies Llc Systems and methods for provisioning frequently used image segments from caches
US10802860B2 (en) 2015-10-26 2020-10-13 Hewlett-Packard Development Company, L.P. Cloud platform OS management
CN105515933A (zh) * 2015-11-30 2016-04-20 中电科华云信息技术有限公司 基于OpenStack实现VMware网络功能的管理方法
JP6727804B2 (ja) * 2015-12-25 2020-07-22 株式会社ユーズテック ミドルウェア
US9823919B2 (en) * 2015-12-30 2017-11-21 Microsoft Technology Licensing, Llc Controlled deployment of application feature in mobile environment
US9626166B1 (en) * 2016-01-26 2017-04-18 International Business Machines Corporation Common secure cloud appliance image and deployment
US11593342B2 (en) 2016-02-01 2023-02-28 Smartshift Technologies, Inc. Systems and methods for database orientation transformation
US10423331B2 (en) * 2016-02-02 2019-09-24 Samsung Electronics Co., Ltd. Polymorphic storage devices
US11287973B2 (en) 2016-02-02 2022-03-29 Samsung Electronics Co., Ltd. Polymorphic storage devices
US10498726B2 (en) 2016-03-22 2019-12-03 International Business Machines Corporation Container independent secure file system for security application containers
US10585655B2 (en) 2016-05-25 2020-03-10 Smartshift Technologies, Inc. Systems and methods for automated retrofitting of customized code objects
US10089103B2 (en) 2016-08-03 2018-10-02 Smartshift Technologies, Inc. Systems and methods for transformation of reporting schema
US11231910B2 (en) * 2016-12-14 2022-01-25 Vmware, Inc. Topological lifecycle-blueprint interface for modifying information-technology application
US11231912B2 (en) * 2016-12-14 2022-01-25 Vmware, Inc. Post-deployment modification of information-technology application using lifecycle blueprint
US10331973B2 (en) * 2017-06-26 2019-06-25 Nicira, Inc. System and method for deploying graphical diagram topologies
CN113535384B (zh) * 2018-01-29 2023-06-27 华为云计算技术有限公司 一种针对应用的克隆方法及装置
US10698674B2 (en) 2018-02-06 2020-06-30 Smartshift Technologies, Inc. Systems and methods for entry point-based code analysis and transformation
US10528343B2 (en) 2018-02-06 2020-01-07 Smartshift Technologies, Inc. Systems and methods for code analysis heat map interfaces
US10740075B2 (en) 2018-02-06 2020-08-11 Smartshift Technologies, Inc. Systems and methods for code clustering analysis and transformation
US10867067B2 (en) * 2018-06-07 2020-12-15 Cisco Technology, Inc. Hybrid cognitive system for AI/ML data privacy
US10904099B2 (en) * 2018-09-07 2021-01-26 Cisco Technology, Inc. Formal model checking based approaches to optimized realizations of network functions in multi-cloud environments
CN109861850B (zh) * 2019-01-11 2021-04-02 中山大学 一种基于sla的无状态云工作流负载均衡调度的方法
US20200293421A1 (en) * 2019-03-15 2020-09-17 Acentium Inc. Systems and methods for identifying and monitoring solution stacks
KR102162834B1 (ko) * 2019-11-25 2020-10-08 (주) 이노트리 멀티클라우드 또는 하이브리드클라우드를 위한 토폴로지 맵 이용 시스템 및 방법
US11334341B2 (en) * 2020-04-02 2022-05-17 Vmware, Inc. Desired state model for managing lifecycle of virtualization software
US11269609B2 (en) 2020-04-02 2022-03-08 Vmware, Inc. Desired state model for managing lifecycle of virtualization software
US11194561B1 (en) * 2020-07-08 2021-12-07 Vmware, Inc. System and method for generating and recommending desired state of virtualization software
US11886867B2 (en) 2020-11-12 2024-01-30 International Business Machines Corporation Workflow patching
US11435996B2 (en) * 2020-12-09 2022-09-06 Vmware, Inc. Managing lifecycle of solutions in virtualization software installed in a cluster of hosts
US11435997B2 (en) * 2020-12-09 2022-09-06 Vmware, Inc. Desired state model for managing lifecycle of virtualization software installed in heterogeneous cluster of hosts
US11221836B1 (en) * 2021-06-21 2022-01-11 Instabase, Inc. Systems and methods to control configurations of customer-specific deployments of sets of enterprise software applications

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848415A (en) * 1996-12-18 1998-12-08 Unisys Corporation Selective multiple protocol transport and dynamic format conversion in a multi-user network
US6058397A (en) * 1997-04-08 2000-05-02 Mitsubishi Electric Information Technology Center America, Inc. 3D virtual environment creation management and delivery system
US7227837B1 (en) * 1998-04-30 2007-06-05 At&T Labs, Inc. Fault tolerant virtual tandem switch
US6792615B1 (en) * 1999-05-19 2004-09-14 New Horizons Telecasting, Inc. Encapsulated, streaming media automation and distribution system
JP2001051834A (ja) 1999-08-04 2001-02-23 Hitachi Ltd ワークフローシステムにおける動的アプリケーション起動方法及びシステム
JP4688270B2 (ja) * 1999-10-13 2011-05-25 株式会社ビジュアルジャパン ネットワーク型データ伝送システム、並びに同システムにおけるサーバ及び端末装置
US7006494B1 (en) * 2000-01-04 2006-02-28 Cisco Technology, Inc. System and method for a virtual telephony intermediary
US6714980B1 (en) * 2000-02-11 2004-03-30 Terraspring, Inc. Backup and restore of data associated with a host in a dynamically changing virtual server farm without involvement of a server that uses an associated storage device
US7209921B2 (en) * 2000-09-01 2007-04-24 Op40, Inc. Method and system for deploying an asset over a multi-tiered network
US7002976B2 (en) * 2000-11-01 2006-02-21 Marconi Intellectual Property (Ringfence) Inc. Virtual ethernet ports with automated router port extension
US6954790B2 (en) * 2000-12-05 2005-10-11 Interactive People Unplugged Ab Network-based mobile workgroup system
US7080159B2 (en) 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
US7283533B1 (en) * 2001-06-25 2007-10-16 Cisco Technology, Inc. Interworking of packet-based voice technologies using virtual TDM trunks
US6785744B2 (en) * 2001-08-08 2004-08-31 International Business Machines Corporation Mapping SCSI medium changer commands to mainframe-compatible perform library function commands
US6760804B1 (en) * 2001-09-11 2004-07-06 3Com Corporation Apparatus and method for providing an interface between legacy applications and a wireless communication network
US7184789B2 (en) * 2001-10-03 2007-02-27 Qualcomm, Incorporated Method and apparatus for data packet transport in a wireless communication system using an internet protocol
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7080378B1 (en) * 2002-05-17 2006-07-18 Storage Technology Corporation Workload balancing using dynamically allocated virtual servers
US20040039815A1 (en) * 2002-08-20 2004-02-26 Compaq Information Technologies Group, L.P. Dynamic provisioning system for a network of computers
US20040059829A1 (en) * 2002-09-24 2004-03-25 Chu Thomas P. Methods and devices for converting routing data from one protocol to another in a virtual private network
US7092958B2 (en) * 2003-01-29 2006-08-15 Battelle Energy Alliance, Llc Knowledge information management toolkit and method
US8209680B1 (en) 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7633955B1 (en) * 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
GB0405792D0 (en) 2004-03-15 2004-04-21 Univ Catholique Louvain Augmented reality vision system and method
US20060101116A1 (en) * 2004-10-28 2006-05-11 Danny Rittman Multifunctional telephone, walkie talkie, instant messenger, video-phone computer, based on WiFi (Wireless Fidelity) and WiMax technology, for establishing global wireless communication, network and video conferencing via the internet
US8051148B2 (en) * 2005-01-13 2011-11-01 National Instruments Corporation Determining differences between configuration diagrams
US20110016214A1 (en) * 2009-07-15 2011-01-20 Cluster Resources, Inc. System and method of brokering cloud computing resources
US7454407B2 (en) * 2005-06-10 2008-11-18 Microsoft Corporation Techniques for estimating progress of database queries
US7914519B2 (en) * 2005-06-23 2011-03-29 Elcam Medical Agricultural Cooperative Association, Ltd. Catheter device
US7440894B2 (en) * 2005-08-09 2008-10-21 International Business Machines Corporation Method and system for creation of voice training profiles with multiple methods with uniform server mechanism using heterogeneous devices
US20070050525A1 (en) * 2005-08-25 2007-03-01 Moxa Technologies Co., Ltd. [virtual com port for remote i/o controller]
US8078728B1 (en) * 2006-03-31 2011-12-13 Quest Software, Inc. Capacity pooling for application reservation and delivery
US7587570B2 (en) * 2006-05-31 2009-09-08 International Business Machines Corporation System and method for providing automated storage provisioning
US20080080526A1 (en) * 2006-09-28 2008-04-03 Microsoft Corporation Migrating data to new cloud
US7865663B1 (en) * 2007-02-16 2011-01-04 Vmware, Inc. SCSI protocol emulation for virtual storage device stored on NAS device
US8205195B2 (en) * 2007-06-08 2012-06-19 Sap Ag Method and system for automatically classifying and installing patches on systems
KR100955426B1 (ko) * 2007-08-10 2010-05-04 (주)지란지교소프트 가상 플랫폼 실행방법
US7383327B1 (en) * 2007-10-11 2008-06-03 Swsoft Holdings, Ltd. Management of virtual and physical servers using graphic control panels
US8386918B2 (en) * 2007-12-06 2013-02-26 International Business Machines Corporation Rendering of real world objects and interactions into a virtual universe
WO2009082388A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Modelling computer based business process for customisation and delivery
US8175863B1 (en) * 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US8607020B2 (en) * 2008-06-06 2013-12-10 International Business Machines Corporation Shared memory partition data processing system with hypervisor managed paging
US8230500B1 (en) * 2008-06-27 2012-07-24 Symantec Corporation Methods and systems for detecting rootkits
US20100043046A1 (en) * 2008-07-07 2010-02-18 Shondip Sen Internet video receiver
US8250215B2 (en) * 2008-08-12 2012-08-21 Sap Ag Method and system for intelligently leveraging cloud computing resources
US8281307B2 (en) * 2009-06-01 2012-10-02 International Business Machines Corporation Virtual solution composition and deployment system and method
US8060714B1 (en) * 2008-09-26 2011-11-15 Emc (Benelux) B.V., S.A.R.L. Initializing volumes in a replication system
US8271536B2 (en) * 2008-11-14 2012-09-18 Microsoft Corporation Multi-tenancy using suite of authorization manager components
CN101430649B (zh) 2008-11-19 2011-09-14 北京航空航天大学 基于虚拟机的虚拟计算环境系统
US8572587B2 (en) * 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US8856294B2 (en) * 2009-06-01 2014-10-07 Oracle International Corporation System and method for converting a Java application into a virtual server image for cloud deployment
US8886708B2 (en) * 2009-12-02 2014-11-11 Vmware, Inc. Centralized computer network virtualization environment
US9002838B2 (en) * 2009-12-17 2015-04-07 Wausau Financial Systems, Inc. Distributed capture system for use with a legacy enterprise content management system
US8984503B2 (en) 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
US8140735B2 (en) * 2010-02-17 2012-03-20 Novell, Inc. Techniques for dynamic disk personalization
US8352415B2 (en) * 2010-06-15 2013-01-08 International Business Machines Corporation Converting images in virtual environments

Also Published As

Publication number Publication date
KR20120113716A (ko) 2012-10-15
WO2011080063A1 (en) 2011-07-07
US10528617B2 (en) 2020-01-07
BR112012018768A2 (pt) 2018-06-05
KR101442360B1 (ko) 2014-09-17
US20120180035A1 (en) 2012-07-12
US20110161952A1 (en) 2011-06-30
US20150106396A1 (en) 2015-04-16
US8984503B2 (en) 2015-03-17
DE112010004160T5 (de) 2012-09-20
BR112012018768B1 (pt) 2020-12-22
JP2013516668A (ja) 2013-05-13
CN102725733A (zh) 2012-10-10
CA2781496C (en) 2020-09-15
CA2781496A1 (en) 2011-07-07
JP5669861B2 (ja) 2015-02-18
US8990794B2 (en) 2015-03-24

Similar Documents

Publication Publication Date Title
CN102725733B (zh) 在平台之间移植虚拟机映像
US9047160B2 (en) Designing and building virtual images using semantically rich composable software image bundles
US9405529B2 (en) Designing and cross-configuring software
US9104514B2 (en) Automated deployment of applications with tenant-isolation requirements
Quinton et al. Towards multi-cloud configurations using feature models and ontologies
US20200226520A1 (en) Methods and systems to optimize server utilization for a virtual data center
US20140344123A1 (en) Dynamically modifying workload patterns in a cloud
CN105453040B (zh) 在分布式计算环境中处理数据流的方法和系统
US20120266170A1 (en) Virtual Machine Image Management System and Methods
US20110314466A1 (en) Creating instances of cloud computing environments
CN107066242A (zh) 确定软件容器中软件的标识的方法和系统
US20160371109A1 (en) Methods and systems to determine application license costs in a virtualized data center
Quinton et al. SALOON: a platform for selecting and configuring cloud environments
CN105100127A (zh) 用于验证在云计算环境中的应用部署拓扑的设备和方法
US20190058640A1 (en) Automatically orchestrating the compliance of cloud services to selected standards and policies
CN102289367B (zh) 根据模式的命令行外壳命令生成
Ahmed-Nacer et al. OCCI-compliant cloud configuration simulation
CN109660575A (zh) Nfv业务部署的实现方法和装置
Fortuna et al. On-premise artificial intelligence as a service for small and medium size setups
CN114168974B (zh) 适用于私有云的平台与云产品分离方法及系统
Groenda et al. CACTOS Toolkit Version 2
Pscaer Kubernetes in the enterprise
CN113986207A (zh) 一种软件架构生成、调用方法及装置
JP2023046312A (ja) コンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム製品(共有ライブラリをアンロードする際にランタイムリソースをクリーンアップするためにコンテナを使用すること)
Pennanen Utilising Cloud Computing in Software Testing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant