CN105100127B - 用于验证在云计算环境中的应用部署拓扑的设备和方法 - Google Patents

用于验证在云计算环境中的应用部署拓扑的设备和方法 Download PDF

Info

Publication number
CN105100127B
CN105100127B CN201410161440.5A CN201410161440A CN105100127B CN 105100127 B CN105100127 B CN 105100127B CN 201410161440 A CN201410161440 A CN 201410161440A CN 105100127 B CN105100127 B CN 105100127B
Authority
CN
China
Prior art keywords
script
virtual machine
emulator
bag
cloud computing
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
CN201410161440.5A
Other languages
English (en)
Other versions
CN105100127A (zh
Inventor
王越
李欣
刘琪
张春晓
李伟锋
杜耕
王强
冯冲
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
Priority to CN201410161440.5A priority Critical patent/CN105100127B/zh
Priority to US14/669,067 priority patent/US9448832B2/en
Publication of CN105100127A publication Critical patent/CN105100127A/zh
Priority to US15/210,035 priority patent/US9996336B2/en
Priority to US15/987,097 priority patent/US10324709B2/en
Application granted granted Critical
Publication of CN105100127B publication Critical patent/CN105100127B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

本发明涉及用于验证在云计算环境中的应用部署拓扑的设备和方法。提供了一种用于验证在云计算环境中的应用部署拓扑的设备,包括:拓扑纲要产生器,被配置为基于用户创建的部署其应用所需的多个虚拟机和在虚拟机上运行的脚本包、以及用户设置的所述脚本包的运行顺序和所述脚本包之间的数据依赖性,产生拓扑纲要,该拓扑纲要至少包括各虚拟机的脚本包中的脚本和脚本包的运行顺序;以及仿真器,被配置为在该设备处仿真在云计算环境中的运行时环境,从而针对所述拓扑纲要来验证所述运行顺序和数据依赖性,其中所述仿真器是利用从云计算环境取回的仿真器安装包而安装在该设备中的。

Description

用于验证在云计算环境中的应用部署拓扑的设备和方法
技术领域
本发明一般地涉及计算机领域,更具体地说,涉及一种用于验证在云计算环境中的应用部署拓扑的设备和方法。
背景技术
PaaS是Platform-as-a-Service的缩写,意思是平台即服务,是把服务器平台作为一种服务来提供的商业模式。通过网络进行软件程序提供的服务称之为SaaS(软件即服务,Software as a Service),而在云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS。PaaS所提供的服务与其他的服务最根本的区别是PaaS提供的是一个基础平台,而不是某种应用。在传统的观念中,平台是向外提供服务的基础。一般来说,平台作为应用系统部署的基础,是由应用服务提供商搭建和维护的,而PaaS颠覆了这种概念,由专门的平台服务提供商搭建和运营该基础平台,并将该平台以服务的方式提供给应用系统运营商。
开发者(PaaS的用户)可以部署复杂的拓扑来安装中间件、应用、云服务等。开发者例如利用集成开发环境创建拓扑模型,该拓扑模型对应于应用在硬件服务器中的一种部署。图4示出了部署拓扑模型与硬件服务器之间的对应关系的一个例子。在图4的上部示出了三个虚拟机(VM),其中虚拟机定制节点(Custom Node)在图4的下部的实际部署中被部署在两台服务器上。
通常,需要在各个虚拟机上分别运行脚本包来完成部署。图5示出了在三个虚拟机上运行脚本包以部署应用的例子的示图。在图5中,在虚拟机(VM)Dmgr(部署管理器)中要执行脚本包“1安装应用服务器二进制文件”(1.Install Application Server Binaries)、“2创建Web服务器”(2.Create Web Server)、“4把成员添加到集群”(4.Add Member toCluster);在虚拟机(VM)Custom Node(定制节点)中要执行脚本包“1安装应用服务器二进制文件”、“3把定制节点添加到Dmgr”(3.Add Custom Node to Dmgr);在虚拟机(VM)HTTP服务器中要执行脚本包“1安装HTTP服务器二进制文件”。在图5中,例如,虚拟机Dmgr中的脚本包2的执行需要虚拟机HTTP服务器中的脚本包1的输出参数IHS_IP作为其输入参数,虚拟机Custom Node中的脚本包3的执行需要虚拟机Dmgr中的脚本包2的4个输出参数(DMGR_IP、DMGR_PORT、DMGR_USERNAME、DMGR_PASSWORD)作为其输入参数,并且虚拟机Dmgr中的脚本包4需要在虚拟机Custom Node中的脚本包3之后执行。因此,这些脚本包需要按特定的顺序执行。图5中利用虚线箭头示出了跨虚拟机的脚本包的执行顺序,利用从虚线箭头引出的气泡示出了脚本包之间的数据依赖性。
用户在设计期间设置所述顺序和数据依赖性,但是目前仅在运行时,例如在各虚拟机被启动后,才能验证所述顺序和数据依赖性。也就是说,目前需要在实际部署中进行验证。然而,在运行时来验证虚拟机的脚本包的顺序和数据依赖性需要花费很长的时间。例如,BPM(Business Process Management,业务流程管理)Pattern的部署需要花费大约1小时20分钟,并且它具有复杂的执行顺序和数据依赖性。在部署时,一些脚本包可能没有导出需要的数据,因此依赖于这些脚本包的其它脚本包的运行将会出现错误。需要用户从大量的日志文件以及多个虚拟机中找出错误原因,这是非常耗时且繁琐的工作。而且,在找出错误的情况下,需要在改正错误(例如,修改脚本包)后,重新进行耗时的部署,而在这个过程中,可能还会遇到其它错误。简而言之,在目前,PaaS的用户进行的应用部署非常耗时。
发明内容
为了解决上述问题,本发明的目的之一是提供一种能够在部署到云计算环境之前验证在云计算环境中的应用部署拓扑的设备和方法。
根据本发明的一方面,提供了一种用于验证在云计算环境中的应用部署拓扑的设备,包括:拓扑纲要产生器,被配置为基于用户创建的部署其应用所需的多个虚拟机和在虚拟机上运行的脚本包、以及用户设置的所述脚本包的运行顺序和所述脚本包之间的数据依赖性,产生拓扑纲要,该拓扑纲要至少包括各虚拟机的脚本包中的脚本和脚本包的运行顺序;以及仿真器,被配置为在该设备处仿真在云计算环境中的运行时环境,从而针对所述拓扑纲要来验证所述运行顺序和数据依赖性,其中所述仿真器是利用从云计算环境取回的仿真器安装包而安装在所述设备中的。
根据本发明的另一方面,提供了一种用于在一设备处验证在云计算环境中的应用部署拓扑的方法,包括:基于用户创建的部署其应用所需的多个虚拟机和在虚拟机上运行的脚本包、以及用户设置的所述脚本包的运行顺序和所述脚本包之间的数据依赖性,产生拓扑纲要,该拓扑纲要至少包括各虚拟机的脚本包中的脚本和脚本包的运行顺序;以及配置仿真器以在所述设备处仿真在云计算环境中的运行时环境,从而针对所述拓扑纲要来验证所述运行顺序和数据依赖性,其中所述仿真器是利用从云计算环境取回的仿真器安装包而安装在所述设备中的。
采用根据本发明的用于验证在云中的部署拓扑的设备和方法,能够为PaaS的用户在相对于云服务器平台的客户端侧提供一种轻量的工具以帮助用户快速且容易地验证运行时的执行顺序和数据依赖性。另外,根据本发明的设备和方法能够把部署验证工作负荷从云平台侧卸载到客户端侧,从而提高了云平台的性能。此外,根据本发明的设备和方法能够节省从云平台的大量日志以及许多的运行时虚拟机找出部署时的出错原因所花费的大量时间。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1表示根据本发明一实施例的云计算节点;
图2表示根据本发明一实施例的云计算环境;
图3表示根据本发明一实施例的抽象模型层;
图4示出了部署拓扑模型与硬件服务器之间的对应关系的例子;
图5是示出了用于部署应用的拓扑设计的图形表示的例子的示图;
图6是示出了根据本发明的一个实施例的用于验证在云计算环境中的应用部署拓扑的设备的示意图;
图7示出了由拓扑纲要产生器产生的树形文件夹形式的拓扑纲要的例子;
图8示出了虚拟机Dmgr中的脚本包文件夹“2_Create_Web_Server”下的脚本文件的示例性内容;
图9A示出了报告器向用户报告数据依赖性错误的例子;
图9B示出了报告器向用户报告语法错误或拼写错误的例子;以及
图10是示出了根据本发明实施例的用于在设备100处验证在云计算环境中的应用部署拓扑的方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如系统;系统;IBM系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如应用服务器软件;数据库软件,例如数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及移动桌面。
本发明涉及虚拟层62。
图6是示出了根据本发明的一个实施例的用于验证在云计算环境中的应用部署拓扑的设备100的示意图。设备100可以是能够运行虚拟机的任何计算设备。在一个实施例中,设备100可以是相对于云服务器平台(云计算环境)的客户端。在图6中,设备100包括拓扑纲要产生器110和仿真器120。拓扑纲要产生器110被配置为基于用户创建的部署其应用所需的多个虚拟机和在虚拟机上运行的脚本包、以及用户设置的所述脚本包的运行顺序和所述脚本包之间的数据依赖性,产生拓扑纲要,该拓扑纲要至少包括各虚拟机的脚本包的脚本和脚本包的运行顺序。仿真器120被配置为在设备100处仿真在云计算环境中的运行时环境,从而针对所述拓扑纲要来验证所述运行顺序和数据依赖性。所述仿真器是利用从云计算环境取回的仿真器安装包而安装在设备100中的。
在本发明的一个实施例中,用户可以利用位于设备100中的集成开发环境中的拓扑设计器的GUI(图形用户界面),通过例如拖放、连接等操作,创建虚拟机和脚本包,并且可以定义脚本包的运行顺序和脚本包之间的数据依赖性。例如,用户首先创建部署其应用所需的多个虚拟机。例如,如图4的上部所示,用户在这个例子中以图形的形式创建了三个虚拟机。在另一个实施例中,例如,用户创建的虚拟机和脚本包可以为诸如表格等的数据结构。然后,用户在拓朴设计器中创建在各虚拟机上运行的脚本包,并且定义脚本包的运行顺序和脚本包之间的数据依赖性。图5是利用拓扑设计器得到的拓扑设计的一个例子。该拓扑设计包括用户创建的多个虚拟机和在虚拟机上运行的脚本包的图形表示(如图5中的圆角矩形所示)。该拓扑设计还包括用户设置的脚本包的运行顺序(如图5中的虚线所示)和脚本包之间的数据依赖性(如图5中的矩形气泡所示)。
提供图形界面的拓扑设计器简化了用户的设计难度。例如,Pivotal公司的Pivotal One以及VMware公司的Cloud Foundry等产品提供具有如上所述的功能的拓扑设计器。
拓扑纲要产生器110基于所述拓扑设计,产生拓扑纲要,该拓扑纲要至少包括各虚拟机的脚本包中的脚本和脚本包的运行顺序。在本发明的一个实施例中,拓扑纲要可以是树形文件夹的形式。它包括虚拟机和脚本包。具体地,每个虚拟机对应于根文件夹下的一个虚拟机文件夹,在虚拟机上运行的每个脚本包对应于该虚拟机文件夹下的一个子文件夹,并且每个子文件夹下包含一个脚本。
例如,图7示出了由拓扑纲要产生器110产生的树形文件夹形式的拓扑纲要的例子。图7中的拓扑纲要是由拓扑纲要产生器110基于图5中的拓扑设计产生的。具体地,根文件夹“VMs”下包括三个虚拟机文件夹(文件夹图标上具有标记V),这三个虚拟机文件夹的名称为VM_CustomNode、VM_Dmgr、VM_HTTPServer,并且分别对应于图5中的虚拟机CustomNode、虚拟机Dmgr以及虚拟机HTTP服务器。在虚拟机文件夹下包括对应于在该虚拟机上运行的各个脚本包的子文件夹(文件夹图标上具有标记S)。例如,在图7中,在虚拟机文件夹下包括两个子文件夹1_Install_Application_Binaries、3_Add_Custom_Node_to_Dmgr,它们分别对应于图5中的虚拟机Custom Node中的两个相应的脚本包。另外,在与脚本包对应的每个子文件夹下包含一个脚本文件。上述这些子文件夹的名称中所包含的序号代表了各虚拟机的脚本包的运行顺序。在图7中,所述脚本文件例如为run.py。该脚本的名称仅仅是示例性的,在其它实施例中还可以采用任何其它名称。
图8示出了虚拟机Dmgr中的脚本包文件夹“2_Create_Web_Server”下的脚本“run.py”的示例性内容。脚本包括用于从外部得到输入参数的导入方法、以及用于把参数导出到外部的导出方法。脚本还可以包括用于具体执行脚本的功能的执行方法。在图8示出的脚本“run.py”的例子中,导入方法import()被用于从外部(即,环境)得到输入参数,诸如初始参数;执行方法implement()被用于具体执行脚本的功能,诸如安装中间件二进制文件等;并且导出方法export()被用于把参数导出到外部,以供其它脚本包使用。
在一个实施例中,所述脚本是缺省脚本(即,设备100自动生成的脚本),并且设备100还可以包括编辑器。该编辑器可被用户用来对所述缺省脚本的至少一部分进行编辑。例如,用户可以使用该编辑器对图8中的脚本中的implement()方法进行编辑,以添加执行内容,诸如安装中间件二进制文件的代码等。在图8中,implement()方法的功能为安装Web服务器,这部分代码可以由用户通过编辑器添加并且在图8中被省略。在图8中的implement()方法中,包括了对要导出的四个参数进行赋值的代码。
在以上给出的例子中,导入方法、执行方法和导出方法的名称并不限于import()、implement()和export()。还可以采用其它名称,只要能够识别并且能够起同样的作用即可。
在上面的例子中,以树形文件夹的形式对拓扑纲要进行了描述。在另一个实施例中,拓扑纲要可以具有其它形式,诸如XML文件或者图形表示等。
在由拓扑纲要产生器110产生拓扑纲要后,仿真器120在设备100处仿真在云中的运行时环境,从而针对所述拓扑纲要来验证所述运行顺序和数据依赖性。
仿真器120是利用从云计算环境取回的仿真器安装包而安装在设备100中的。在根据本发明的一个实施例中,仿真器安装包响应于云环境的改变而在云侧被更新。所以,从云侧(云平台)下载的仿真器安装包总是能够反映当前的云平台的运行时环境。在一个实施例中,当在云平台处仿真器安装包被更新时会通知设备100进行下载。在一个实施例中,仿真器安装包为二进制文件的形式;在另一个实施例中,仿真器安装包为可解释执行或可编译执行的代码的形式。在仿真器安装包被下载到设备100之后,在设备100处进行安装和设置,从而实现仿真器120。在根据本发明的一个实施例中,仿真器120被实现为设备100中的集成开发环境中的一个或一组按钮,通过按下所述按钮来执行仿真。在另一个实施例中,仿真器120被实现为设备100中的一个独立的模块。
在根据本发明的一个实施例中,仿真器120被配置为对于每个虚拟机通过启动一个进程或线程来进行所述仿真。以下,将仅以线程为例进行说明,但是显然进程也包含在本发明的范围内。
将以图5和图7中的情况作为例子进行说明。对于图5和图7中的例子,仿真器120启动三个线程来仿真图5中的三个虚拟机。在根据本发明的一个实施例中,验证所述运行顺序包括按照所述拓扑纲要中包括的运行顺序在相应的进程或线程中依次执行各个脚本。具体地,启动的各个线程按照图7中的脚本包文件夹的名称中的序号的顺序执行该脚本包中的脚本文件。例如,三个线程(线程1对应于VM Custom Node,线程2对应于VM Dmgr,线程3对应于VM HTTP服务器)并行地执行文件夹VM_CustomNode\1_Install_Application_Binaries、VM_Dmgr\1_Install_Application_Binaries、1_Install_HTTP_Server_Binaries下的脚本文件。在线程3执行完1_Install_HTTP_Server_Binaries文件夹下的脚本文件之后,线程2才执行2_Create_Web_Server文件夹下的脚本文件;在线程2执行2_Create_Web_Server文件夹下的脚本文件之后,线程1才执行3_Add_Custom_Node_to_Dmgr文件夹下的脚本文件;在线程1执行3_Add_Custom_Node_to_Dmgr文件夹下的脚本文件之后,线程2才执行4_Add_Member_to_Cluster文件夹下的脚本文件。
在根据本发明的一个实施例中,验证数据依赖性包括运行各脚本中的导入方法和导出方法,以检查定义在所述导入方法和导出方法中的参数。例如,检查定义在所述导入方法和导出方法中的参数包括检查所述参数的个数、名称和值约束中的至少一个。将以图5和图7中的情况作为例子进行说明。在图5和图7中,3_Add_Custom_Node_to_Dmgr文件夹下的脚本文件需要在2_Create_Web_Server文件夹下的脚本文件之后执行,并且它们之间具有数据依赖性,具体地说,需要传递四个参数(参照图5)。假定2_Create_Web_Server文件夹下的脚本文件的export()方法为:
def export():
sys.export[‘DMGR_IP’]
sys.export[‘DMGR_PORT’]
而3_Add_Custom_Node_to_Dmgr文件夹下的脚本文件的import()方法为:
def import():
DMGR_IP=sys.parameters[‘DMGR_IP’]
DMGR_PORT=sys.parameters[‘DMGR_PORT’]
DMGR_USERNAME=sys.parameters[‘DMGR_USERNAME’]
DMGR_PASSWORD=sys.parameters[‘DMGR_PASSWORD’]
那么,通过在设备100处的仿真,能够发现脚本包“2创建Web服务器”的导出方法仅导出了脚本包“3把定制节点添加到Dmgr”所需的4个输入参数中的两个。也就是说,按照目前的拓扑设计进行实际部署时将因不满足数据依赖性而产生错误。通过本发明的一个实施例,在实际部署前在客户端处就能发现并且解决这一问题,从而能够为实际部署节省大量时间。
在一个实施例中,除了参数的个数之外,还可以检查具有数据依赖性的脚本包的导入方法和导出方法中定义的参数的名称,以找到不匹配的参数。例如,在脚本包1的导出方法中的参数USERNAME与依赖于脚本包1的脚本包2的导入方法中的参数SUBSCRIBERNAME就属于参数名称不匹配的情况。在另一个实施例中,还可以依据参数的类型,检查脚本包之间所传递的参数的值约束,例如,IP参数应该是诸如“192.168.1.1”的以“.”分隔的四个数值的形式,PORT参数应该是一个数值,USERNAME和PASSWORD参数应该是字符串。可以将违反了值约束的参数的传递也视为不满足数据依赖性。
以上描述了对脚本文件中的导入方法和导出方法的检查。在根据本发明的一个实施例中,仿真器120被配置为不运行各脚本中的执行方法,而仅仅检查执行方法中的语法错误和拼写错误的至少一种。也就是说,仿真器120仅仅运行一个脚本文件中的导入方法和导出方法,但不运行该脚本文件中的执行方法。这样做是因为有些执行方法的功能(例如实际安装中间件)在设备100中无法执行。在云平台上部署时,导入方法、导出方法和执行方法都会被执行。通过在设备100处跳过执行方法,可以加速仿真的执行。另一方面,通过在程序级检查用户通过编辑器添加到执行方法中的内容的语法错误和/或拼写错误,能够提早发现错误,避免在实际部署时产生错误从而浪费大量时间。
在根据本发明的一个实施例中,设备100还包括报告器,该报告器被配置为向用户报告在仿真器的仿真过程中发现的以下错误中的至少一种:数据依赖性错误、语法错误、拼写错误。图9A示出了报告器向用户报告数据依赖性错误的例子。在图9A中,示出了下面的例子:在如上所述的脚本包“2创建Web服务器”的导出方法和脚本包“3把定制节点添加到Dmgr”的导入方法中的参数的个数不相等。在此情况下,仿真器120发现到该数据依赖性错误,并且报告器向用户报告该数据依赖性错误。具体地,在图9A中,报告器高亮显示(或以不同颜色显示)从脚本包“2创建Web服务器”连接到脚本包“3把定制节点添加到Dmgr”的箭头(例如显示为粗箭头),并且显示前者的输出参数以及后者的输入参数。从而用户可以容易地识别并定位数据依赖性错误。图9B示出了报告器向用户报告语法错误或拼写错误的例子。在图9B中,例如,当仿真器120在脚本包“2创建Web服务器”的脚本文件的implement()方法中发现了语法错误或拼写错误时,报告器高亮显示(或以不同颜色显示)脚本包“2创建Web服务器”的图形表示,从而用户可以通过点击该脚本包的图形表示对该脚本包的脚本进行编辑以消除其中的语法错误或拼写错误。通过这样做,避免了因用户在实现方法中添加的内容中含有语法错误或拼写错误而在实际部署时产生错误。
根据本发明的一个实施例,设备100还可以包括部署器。当仿真器120执行的仿真没有发现任何错误时,该部署器可以按所述拓扑设计将应用部署到云平台。
图10是示出了根据本发明实施例的用于在设备100处验证在云计算环境中的应用部署拓扑的方法的流程图。该验证方法包括:拓扑纲要产生步骤1010以及仿真执行步骤1020。在拓扑纲要产生步骤1010中,基于用户创建的部署其应用所需的多个虚拟机和在虚拟机上运行的脚本包、以及用户设置的所述脚本包的运行顺序和所述脚本包之间的数据依赖性,产生拓扑纲要,该拓扑纲要至少包括各虚拟机的脚本包中的脚本和脚本包的运行顺序。在仿真执行步骤1020中,配置仿真器以在所述设备处仿真在云计算环境中的运行时环境,从而针对所述拓扑纲要来验证所述运行顺序和数据依赖性,其中所述仿真器是利用从云计算环境取回的仿真器安装包而安装在所述设备中的。由于在上文中已经针对设备100对该处理流程进行了详细描述,在此不再重复说明。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (20)

1.一种用于验证在云计算环境中的应用部署拓扑的设备,包括:
拓扑纲要产生器,被配置为基于用户创建的部署其应用所需的多个虚拟机和在虚拟机上运行的脚本包、以及用户设置的所述脚本包的运行顺序和所述脚本包之间的数据依赖性,产生拓扑纲要,该拓扑纲要至少包括各虚拟机的脚本包中的脚本和脚本包的运行顺序;以及
仿真器,被配置为在该设备处仿真在云计算环境中的运行时环境,从而针对所述拓扑纲要来验证所述运行顺序和数据依赖性,其中所述仿真器是利用从云计算环境取回的仿真器安装包而安装在所述设备中的,
其中,所述仿真器安装包响应于云环境的改变而在云侧被更新。
2.根据权利要求1所述的设备,其中,所述拓扑纲要为树形文件夹的形式,每个虚拟机对应于根文件夹下的一个虚拟机文件夹,在虚拟机上运行的每个脚本包对应于虚拟机文件夹下的一个子文件夹,每个所述子文件夹下包含脚本。
3.根据权利要求1所述的设备,其中,所述脚本包括用于从外部得到输入参数的导入方法、以及用于把参数导出到外部的导出方法。
4.根据权利要求1或3所述的设备,其中,所述脚本是缺省脚本,并且所述设备还包括编辑器,该编辑器可被用户用来对所述缺省脚本的至少一部分进行编辑。
5.根据权利要求3所述的设备,其中,验证数据依赖性包括运行各脚本中的导入方法和导出方法,以检查定义在所述导入方法和导出方法中的参数。
6.根据权利要求1所述的设备,其中,所述仿真器被配置为对于每个虚拟机通过启动一个进程或线程来进行所述仿真。
7.根据权利要求6所述的设备,其中,验证所述运行顺序包括按照所述拓扑纲要中包括的运行顺序在相应的进程或线程中依次执行各个脚本。
8.根据权利要求3所述的设备,其中,所述脚本还包括用于具体执行脚本的功能的执行方法,并且所述仿真器被配置为不运行各脚本中的执行方法,而仅仅检查执行方法中的语法错误和拼写错误的至少一种。
9.根据权利要求3所述的设备,还包括报告器,该报告器被配置为向用户报告在仿真器的仿真过程中发现的以下错误中的至少一种:数据依赖性错误、语法错误、拼写错误。
10.根据权利要求5所述的设备,其中,检查定义在所述导入方法和导出方法中的参数包括检查所述参数的个数、名称和值约束中的至少一个。
11.一种用于在一设备处验证在云计算环境中的应用部署拓扑的方法,包括:
基于用户创建的部署其应用所需的多个虚拟机和在虚拟机上运行的脚本包、以及用户设置的所述脚本包的运行顺序和所述脚本包之间的数据依赖性,产生拓扑纲要,该拓扑纲要至少包括各虚拟机的脚本包中的脚本和脚本包的运行顺序;以及
配置仿真器以在所述设备处仿真在云计算环境中的运行时环境,从而针对所述拓扑纲要来验证所述运行顺序和数据依赖性,其中所述仿真器是利用从云计算环境取回的仿真器安装包而安装在所述设备中的,
其中,所述仿真器安装包响应于云环境的改变而在云侧被更新。
12.根据权利要求11所述的方法,其中,所述拓扑纲要为树形文件夹的形式,每个虚拟机对应于根文件夹下的一个虚拟机文件夹,在虚拟机上运行的每个脚本包对应于虚拟机文件夹下的一个子文件夹,每个所述子文件夹下包含脚本。
13.根据权利要求11所述的方法,其中,所述脚本包括用于从外部得到输入参数的导入方法、以及用于把参数导出到外部的导出方法。
14.根据权利要求11或13所述的方法,其中,所述脚本是缺省脚本,并且用户可利用所述设备包括的编辑器对所述缺省脚本的至少一部分进行编辑。
15.根据权利要求13所述的方法,其中,验证数据依赖性包括运行各脚本中的导入方法和导出方法,以检查定义在所述导入方法和导出方法中的参数。
16.根据权利要求11所述的方法,其中,所述仿真器被配置为对于每个虚拟机通过启动一个进程或线程来进行所述仿真。
17.根据权利要求16所述的方法,其中,验证所述运行顺序包括按照所述拓扑纲要中包括的运行顺序在相应的进程或线程中依次执行各个脚本。
18.根据权利要求13所述的方法,其中,所述脚本还包括用于具体执行脚本的功能的执行方法,并且所述仿真器被配置为不运行各脚本中的执行方法,而仅仅检查执行方法中的语法错误和拼写错误的至少一种。
19.根据权利要求13所述的方法,还包括向用户报告在仿真器的仿真过程中发现的以下错误中的至少一种:数据依赖性错误、语法错误、拼写错误。
20.根据权利要求15所述的方法,其中,检查定义在所述导入方法和导出方法中的参数包括检查所述参数的个数、名称和值约束中的至少一个。
CN201410161440.5A 2014-04-22 2014-04-22 用于验证在云计算环境中的应用部署拓扑的设备和方法 Active CN105100127B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410161440.5A CN105100127B (zh) 2014-04-22 2014-04-22 用于验证在云计算环境中的应用部署拓扑的设备和方法
US14/669,067 US9448832B2 (en) 2014-04-22 2015-03-26 Apparatus and method for validating application deployment topology in cloud computing environment
US15/210,035 US9996336B2 (en) 2014-04-22 2016-07-14 Apparatus and method for validating application deployment topology in cloud computing environment
US15/987,097 US10324709B2 (en) 2014-04-22 2018-05-23 Apparatus and method for validating application deployment topology in cloud computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410161440.5A CN105100127B (zh) 2014-04-22 2014-04-22 用于验证在云计算环境中的应用部署拓扑的设备和方法

Publications (2)

Publication Number Publication Date
CN105100127A CN105100127A (zh) 2015-11-25
CN105100127B true CN105100127B (zh) 2018-06-05

Family

ID=54322105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410161440.5A Active CN105100127B (zh) 2014-04-22 2014-04-22 用于验证在云计算环境中的应用部署拓扑的设备和方法

Country Status (2)

Country Link
US (3) US9448832B2 (zh)
CN (1) CN105100127B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105100127B (zh) 2014-04-22 2018-06-05 国际商业机器公司 用于验证在云计算环境中的应用部署拓扑的设备和方法
US10200387B2 (en) * 2015-11-30 2019-02-05 International Business Machines Corporation User state tracking and anomaly detection in software-as-a-service environments
US10691808B2 (en) * 2015-12-10 2020-06-23 Sap Se Vulnerability analysis of software components
US10380365B2 (en) * 2016-06-01 2019-08-13 Chef Software, Inc. Choreographed distributed execution of programs
JP6763245B2 (ja) * 2016-09-13 2020-09-30 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US11079909B2 (en) * 2016-12-23 2021-08-03 Salesforce.Com, Inc. Macro building tool with an information pane and a macro building pane for compiling an ordered macro and determining data dependency
US10929573B2 (en) * 2017-03-21 2021-02-23 The Boeing Company Systems and methods for designing and modeling products in a cloud environment
US10379968B2 (en) * 2017-05-05 2019-08-13 Pivotal Software, Inc. Backup and restore framework for distributed computing systems
CN107341029B (zh) * 2017-05-27 2020-06-05 北京奇艺世纪科技有限公司 系统资源部署策略的获取方法、装置及电子设备
CN110245066B (zh) * 2018-03-09 2023-04-14 财付通支付科技有限公司 应用运行环境创建方法、创建装置、电子设备及存储介质
US11074149B2 (en) * 2019-04-30 2021-07-27 At&T Intellectual Property I, L.P. Cloud simulation and validation system
CN113760439A (zh) * 2020-06-01 2021-12-07 中移(苏州)软件技术有限公司 一种虚拟机网络管理方法、装置、设备及存储介质
US11838374B2 (en) * 2021-02-12 2023-12-05 Servicenow, Inc. Remote network management infrastructure for cloud-based deployments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102281290A (zh) * 2011-07-18 2011-12-14 北京邮电大学 一种PaaS云平台的仿真系统及方法
CN103716403A (zh) * 2013-12-31 2014-04-09 曙光云计算技术有限公司 云计算环境下paas平台的saas应用部署方法和系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526421B2 (en) * 2004-02-27 2009-04-28 International Business Machines Corporation System and method for modeling LPAR behaviors in a simulation tool
CN100370465C (zh) * 2004-09-04 2008-02-20 华为技术有限公司 一种自动调度逻辑仿真与代码覆盖率分析的方法与系统
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US8291378B2 (en) * 2008-07-29 2012-10-16 International Business Machines Corporation Simplified deployment modeling
US9207921B2 (en) * 2009-06-22 2015-12-08 Oracle America, Inc. Fault tolerant compilation with automatic optimization adjustment
US8479098B2 (en) 2009-08-12 2013-07-02 Ebay Inc. Reservation of resources and deployment of applications using an integrated development environment
US20140365196A1 (en) 2010-08-25 2014-12-11 Telefonaktiebolaget L M Ericsson (Publ) Infrastructure Model Generation System And Method
EP2614432A4 (en) 2010-09-07 2014-05-14 Hewlett Packard Development Co SYSTEM AND METHOD FOR AUTOMATICALLY DEPLOYING A MULTI-COMPONENT COMPUTING ENVIRONMENT
WO2013028211A1 (en) 2011-08-19 2013-02-28 Hewlett-Packard Development Company, L.P. Providing a simulation service by a cloud-based infrastructure
US8612516B2 (en) * 2011-11-28 2013-12-17 Wyse Technology Inc. Deployment of a driver or an application on a client device having a write-filter
US9052961B2 (en) * 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US8751620B2 (en) 2012-03-30 2014-06-10 International Business Machines Corporation Validating deployment patterns in a networked computing environment
US9225604B2 (en) 2012-04-05 2015-12-29 International Business Machines Corporation Mapping requirements to a system topology in a networked computing environment
JP5953109B2 (ja) 2012-05-15 2016-07-20 株式会社日立製作所 管理サーバおよび検証方法
US9712375B2 (en) * 2012-12-12 2017-07-18 Microsoft Technology Licensing, Llc Workload deployment with infrastructure management agent provisioning
US9244656B2 (en) * 2013-03-26 2016-01-26 Sap Se Integrated development environment for heterogeneous client/server environments
CN105100127B (zh) 2014-04-22 2018-06-05 国际商业机器公司 用于验证在云计算环境中的应用部署拓扑的设备和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102281290A (zh) * 2011-07-18 2011-12-14 北京邮电大学 一种PaaS云平台的仿真系统及方法
CN103716403A (zh) * 2013-12-31 2014-04-09 曙光云计算技术有限公司 云计算环境下paas平台的saas应用部署方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PaaS云计算系统仿真平台及其数据库子系统的设计与实现;张莹光;《中国优秀硕士学位论文全文数据库 信息科技辑 2012年》;20120415(第4期);摘要 *

Also Published As

Publication number Publication date
US20150301849A1 (en) 2015-10-22
US10324709B2 (en) 2019-06-18
CN105100127A (zh) 2015-11-25
US9996336B2 (en) 2018-06-12
US20180275984A1 (en) 2018-09-27
US9448832B2 (en) 2016-09-20
US20160321062A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
CN105100127B (zh) 用于验证在云计算环境中的应用部署拓扑的设备和方法
US20220137943A1 (en) Selection of ranked configurations
CN104765620B (zh) 一种程序模块部署的方法和系统
CN104601622B (zh) 一种部署集群的方法和系统
Louridas Up in the air: Moving your applications to the cloud
CN105938525B (zh) 虚拟机设备的基于目录的发现
US11089000B1 (en) Automated source code log generation
CN104424012B (zh) 用于提供自定义虚拟装置的方法和设备
CN105224301B (zh) 一种应用实例组装的方法和系统
Foulds Learn Azure in a month of lunches
CN104021027B (zh) 提供虚拟装置的方法和设备
US11640281B2 (en) Tool for introspection in object-oriented source code
US11645193B2 (en) Heterogeneous services for enabling collaborative logic design and debug in aspect oriented hardware designing
US20230289158A1 (en) Instantiated deployment of microservices
Naumann et al. Towards more realistic network simulations: Leveraging the system-call barrier
Zurowska et al. A customizable execution engine for models of embedded systems
Kedambadi Shreekar Automated Dockerization of Python based Web Apps
Knape Dynamic Automated Selection and Deployment of Software Components within a Heterogeneous Multi-Platform Environment
Mendez Ayerbe Design and development of a framework to enhance the portability of cloud-based applications through model-driven engineering
Ewart Chef Essentials

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant