一种用于在云计算环境中部署应用的方法和系统的制作方法

文档序号:8001356阅读:213来源:国知局
一种用于在云计算环境中部署应用的方法和系统的制作方法
【专利摘要】本发明属于云计算领域,公开了一种用于在云计算环境中部署应用的方法和系统。该方法包括:在用户部署应用时,收集与部署应用相关的元数据以及指令,所述元数据包括服务元数据、应用元数据以及拓扑元数据,其中,所述服务元数据包括与部署该应用所需要的服务相关的元数据,所述应用元数据包括与该应用相关的元数据,拓扑元数据包括表示所述服务与所述应用之间关系的元数据;将收集到的元数据和指令存储为模型以用于该应用的再次部署。通过对于用户部署应用操作的记录,可以得到部署所用的模型,这样当再次部署时,可以直接调用模型实现自动部署,降低了部署应用所需的专业技能,方便了应用的再次部署。
【专利说明】一种用于在云计算环境中部署应用的方法和系统

【技术领域】
[0001] 本发明涉及云计算领域,更具体地,涉及一种用于在云计算环境中部署应用的方 法和系统。

【背景技术】
[0002] 在云计算环境中,多个用户可能都需要使用某一应用。那么对于这些用户,目前, 需要每个用户都自己完成该应用的部署。应用的部署需要一定的专业技能,因此对于某些 用户而言,自己部署应用有一定的困难,这在一定程度上就限制了云平台的发展,也为用户 使用带来了不便。并且,在云计算环境中,若用户需要多次部署同一应用,也需要每次都进 行一次相同的操作,费时费力。


【发明内容】

[0003] 为了简化云计算环境中应用的部署,本发明实施例提供了一种用于在云计算环境 中部署应用的方法和系统,此外还提供了一种用于在云计算环境中部署复合应用的方法和 系统。
[0004] 根据本发明的一个方面,提供了一种用于在云计算环境中部署应用的方法和系 统,所述方法包括:在用户部署应用时,收集与部署应用相关的元数据以及指令,所述元数 据包括服务元数据、应用元数据以及拓扑元数据,其中,所述服务元数据包括与部署该应用 所需要的服务相关的元数据,所述应用元数据包括与该应用相关的元数据,拓扑元数据包 括表示所述服务与所述应用之间关系的元数据;将收集到的元数据和指令存储为模型以用 于该应用的再次部署。
[0005] 根据本发明的另一个方面,提供了一种用于在云计算环境中部署应用的方法,所 述方法包括:获取按照上述方法得到的模型;根据所述模型中的指令和服务元数据准备部 署该应用所需的服务;根据所述模型中的指令和应用元数据将该应用发布到运行环境;根 据所述模型中的指令和拓扑元数据将准备好的服务绑定到该应用。
[0006] 根据本发明的另一个方面,提供了一种用于在云计算环境中部署复合应用的方 法,所述复合应用至少包括第一子应用和第二子应用,所述方法包括:获取按照上述方法得 到的所述第一子应用的模型;获取按照上述方法得到的所述第二子应用的模型;根据所述 第一子应用的模型中的拓扑元数据和所述第二子应用的模型中的拓扑元数据生成所述复 合应用的生命周期管理信息;将所述第一子应用的模型、所述第二子应用的模型以及所述 生命周期管理信息存储为所述复合应用的模型以用于所述复合应用的部署。
[0007] 根据本发明的另一个方面,提供了一种用于在云计算环境中部署应用的系统,该 系统能够执行上述方法。
[0008] 本发明所提供的技术方案可以简化云计算环境中应用的部署,降低部署应用对于 专业技能的需求,方便用户使用云计算环境中的应用。

【专利附图】

【附图说明】
[0009] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0010] 图1表示根据本发明一实施例的云计算节点;
[0011] 图2表示根据本发明一实施例的云计算环境;
[0012] 图3表示根据本发明一实施例的抽象模型层;
[0013] 图4示出了本发明一实施例提供的用于在云计算环境中部署应用的方法的流程 示意图;
[0014] 图5示出了本发明一实施例提供的用于在云计算环境中部署应用的方法的流程 示意图;
[0015] 图6示出了本发明一实施例提供的用于在云计算环境中部署复合应用的方法的 流程示意图;
[0016] 图7示出了本发明一实施例提供的用于在云计算环境中部署应用的系统的结构 示意图;
[0017] 图8示出了本发明一实施例提供的存储模块的结构示意图;
[0018] 图9示出了本发明一实施例提供的用于在云计算环境中部署应用的系统的结构 示意图;
[0019] 图10示出了本发明一实施例提供的用于在云计算环境中部署。

【具体实施方式】
[0020] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整的传达给本领域的技术人员。
[0021] 首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案 的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环 境而实现。
[0022] 云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的 网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能 快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟 机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0023] 特征包括:
[0024] 按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单 方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0025] 广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进 了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字 助理PDA)对云的使用。
[0026] 资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服 务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况 下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上 指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0027] 迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展, 并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的, 并能在任意时候都能获取任意数量的计算能力。
[0028] 可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户 帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资 源使用情况,为服务提供者和消费者双方提供透明度。
[0029] 服务模型如下:
[0030] 软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的 应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户 机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包 括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0031] 平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或 获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不 控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制 权,对应用托管环境配置可能也具有控制权。
[0032] 基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行 包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理 也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的 网络组件(例如主机防火墙)可能具有有限的控制权。
[0033] 部署模型如下:
[0034] 私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管 理并且可以存在于该组织内部或外部。
[0035] 共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、 安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三 方管理并且可以存在于该共同体内部或外部。
[0036] 公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0037] 混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组 成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术 (例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0038] 云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操 作性。云计算的核心是包含互连节点网络的基础架构。
[0039] 现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅 是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。 总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0040] 云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统 环境或配置一起操作。众所周知,适于与计算机系统/服务器12-起操作的计算系统、环境 和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户 机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、 小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
[0041] 计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸 如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定 的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12 可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式 云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0042] 如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式 表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单 元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0043] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0044] 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可 移动的和不可移动的介质。
[0045] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM) 30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其 它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管 图1中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器, 以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。 在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28 可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模 块被配置以执行本发明各实施例的功能。
[0046] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28 中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以 及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通 常执行本发明所描述的实施例中的功能和/或方法。
[0047] 计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的 设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信 的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接 口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络 (例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适 配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示 出,其它硬件和/或软件模块可以与计算机系统/服务器12 -起操作,包括但不限于:微代 码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存 储系统等。
[0048] 现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包 括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地 计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C 和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如 上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云 计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备 上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和 /或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计 算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的 计算设备(例如使用网络浏览器)通信。
[0049] 现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应 当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图 3所示,提供下列层和对应功能:
[0050] 硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如 IBM? zSeries?系统;基于RISC(精简指令集计算机)体系结构的服务器,例如 iBMpSeries? 系统;iBMXSeries? 系统;iBMBladeCenter? 系统;存储设备;网络 和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM WebSphere?应用服 务器软件;数据库软件,例如IBM DB2?.数据库软件。(IBM, zSeries, pSeries, xSeries, BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0051] 虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚 拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0052] 在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算 环境中执行任务的计算资源和其它资源的动态获取,其中包括根据用户请求管理应用运行 环境的资源分配,根据需求创建新的服务实例,建立应用与服务之间的动态绑定关系等,从 而能够实现应用的部署;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪, 并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的 消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统 管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满 足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资 源未来需求提供预先安排和供应。
[0053] 工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作 负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提 供;数据分析处理;交易处理;以及移动桌面。
[0054] 现在参看图4,图4示出了本发明实施例提供的一种用于在云计算环境中部署应 用的方法,所述方法包括:步骤410,在用户部署应用时,收集与部署应用相关的元数据和 指令,所述元数据包括服务元数据、应用元数据以及拓扑元数据,其中,所述服务元数据包 括与部署该应用所需要的服务相关的元数据,所述应用元数据包括与该应用相关的元数 据,拓扑元数据包括表示所述服务与所述应用之间关系的元数据;步骤420,将收集到的元 数据和指令存储为模型以用于该应用的再次部署。根据本实施例提供的方法,可以在用户 首次部署应用时,通过元数据和指令的收集记录,将用户部署的操作记录为一个模型。若用 户需要再次部署该应用时,只需要调取该模型就可以实现应用的自动部署,无须再进行一 次人工的部署操作,节省了用户的大量工作。并且对于缺乏应用部署专业技能的用户,可以 由专业人员进行一次应用的部署,通过本实施例提供的方法,将专业人员的部署操作记录 下来,形成该应用的部署模型,缺乏部署专业技能的用户只需要选定相应的部署模型,或者 只需要选择希望部署的应用,就可以实现该应用的自动部署,方便了用户的使用,降低了用 户的技能需求。
[0055] 本发明一实施例中,所述服务元数据包括以下之一或其任意组合:服务的类型、月艮 务的名称、服务的ID、服务的版本和服务的配置。所述应用元数据包括以下之一或其任意 组合:应用的类型、应用的名称、应用的ID和应用的配置。所述拓扑元数据包括以下之一或 其任意组合:应用的ID、服务的ID、应用的名称、服务的名称、绑定配置和绑定策略。本发明 一实施例中,服务的配置例如包括资源配置和服务策略配置中的至少一个。本发明一实施 例中,应用的配置例如包括资源配置和应用策略配置中的至少一个。举例而言,在部署应用 时,用户发出了如下指令:
[0056] 指令 1 :create webapp-name MyApp-file mypackage. war-config myapp. conf
[0057] 指令 2 : create service-name MyService-service DB2-version9. 0
[0058] 指令 3 :bind_app MyApp -service MyService
[0059] 其中,应用元数据包括:应用的名称MyApp,应用的代码文件包mypackage. war以 及应用的配置myapp. conf。服务元数据包括:服务名称MyService,类型为DB2,版本为9. 0。 拓扑元数据包括应用的名称MyApp和服务的名称MyService,说明需要将MyService绑定到 MyApp〇
[0060] 本发明一实施例中,与部署应用相关的指令例如包括以下至少之一:创建应用的 运行环境;将应用发布(push)到运行环境;创建服务;从服务目录中查找服务;删除服务; 启动应用;停止应用;启动服务;停止服务;建立应用和服务之间的绑定关系;解除应用和 服务之间的绑定关系;修改应用的配置信息;修改服务的配置信息;删除应用。
[0061] 本发明一实施例中,步骤420可以是将收集到的元数据和指令存储在文件中,或 者也可以存储为数据记录,本发明对此并不加以限制。
[0062] 本发明一实施例中,步骤420例如包括按照所述用户部署该应用的操作顺序,将 收集到的元数据和指令存储起来形成模型以用于该应用的再次部署。本领域技术人员可以 理解,步骤410中,元数据和指令的收集可以是与用户的部署操作同步进行的,也即元数据 和指令的收集是按照用户部署该应用的操作顺序进行的,那么直接将收集到的元数据和指 令存储起来就可以实现按照用户部署该应用的操作顺序存储收集到的元数据和指令。或 者,由于收集的元数据和指令可能存在无效或者冗余的情况,可以调整收集到的元数据和 指令的顺序再存储起来,该存储符合根据用户部署该应用的操作顺序存储收集到的元数据 和指令。由于在部署应用时,有的服务需要按顺序绑定到应用,所以按照顺序存储收集到的 元数据和指令形成模型可以使得在再次部署时,能够按照顺序将服务绑定到应用,从而避 免部署中的错误或者冲突,提高自动部署的成功率。
[0063] 本发明一实施例中,步骤420例如还可以包括去除收集的元数据和指令中的冗 余。在收集的元数据和指令中,会存在部分的冗余,例如无效的元数据、指令或者重复的元 数据、指令。例如,在用户进行部署应用的操作时,可能多次发出应用的发布(push)指令, 由于只有最后一次的该指令是有效的指令,所以仅保存最后一个发布指令以及实例数量、 QoS指标等该指令相关的元数据,去除其他的发布指令及其相关的元数据。本领域技术人员 可以理解,去除收集的元数据和指令中的冗余可以是一边收集一边进行冗余的去除,也可 以是收集完所有的元数据和指令后一起进行冗余的去除。据此,步骤420例如可以包括以 下之一:对收集到的元数据和指令进行分析,去除冗余的元数据和指令,按照所述用户部署 该应用的操作顺序,将去除冗余后的元数据和指令存储起来形成模型以用于该应用的再次 部署;以及按照所述用户部署该应用的操作顺序,将收集到的元数据和指令存储起来,对存 储起来的元数据和指令进行分析,去除冗余的元数据和指令形成模型以用于该应用的再次 部署。本实施例中,对收集到的元数据和指令进行分析例如可以是进行语义分析,或者可以 是按照预定的规则进行处理。本领域技术人员可以理解,还可以采用其他技术来进行分析, 本发明对此不加限制。
[0064] 本发明一实施例中,步骤420例如还可以包括合并无效的操作指令。在用户进行 应用的部署时,可能会存在无效的操作,这样就导致部分收集的元数据和指令失效。例如, 在用户部署应用A时,先创建了服务B,并将服务B绑定到应用A。随后,用户发现相比于服 务B,服务C更合适,由此解除了服务B的绑定,并将服务C绑定到应用A。此时,服务B的 创建、删除以及绑定等指令就是无效的指令,与这些指令相关的元数据就是无效的元数据。 本实施例提供的方法可以对无效的元数据和指令进行合并,从而进一步优化后续的自动部 署。本领域技术人员可以理解,可以是一边收集一边进行合并,也可以是收集完所有的元数 据和指令后一起进行合并。据此,步骤420例如可以包括以下之一:对收集到的元数据和指 令进行分析,合并无效的元数据和指令,按照所述用户部署该应用的操作顺序,将合并后的 元数据和指令存储起来形成模型以用于该应用的再次部署;以及按照所述用户部署该应用 的操作顺序,将收集到的元数据和指令存储起来,对存储起来的元数据和指令进行分析,合 并无效的元数据和指令形成模型以用于该应用的再次部署。本实施例中,对收集到的元数 据和指令进行分析例如可以是进行语义分析,或者可以是按照预定的规则进行处理。本领 域技术人员可以理解,还可以采用其他技术来进行分析,本发明对此不加限制。
[0065] 本发明一实施例中,步骤420例如可以同时包括合并无效的元数据、指令以及去 除冗余的元数据、指令。具体方法可以参照上述实施例。本实施例中,若同时存在两种合并 或者两种去除的方法时,该方法可以用于相同的对象也可以用于不同的对象。
[0066] 本实施例一实施例中,对无效和冗余的元数据以及指令分别进行合并和去除的方 法例如包括:响应于存在多条发布指令,只保留最后一条发布指令以及相关元数据;响应 于存在针对某一服务的删除指令,去除针对该服务的所有删除指令和相关元数据以及针对 该服务的最后一条删除指令之前的针对该服务的所有创建指令和相关元数据;响应于存在 针对某一应用的停止指令,去除针对该应用的所有停止指令和相关元数据以及针对该应用 的最后一条停止指令之前的针对该应用的所有启动指令和相关元数据;响应于存在针对某 一服务的停止指令,去除针对该服务的所有停止指令和相关元数据以及针对该服务的最后 一条停止指令之前的针对该服务的所有启动指令和相关元数据;响应于存在针对某一应用 和某一服务之间绑定关系的解除绑定指令,去除针对该绑定关系的所有解除绑定指令和相 关元数据以及针对该绑定关系的最后一条解除绑定之前的针对该绑定关系的所有绑定指 令和相关元数据。本领域技术人员可以理解,根据上述示例还可以得到其他合并无效或者 去除冗余的方法,此处不再赘述。
[0067] 本发明一实施例中,如图4所示的方法进一步包括:响应于用户向已经部署完毕 的所述应用再进行部署相关操作,收集该操作涉及的元数据和指令,并将该操作涉及的元 数据和指令更新到所述模型,其中所述操作涉及的元数据包括该操作涉及的服务元数据、 该操作涉及的应用元数据以及该操作涉及的拓扑元数据中的至少一个。通过本实施例提供 的方法,若用户对已经部署的应用进行了修改,可以通过记录该用户的操作对已经存储的 模型进行修改,从而可以在今后再次部署该应用时直接部署修改后的应用。进一步的,根据 本发明实施例提供的方法,可以保存多个版本的模型分别对应没有经过修改的应用以及每 次修改后的应用,这样可以方便用户在不同版本的应用间选择合适的版本进行部署。本发 明一实施例中,将操作涉及的元数据和指令更新到所述模型例如包括:对收集的该操作涉 及的元数据和指令以及所述模型中存储的元数据和指令进行去除冗余和合并无效中的至 少一项,并将处理后的元数据和指令存储为模型以用于该应用的再次部署。
[0068] 如图5所示,本发明一实施例提供了一种用于在云计算环境中部署应用的方法。 该方法包括:步骤510,获取模型,该模型为根据上述方法实施例或者其结合得到的模型; 步骤520,根据所述模型中的服务元数据准备部署该应用所需的服务;步骤530,根据所述 模型中的应用元数据将该应用发布到运行环境;步骤540,根据所述模型中的拓扑元数据 将准备好的服务绑定到该应用。根据本实施例提供的方法,可以实现云计算环境中应用的 自动部署,方便了用户的使用,降低了对于用户专业技能的要求。本领域技术人员可以了 解,本实施例中,对于多个服务可以先将所有的服务都准备好,在将准备好的服务绑定到应 用,也可以每准备好一个服务就将该服务绑定到应用,或者还可以是采用其他的顺序进行 服务的准备和绑定。本实施例以及下述实施例中,如图5所示的方法还可以包括服务的启 动、应用的启动、服务的停止和应用的停止,以及服务和应用的删除等,此处不再赘述。
[0069] 本发明一实施例中,步骤520例如包括:根据所述模型中的指令和服务元数据按 照所述模型中指令的顺序,准备部署该应用所需的服务;步骤540例如包括:根据所述模型 中的指令和拓扑元数据按照所述模型中指令的顺序,将准备好的服务绑定到该应用。根据 如图4所示的实施例,模型中的指令和元数据是按照用户部署应用时操作的顺序存储的, 相应的根据中的指令的顺序准备所需的服务以及进行服务和应用的绑定可以确保自动部 署与用户部署的操作顺序一致,提高自动部署的成功率,避免彼此之间有依赖的服务添加 顺序的错乱。
[0070] 本发明一实施例中,步骤520例如包括以下之一或其任意组合:根据所述模型中 的指令和服务元数据,对于专用服务,创建一个新的专用服务;根据所述模型中的指令和服 务元数据,对于共享服务,若该共享服务已经存在,则使用该已经存在的共享服务,若该共 享服务不存在,则创建一个新的共享服务;根据所述模型中的指令和服务元数据,对于外部 服务引用,创建一个新的外部服务引用。
[0071] 本发明一实施例中,如图5所示的方法进一步包括:在系统停止时,根据应用与服 务绑定的顺序,按照反向顺序解除应用与服务的绑定关系,并停止相应的服务和应用。
[0072] 下面通过一个具体的示例来详细说明如图5所示的实施例。用户A是不具有部署 专业技能的用户,专业人员B是具有部署专业技能的用户。专业人员B事先会进行一次应 用1的部署。通过如图4所示的实施例,通过记录专业人员B对于应用1的部署可以得到 应用1的模型a。用户A通过界面选择需要部署应用1,此时根据图5所示的实施例,会获 取应用1的模型a。模型a中例如按照顺序存储着:应用1的名称xl、应用1的标识idl、 指令N1、指令N2、服务1的名称x2、服务1的版本v2、指令N3、服务2的名称x3、服务2的 版本v3、指令N4、绑定配置pi。其中指令N1为将名称为xl、标识为idl的应用发布到运行 环境;指令N2为创建名称为x2、版本为v2的专用服务;指令N3为在服务目录中查找名称 为x3、版本为v3的共享服务,响应于未找到创建名称为x3、版本为v3的服务;指令Μ为执 行名称为pl的绑定。按照模型中存储的指令的顺序,创建服务1、服务2,并将服务1和服 务2绑定到应用1,从而实现了应用1的自动部署。
[0073] 如图6所示,本发明一实施例提供了一种用于在云计算环境中部署复合应用的方 法。该复合应用至少包括两个子应用,第一子应用和第二子应用。该方法包括:步骤610,获 取按照上述方法实施例或其组合得到的第一子应用的模型;步骤620,获取按照上述方法 实施例或其组合得到的第二子应用的模型;步骤630,根据第一子应用的模型中的拓扑元 数据和第二子应用的模型中的拓扑元数据生成复合应用的生命周期管理信息;步骤640, 将第一子应用的模型、第二子应用的模型和复合应用的生命周期管理信息存储为该复合应 用的模型以用于该符合应用的部署。本实施例中,步骤610和步骤620之间没有特定的执 行顺序。本发明一实施例中,复合应用的生命周期管理信息例如包括以下至少之一:第一子 应用、第二子应用,第一子应用和第二子应用所需的服务的创建、启动、停止、更新和删除。 通过如图6所示的实施例提供的方法,可以得到复合应用的模型,方便用户部署复合应用。 并且,若已经存在了第一子应用或者第二子应用的模型,采用本实施例提供的方法,可以直 接获取存储好的模型,通过生成复合应用的生命周期管理信息得到复合应用的模型,简化 了具有多个子应用模块的复合应用的部署过程,充分利用了已经存在的资源。例如,应用W 包括两个子应用,一个是查询帐户信息的子应用X,一个是管理帐户信息的子应用y。由于 用户已经部署过子应用X,所以存在子应用X的模型。现在只需要部署一次子应用y,就可 以得到子应用y的模型。这样,获取子应用X和y的模型,并生成应用W的生命周期管理信 息,就可以存储X和y的模型以及应用W的生命周期管理信息形成应用W的模型。这样在 需要部署应用W的时候可以根据其模型实现自动部署。模块化的形成复合应用的模型可以 提高用户感受,方便用户部署大型的、子应用多的各种复合应用。并且,模块化的形成复合 应用的模型可以使得已经存在的子应用的模型得到重用,减少了再次生成子应用所需要的 人力资源。
[0074] 本发明上述实施例之间可以彼此参照、结合,得到更多的实施例,此处不再赘述。
[0075] 本发明一实施例提供了一种用于在云计算环境中部署应用的系统,该系统能够执 行上述方法实施例。以下通过图7-10,详细说明该系统的各种实现方式。
[0076] 如图7所示,本发明实施例提供了一种用于在云计算环境中部署应用的系统700。 该系统700包括:收集模块710,被配置为在用户部署应用时,收集与部署应用相关的元数 据以及指令;存储模块720,被配置为将收集到的元数据和指令存储为模型以用于该应用 的再次部署。本实施例中,所述元数据包括服务元数据、应用元数据以及拓扑元数据,其中, 所述服务元数据包括与部署该应用所需要的服务相关的元数据,所述应用元数据包括与该 应用相关的元数据,拓扑元数据包括表示所述服务与所述应用之间关系的元数据。具体的, 服务元数据、应用元数据和拓扑元数据的描述和举例可以参照方法实施例,此处不再赘述。 通过本实施例提供的系统700可以帮助非专业人员实现自动的应用部署,降低了部署应用 的专业技能需求,并且避免了重复部署所花费的资源。
[0077] 本发明一实施例中,存储模块720进一步被配置为,按照所述用户部署该应用的 操作顺序,将收集到的元数据和指令存储起来形成模型以用于该应用的再次部署。
[0078] 本发明一实施例中,如图8所示,存储模块720包括以下子模块中的至少一个: 第一去除子模块721,被配置为对收集到的元数据和指令进行分析,去除冗余的元数据和 指令,并按照所述用户部署该应用的操作顺序,将去除冗余后的元数据和指令存储起来形 成模型以用于该应用的再次部署;第二去除子模块722,被配置为按照所述用户部署该应 用的操作顺序,将收集到的元数据和指令存储起来,并对存储起来的元数据和指令进行分 析,去除冗余的元数据和指令形成模型以用于该应用的再次部署;第一合并子模块723,被 配置为对收集到的元数据和指令进行分析,合并无效的元数据和指令,并按照所述用户部 署该应用的操作顺序,将合并后的元数据和指令存储起来形成模型以用于该应用的再次部 署;第二合并子模块724,被配置为按照所述用户部署该应用的操作顺序,将收集到的元数 据和指令存储起来,并对存储起来的元数据和指令进行分析,合并无效的元数据和指令形 成模型以用于该应用的再次部署。本领域技术人员可以理解,在上述子模块均存在的情况 下,可以仅启用部分的子模块,也可以全部启用。在全部启用的情况下,每个子模块可以处 理相同的对象也可以处理不同的对象。
[0079] 本发明一实施例中,如图7所示的实施例还可以包括更新模块,被配置为:响应于 所述用户向已经部署完毕的所述应用再进行部署相关操作,收集该操作涉及的元数据和指 令,并将该操作涉及的元数据和指令更新到所述模型,其中所述操作涉及的元数据包括该 操作涉及的服务元数据、该操作涉及的应用元数据以及该操作涉及的拓扑元数据中的至少 一个。
[0080] 如图9所示,本发明一实施例提供了一种用于在云计算环境中部署应用的系统 900。该系统900包括:获取模块910,被配置为获取模型,该模型为根据上述方法实施例或 者由上述装置实施例得到的模型;服务模块920,被配置为根据模型中的指令和服务元数 据准备部署该应用所需的服务;应用模块930,被配置为根据模型中的指令和应用元数据 将该应用发布到运行环境;绑定模块940,被配置为根据模型中的指令和拓扑元数据将准 备好的服务绑定到应用。本实施例中,服务模块920与绑定模块940之间的工作合作可以 是服务模块920每准备好一个服务,绑定模块940就进行绑定,也可以是服务模块920准备 好多个服务之后,绑定模块940将多个服务绑定到应用。通过本实施例提供的系统900,可 以实现应用的自动部署,避免了重复部署的人力消耗,并且能够降低部署应用的技能需求。
[0081] 本发明一实施例中,绑定模块940进一步被配置为,根据所述模型中的指令和拓 扑元数据按照所述模型中指令的顺序,将准备好的服务绑定到该应用。
[0082] 本发明一实施例中,服务模块920进一步被配置为,根据所述模型中的指令和服 务元数据按照所述模型中指令的顺序,准备部署该应用所需的服务。
[0083] 本发明一实施例中,服务模块920包括以下子模块之一或其任意组合:专用子模 块,被配置为根据所述模型中的指令和服务元数据,对于专用服务,创建一个新的专用服 务;共享子模块,被配置为根据所述模型中的指令和服务元数据,对于共享服务,若该共享 服务已经存在,则使用该已经存在的共享服务,若该共享服务不存在,则创建一个新的共享 服务;以及外部子模块,被配置为根据所述模型中的指令和服务元数据,对于外部服务引 用,创建一个新的外部服务引用。
[0084] 如图10所示,本发明实施例提供了一种用于在云计算环境中部署复合应用的系 统1000。其中复合应用至少包括第一自应用和第二子应用。系统1000包括:获取模块1010, 被配置为获取第一子应用和第二子应用的模型,其中第一子应用和第二子应用的模型根据 上述方法实施例或者装置实施例得到;生命周期管理模块1020,被配置为根据所述第一子 应用的模型中的拓扑元数据和所述第二子应用的模型中的拓扑元数据生成所述复合应用 的生命周期管理信息;存储模块1030,被配置为将所述第一子应用的模型、所述第二子应 用的模型以及所述生命周期管理信息存储为所述复合应用的模型以用于所述复合应用的 部署。通过本实施例提供的系统1000,用户可以复用已经存在的子应用的模板从而得到复 合应用的模板,实现复合应用的部署,避免了复合应用部署的重复工作,也降低了部署复合 应用的技能需求。
[0085] 上述装置实施例中的实现细节可以参照相应的方法实施例。并且,上述装置实施 例之间可以彼此参照得到更多的示例。
[0086] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以 代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以 基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行 规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的 组合来实现。
[0087] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也 不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技 术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨 在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领 域的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1. 一种用于在云计算环境中部署应用的方法,所述方法包括: 在用户部署应用时,收集与部署应用相关的元数据以及指令,所述元数据包括服务元 数据、应用元数据以及拓扑元数据,其中,所述服务元数据包括与部署该应用所需要的服务 相关的元数据,所述应用元数据包括与该应用相关的元数据,拓扑元数据包括表示所述服 务与所述应用之间关系的元数据; 将收集到的元数据和指令存储为模型以用于该应用的再次部署。
2. 根据权利要求1所述的方法,其中, 所述服务元数据包括以下之一或其任意组合:服务的类型、服务的名称、服务的ID、月艮 务的版本和服务的配置; 所述应用元数据包括以下之一或其任意组合:应用的类型、应用的名称、应用的ID和 应用的配置; 所述拓扑元数据包括以下之一或其任意组合:应用的ID、服务的ID、应用的名称、服务 的名称、绑定配置以及绑定策略。
3. 根据权利要求1所述的方法,其中,所述将收集到的元数据和指令存储为模型以用 于该应用的再次部署,包括:按照所述用户部署该应用的操作顺序,将收集到的元数据和指 令存储起来形成模型以用于该应用的再次部署。
4. 根据权利要求1所述的方法,其中,所述将收集到的元数据和指令存储为模型以用 于该应用的再次部署,包括以下至少之一: 对收集到的元数据和指令进行分析,去除冗余的元数据和指令; 按照所述用户部署该应用的操作顺序,将去除冗余后的元数据和指令存储起来形成模 型以用于该应用的再次部署;以及 按照所述用户部署该应用的操作顺序,将收集到的元数据和指令存储起来;对存储起 来的元数据和指令进行分析,去除冗余的元数据和指令形成模型以用于该应用的再次部 署; 对收集到的元数据和指令进行分析,合并无效的元数据和指令;按照所述用户部署该 应用的操作顺序,将合并后的元数据和指令存储起来形成模型以用于该应用的再次部署; 按照所述用户部署该应用的操作顺序,将收集到的元数据和指令存储起来;对存储起 来的元数据和指令进行分析,合并无效的元数据和指令形成模型以用于该应用的再次部 署。
5. 根据权利要求1所述的方法,其中,所述方法进一步包括:响应于所述用户向已经部 署完毕的所述应用再进行部署相关操作,收集该操作涉及的元数据和指令,并将该操作涉 及的元数据和指令更新到所述模型,其中所述操作涉及的元数据包括该操作涉及的服务元 数据、该操作涉及的应用元数据以及该操作涉及的拓扑元数据中的至少一个。
6. -种用于在云计算环境中部署应用的方法,所述方法包括: 获取按照权利要求1-5中任一项所述的方法得到的模型; 根据所述模型中的指令和服务元数据准备部署该应用所需的服务; 根据所述模型中的指令和应用元数据将该应用发布到运行环境; 根据所述模型中的指令和拓扑元数据将准备好的服务绑定到该应用。
7. 根据权利要求6所述的方法,其中, 所述根据所述模型中的指令和服务元数据准备部署该应用所需的服务,包括:根据所 述模型中的指令和服务元数据按照所述模型中指令的顺序,准备部署该应用所需的服务; 所述根据所述模型中的指令和拓扑元数据将准备好的服务绑定到该应用,包括:根据 所述模型中的指令和拓扑元数据按照所述模型中指令的顺序,将准备好的服务绑定到该应 用。
8. 根据权利要求6所述的方法,其中,所述根据所述模型中的指令和服务元数据准备 部署该应用所需的服务,包括以下之一或其任意组合: 根据所述模型中的指令和服务元数据,对于专用服务,创建一个新的专用服务; 根据所述模型中的指令和服务元数据,对于共享服务,若该共享服务已经存在,则使用 该已经存在的共享服务,若该共享服务不存在,则创建一个新的共享服务; 根据所述模型中的指令和服务元数据,对于外部服务引用,创建一个新的外部服务引 用。
9. 一种用于在云计算环境中部署复合应用的方法,所述复合应用至少包括第一子应用 和第二子应用,所述方法包括: 获取按照权利要求1-5中任一项所述的方法得到的所述第一子应用的模型; 获取按照权利要求1-5中任一项所述的方法得到的所述第二子应用的模型; 根据所述第一子应用的模型中的拓扑元数据和所述第二子应用的模型中的拓扑元数 据生成所述复合应用的生命周期管理信息; 将所述第一子应用的模型、所述第二子应用的模型以及所述生命周期管理信息存储为 所述复合应用的模型以用于所述复合应用的部署。
10. -种用于在云计算环境中部署应用的系统,所述系统能够执行权利要求1-9中任 一项所述的方法。
【文档编号】H04L29/08GK104253831SQ201310259539
【公开日】2014年12月31日 申请日期:2013年6月26日 优先权日:2013年6月26日
【发明者】杨博, 毛新生, 谭佳, 李彤 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1