CN103930863A - 可轻松云化的应用的基于发现的标识和迁移 - Google Patents

可轻松云化的应用的基于发现的标识和迁移 Download PDF

Info

Publication number
CN103930863A
CN103930863A CN201280049844.4A CN201280049844A CN103930863A CN 103930863 A CN103930863 A CN 103930863A CN 201280049844 A CN201280049844 A CN 201280049844A CN 103930863 A CN103930863 A CN 103930863A
Authority
CN
China
Prior art keywords
architecture
cloud
application
resource
business
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.)
Pending
Application number
CN201280049844.4A
Other languages
English (en)
Inventor
M·V·德瓦拉孔达
N·A·尤科夫
B·普费茨曼
S·波特
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 CN103930863A publication Critical patent/CN103930863A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/5072Grid computing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构。选择所述基础架构中的所述至少一个基础架构以便迁移到云。所述云包括基础架构即服务云和平台即服务云中的至少一个。在没有应用级更改的情况下,将所述基础架构中的所述至少一个基础架构的所述现有子结构迁移到所述云。组装业务敏捷性组件,所述业务敏捷性组件被配置为控制扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的资源。使用所述业务敏捷性组件,扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源。

Description

可轻松云化的应用的基于发现的标识和迁移
技术领域
本发明涉及电气、电子和计算机领域,更具体地说,涉及云计算等。
背景技术
云是行业中当前感兴趣的话题。当前的焦点领域是设计和实现新的应用编程模型,并且根据这些模型构建新的应用。实例是Google的映射-化简模型(可从位于美国加利福尼亚州山景城的Google Inc.获得)和Salesforce_dot_com(位于美国加利福尼亚州旧金山的Salesforce_dot_com,Inc.(“_dot_”代替“.”以避免包括浏览器可执行代码))的基于Web的标准化目录式应用模型。
大多数大型企业具有大量现有的IT支持的业务应用。这些应用对特定企业如何执行其业务的给定特定部分的多种特定方式进行编码。它们通常还随之产生大量数据,这些数据采用特定于业务应用的格式。此外,它们可能包含数百万行代码。
发明内容
本发明的原理提供了可轻松云化的应用的基于发现的标识和迁移的技术。在一个方面,一种示例性方法包括以下步骤:分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构;以及选择所述基础架构中的所述至少一个基础架构以便迁移到云。所述云包括基础架构即服务云和平台即服务云中的至少一个。其他步骤包括:在没有应用级更改的情况下,将所述基础架构中的所述至少一个基础架构的所述现有子结构迁移到所述云;组装业务敏捷性组件,所述业务敏捷性组件被配置为控制扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的资源;以及使用所述业务敏捷性组件,扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源。
在另一个方面,另一种示例性方法包括以下步骤:获得实体的多个现有应用的多个基础架构中的要迁移到云的至少一个基础架构的规范。所述至少一个基础架构包括使能经由现有复制机制而复制个体部分的现有子结构。另一个步骤包括在业务敏捷性组件模板存储库中标识至少一个通用模板,所述至少一个通用模板包括用于执行扩展和收缩所述云的要专用于所述至少一个基础架构的资源中的至少一个的指令。另一步骤包括:通过使用与所述至少一个基础架构有关的特定数据填充所述至少一个通用模板,实例化所述至少一个通用模板的特定实例;以及至少从所述特定实例来组装业务敏捷性组件,所述业务敏捷性组件被配置控制扩展和收缩所述云的专用于所述至少一个基础架构的所述资源中的至少一个。
如在此使用的,“促进”操作包括执行所述操作,使得所述操作更容易,有助于执行所述操作,或者导致执行所述操作。因此,作为实例而非限制,在一个处理器上执行的指令可以促进由在远程处理器上执行的指令执行的操作,方法是发送适当的数据或命令以便导致或帮助执行所述操作。为避免疑义,其中操作者通过执行操作之外的方法促进所述操作,尽管所述操作由某个实体或实体组合执行。
本发明的一个或多个实施例或其元素可以以计算机产品的形式实现,所述计算机产品包括计算机可读存储介质,所述计算机可读存储介质具有计算机可用程序代码以便执行指示的方法步骤。此外,本发明的一个或多个实施例或其元素可以以系统(或装置)的形式实现,所述系统(或装置)包括存储器和至少一个处理器,所述至少一个处理器耦合到所述存储器并可操作以便执行示例性方法步骤。更进一步,在另一个方面,本发明的一个或多个实施例或其元素可以以装置的形式实现,以便执行在此描述的一个或多个方法步骤;所述装置可以包括(i)硬件模块(多个),(ii)软件模块(多个),或者(iii)硬件和软件模块的组合;(i)-(iii)的任何一个都实现在此给出的特定技术,并且所述软件模块存储在计算机可读存储介质(或多个此类介质)中。
本发明的技术可以提供实质上有利的技术效果。例如,一个或多个实施例可以提供以下一个或多个优点:
●更高效的管理
●当有关应用及其底层IT基础架构的要求更改时,缩短设置时间
●更高的可靠性
●避免浪费未充分使用的处理器的能力,因为可以很容易地增加和/或减少资源数量
●更快速地实现上述优点
●自动进行关于是否值得对应用资源管理器进行编码的选择
从以下将结合附图阅读的对本发明的示例性实施例的详细描述,本发明的这些和其它特性和优点将变得显而易见。
附图说明
图1示出根据本发明的一个实施例的云计算节点;
图2示出根据本发明的一个实施例的云计算环境;
图3示出根据本发明的一个实施例的抽象模型层;
图4是根据本发明的一个方面的概述系统框图;
图5是根据本发明的一个方面的详细系统框图;
图6提供根据本发明的一个方面的应用资源管理器的示例性组件;
图7提供根据本发明的一个方面的示例性流程图;
图8提供根据本发明的一个方面的示例性应用“云化”方案;以及
图9是根据本发明的一个方面的示例性软件架构图。
具体实施方式
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理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)总线,微通道体系结构(MCA)总线,增强型ISA(EISA)总线、视频电子标准协会(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系统;IBM系统;存储器件;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源将来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及移动桌面。
一个或多个实施例有利地在云(例如IaaS或PaaS云)上实现应用资源管理器。
如上所述,基础架构即服务(IaaS)和平台即服务(PaaS)云提供基本能力以便快速部署(供应)映像,在不使用映像时隐藏映像,并且可能实时或准实时更改分配给映像的资源。但是,这不会直接应用于应用层(在此可互换称为工作负载层66),即在应用层66上,仍然需要人为观察使用情况并且确定何时以及如何可以针对应用扩展或收缩基础架构。以下应用除外:仅在相对短的时间内部署然后完全取消,如开发和测试应用。实际上,当前考虑目前最常见的应用在IaaS和PaaS云上运行。
注意,IaaS和PaaS云中的虚拟层和管理层62和64仅管理硬件并且可能管理基本软件,然而它们不管理工作负载。因此,迄今为止仍然单独管理工作负载,并且通常需要人为干预。
还如上所述,软件即服务(SaaS)云在应用层上工作,但非常明确地针对特定应用类型构建,这些应用类型例如包括IBM LotusLive解决方案(位于美国纽约阿蒙克的国际商业机器公司的商标)或者从位于美国加利福尼亚州旧金山的Salesforce_dot_com,Inc.获得的那些应用(“_dot_”代替“.”以避免包括浏览器可执行代码)。
此外,如上所述,还存在需要以特定的新程序设计模型和语言对应用进行编码的高级云,例如Amazon Web Services(位于美国华盛顿州西雅图的Amazon Web Services LLC的标志)、Microsoft Azure(位于美国华盛顿州雷德蒙德的微软公司的标志)和Hadoop(可从Apache软件基金会获得)。
一个或多个实施例有利地使具有波动或仅增加的资源需求的基本不变的普通应用很容易地使用IaaS或PaaS平台能力。
值得注意的是,还存在针对网格上下文中的动态基础架构的现有工作,但网格没有与IaaS和PaaS云相同类型的接口以便供应和管理映像,因此网格的应用管理问题不同于云。同样,较旧的大型分布式基础架构项目(例如IBM的Oceano计算实用工具动力装置项目)并不与云中的底层单独层60、62、64协同工作。
现在参考图4的简单系统概述,一个或多个实施例采用添加到IaaS或PaaS云10的普通系统的应用资源管理器组件401以及应用组件403。该应用资源管理器根据应用需要扩展和收缩云资源。
为了执行这些任务,应用资源管理器与底层IaaS或PaaS云的管理接口(即,管理层64的上部接口)交互,同时应用使用云提供的映像和其它资源。在此,单词“映像”用于IaaS云提供的纯操作系统映像以及PaaS云提供的包括中间件的映像。就图3而言,IaaS映像是虚拟服务器,并且通常具有可用、易于供应的映像目录、对应于该目录的映像文件,以及已经供应并正在运行的实际实例映像。管理层64的资源供应组件将目录提供给层66的潜在工作负载,包含映像文件,并且导致在虚拟层62中建立实例映像(虚拟服务器)。当理解该过程时,有时仅谈论“映像”。在供应给应用的映像之上,具有普通应用组件的代码、数据、配置等。换言之,未经由云管理层供应的工作负载的部分(多个)组成应用组件。
应用资源管理器使用的管理接口可以包含OSS方面(操作支持系统,例如,到资源供应组件的直接接口)和BSS方面(业务支持服务,例如,到定价组件的接口,如果在进行其它供应时需要其它支付协议)。所有这些方面可以通过用户门户过滤,但在此假设这也包含API(应用编程接口)、Web服务接口等以便由工作负载层66中的自动程序使用,或者工作负载层66的程序可直接访问到个体组件(例如资源供应)的接口。
应用资源管理器401可以从应用所有者513(在此使用的名称用于被授权预测应用需求的人员,以便将该角色与普通用户515区分开—参见图5)处了解即将发生的需求,或者可以从云管理获得的报告得出当前使用情况和趋势,以及通过观察应用获得当前使用情况和趋势。应用资源管理器401还可以了解基础架构故障,并且对它们做出反应以便达到特定可用性目标。
如果在最低程度上在至少某些实施例中需求更改,则应用资源管理器供应或隐藏映像或者更改其资源属性,例如虚拟存储或虚拟网络带宽分配。可选地,在供应的情况下,它还在新映像上供应应用级别软件和/或数据。
因此,一个或多个实施例提供一种系统,所述系统包括云10、至少一个应用组件403和应用资源管理器401,其中应用资源管理器针对应用组件扩展和/或收缩云资源以便满足应用资源需要。
在一个或多个实施例中,应用资源管理器使用IaaS或PaaS云的服务。有关这些组件及其交互的更多详细信息在图5中示出,图5提供更详细的系统概述。
应该注意,应用资源管理器401本身可能在云10上运行,也可能不在云10上运行。应用方框511是虚拟的;它指示应用资源管理器属于特定应用并且应该知晓应用结构。
继续参考图5,应用所有者513经由应用管理接口(在图3中,这是工作负载层66的上部接口,即,应用/工作负载与其用户交互的位置)与应用资源管理器401交互。应用资源管理器401与应用511关联,并且执行普通应用用户515使用的应用软件517的设置,以及监视应用软件517和对应的映像519。映像成为云运行时环境521的一部分。方框521基本上类似于图3中的虚拟层62(或连同层60、62一起),而云管理平台523类似于层64。云管理平台523管理云运行时环境521,云运行时环境521经由合适的供应接口(即,到资源供应组件的接口,直接或中间通过BSS接口和/或用户门户)与应用资源管理器401交互,并且云管理平台523还向应用资源管理器401提供使用和故障报告(这些报告例如可以来自图3的计量组件或服务水平管理组件)。
在一个或多个实施例中,应用资源管理器(例如401)的结构可以如图6中所示,其中组件提供以下示例性功能:
策略631确定长期目标,例如,可以作为应用的服务级别目标(而不是云的服务级别目标)给出的性能和可用性目标;换言之,这些是层66的目标,而不是层64的目标(作为该层实现的服务水平管理组件和SLA规划组件)。还可以将应用所有者的短期目标(例如那些与增加的性能需要的近期预测相关的目标)表达为策略。
管理组件633获得策略以及它从应用和云了解的内容,并且确定操作。这些操作具体包括向云供应、隐藏或取消供应请求,以及云管理平台允许的任何其它操作,例如扩展和收缩映像资源、实时迁移到不同服务器,或者从云中选择更高的服务级别(这例如可以包括更好的性能保证以及更高的可用性或可靠性保证)。
控制组件635将来自管理组件的抽象请求转换为与云管理平台的具体交互,所述交互例如经由应用编程接口(API)或Web服务接口。此类交互可以是多步骤序列,并且可能包括OSS和BSS级别步骤,例如选择映像大小以及选择支付方法或现有帐号。
解释组件637与控制组件相反,解释来自云的报告,例如有关应用自己的映像和其它虚拟资源以及整体云的使用信息,或者故障报告。
将控制组件和解释组件与管理组件分开的优点是应用资源管理器变得更易于适应不同的云。在图6的实例中,应用资源管理器被允许直接与应用组件交互,因为它特定于该应用。
现在将针对应用管理器的某些可能功能,提供其它非限制性的示例性详细信息。
针对监视,在某些实例中,应用管理器可以监视应用组件403及其使用情况,在应用的用户接口(其中例如可以应用应用服务水平协议(SLA))处和/或针对个体组件(例如517、519)监视;具体地说,针对那些在不同映像上部署的组件进行监视。应用管理器还可以经由云接口(即,从523)获得有关其云映像的当前使用情况的信息,和/或可以经由云接口获得有关云的当前整体使用情况的信息—这可能令人关注以便预测获得更多资源的效果(如果资源被共享)。
此外,还针对监视,在某些实例中,应用管理器可以(从523)获得有关其自己的映像故障的信息,以及云的常规可靠性;可以使用基于利用趋势的预测来估计将来需求(例如,预测每月峰值,或者预测需求的整体缓慢增加);以及/或者可以不时地由发现工具重新验证应用结构(进一步在别处讨论,并且可互换称为“重新发现”)。这些操作应用于应用的映像519和应用软件517,因为应用的用户515还可以具有特定权限以便进行更改。发现工具还可以有助于查找应用级别性能参数,例如当前数据库大小。
针对目标,在某些实例中,应用管理器可以从应用所有者处获得短期目标,这些目标对于当前性能而言是绝对或相对的。这些目标通常将应用称为整体(例如,交易吞吐量或对最终用户的响应时间),而不是指个体映像上的个体应用软件组件的性能。此外,应用管理器可以从应用所有者处获得高级目标(长期策略),例如以便始终提供特定SLA,或者始终具有特定数量的空间以用于突然更改;以及/或者它可以获得成本目标或限制,例如以便始终选择最便宜的整体资源集以提供所需的SLA,或者始终提供最好的可能性能,但仅最多到特定成本限制。
针对可能的决策,在某些实例中,应用管理器可以决定扩展和/或收缩分配给个体云映像(这些云映像被分配给应用)的资源。取决于云,这可以在适当的位置完成,或者通过将对应的应用组件517迁移到更大的映像519来完成。此外,应用管理器可以针对应用的使用,决定供应、删除或隐藏全部云映像。在这种情况下,它还应该在这些云映像上部署适当的应用软件。在这点上,应用管理器可以保留一个或多个黄金映像以用于该目的,即,已经包含应用的所有可重复部分的静止映像;以及/或者还可以使用迁移工具部署对应于当前整体应用状态的软件配置。
此外,还针对可能的决策,在某些实例中,应用管理器可以决定请求其它存储和/或网络资源,前提是云单独提供这些选择;可以决定如果它无法满足用户的当前策略或请求,则向用户发出警告;以及/或者可以定期或者在请求时向用户通知应用级别情况。
针对决策,在某些实例中,应用管理器可以通过采用优化求解器工具进行决策,或者它可以直接包含决策代码。如果云具有动态定价模式(例如,在周末成本较低),则它可以根据动态云成本进行决策。如果应用包含并非时间关键的方面并且可以在资源更便宜的时间内执行,则使用动态云成本尤其有用。
应该注意,在至少某些实例中,策略可以通过数据文件等中的参数实现,其中可以指定允许值和其它变量而不必更改底层编码(即,指定允许值或值范围的数据结构)。
针对策略方框631,在一个或多个实例中,同样确定目标或要求,或者有时确定在特定情况下应该发生什么。具体地说,它可以包含应用级别的策略(即,正式的目标和要求),例如应用级别交易的多少延迟可接受,距离可能针对多少个长时间运行的作业仍未完成而获得的最后期限有多近,或者预计有多少负载(例如,在月末)。它有时还可以包含基础架构级别策略,例如应该始终提供多少数量的空闲存储,应该在持续时间段内允许虚拟机(VM)具有什么级别的使用等。
管理方框633包括逻辑,该逻辑从策略631读取值,并获得有关系统中发生什么的数据输入(例如,在应用级别通过探测等获得,以及在解释方框637从云报告或映像级别监视获得),然后使策略631生效。实例包括确定应该分配、隐藏VM或者在其它VM上启动服务;判定是否应该增加VM的存储器和/或CPU分配;判定是否应该增加和/或减少存储;等等。
控制方框635提供到不同体系架构的接口;例如,如果云只是虚拟机软件(vmvare),则它将与vmrun接口交互以便控制VM。即,控制模块635转换来自管理模块633的指令,以便管理云资源的资源供应模块(参见图3中的层64)等可以理解这些指令。
针对解释方框637,同样提供到不同云体系架构的接口;例如,如果云只是虚拟机软件,则它可解释来自虚拟机软件接口的性能报告;以及/或者提取能够在VM内部运行的探测。在某些实例中,云可以提供映像的CPU利用率(例如参见图3的层64中的计量和定价)。管理方框633将通知解释方框637它需要所有映像的CPU利用率,方框637将转换该通知并向计量和定价方框提供所需的命令,并且将特定于云的结果转换为命令格式。在某些实例中,ARM401与它在自己的层(除了或代替云接口)上管理的映像建立连接,例如以便监视应用级别延迟(即,普通应用用户515必须等待多长时间才获得结果)或者了解长时间运行的应用的状态。在这些情况下,应用软件517可以提供IP监听服务或用于管理的Web接口,并且应用管理器建立对应的连接并发送对应的管理查询。
在某些实例中,ARM401在普通映像上具有帐户,并且可以使用该帐户登录到普通映像并执行合适的命令,以便直接从映像读出CPU利用率。在某些情况下,可以对应用进行编程以便响应合适的查询,例如在最近10分钟内执行多少个交易。
为避免疑义,“应用”在此上下文中指执行最终需要的功能(并且未由云提供)的代码,例如WEBSPHERE软件中的JAVA代码,或者DB2软件中的特定数据库模式,或者通常为这些类型代码的组合,例如提供购物车应用或差旅报告应用所需的所有代码段。探测是与其它软件通信以便获得所需值的软件块,其不同于热电偶之类的物理探测。
作为详细但非限制性实例,考虑具有(通常多个)Web服务器、应用服务器和数据库的三层体系架构。希望将针对最终用户请求的平均延迟保持在特定阈值之下。延迟可以由任何元件过载所导致。希望测量延迟以便响应请求(应用特定的,例如http服务器响应请求需要多长时间)。
在该实例中,策略方框631定义多少延迟应该可用于响应入站请求,并且可能定义系统的正常状态应该是什么。解释方框637与提供有关个体组件的信息的探测对接。管理方框633使用策略方框631和来自解释方框637的数据以及与应用软件的直接通信而做出决策,例如以便增加处理入站请求的VM数量以降低延迟(如果延迟过高),从而可能确定3个层中的哪个层是瓶颈以及需要被增加。管理方框633与控制方框635对接以便指示云克隆现有主模板VM并使其在线,然后负责将适当的数据放在云上并将其绑定到应用,以便它可以承担负载。
相反,如果延迟远低于界限并且VM数量多于正常稳定状态数量(按照策略631),则管理633可以指示控制635缓慢关闭VM,并且负责重设应用,以便例如通过修改应用级别负载平衡器策略,由剩余VM处理所有工作负载。
作为有关该非限制性实例的进一步详细信息,策略631定义多少延迟应该可用于响应入站请求以及系统的正常状态应该是什么:
这将设置以下策略:一分钟内的平均延迟不应该高于500毫秒。通常,如果将发生这种情况,则应该分配更多机器。如上讨论的,管理模块633中的逻辑从探测获得数据,检查策略631,并且如果违反任何策略,则采取适当的操作;将实现相同操作的指令发送到控制方框635,指令在控制方框635处被转换,也如上所述。
管理方框633还可以针对每个个体应用软件组件517运行微测试。
管理方框633然后可选地实施逻辑以便尝试确定什么层导致延迟。它能够在每个层上执行微基准测试,这不会影响任何其它层。例如,它可以从Web服务器取回静态网页以便仅测量Web服务器的延迟。它可以针对应用服务器执行不触及数据库的简单查询,以及简单的数据库查询。这些操作使它能够确定哪个组件过载以及解释方框637提供的VM级别测量,并且因此确定哪个组件需要增加大小。在这点上,注意可以单独使用测量,可以单独使用微基准测试,或者可以同时使用这两者。此外,微基准测试例如可以基于运行良好的系统上的预测试以便获知期望值。
例如,如果管理方框633确定Web服务器前端过载并且最佳决策是添加更多的前端,则它将指示控制方框635分配新VM,然后将任何必需的其它软件和应用数据放在该VM上并将该VM集成到应用中。
如果云仅是虚拟机软件,则控制方框635将Web服务器前端的黄金主VM复制到新VM。它然后使用虚拟机软件API的RegisterVm()功能将VM添加到VM基础架构。一旦添加,控制方框635就使用API连接到新VM并使用其Start()方法引导机器。管理方框633然后将该VM添加到处理前端职责的机器集群。在更简单的实例中,可以增加机器的大小。
在另一个非限制性实例中,考虑监视存储使用。策略631定义应该提供多少数量的空闲存储以及多少是过多的空闲存储。解释方框637与普通接口(du、df、quota、…)对接以便确定空闲空间的数量。管理方框633使用这些信息判定是否提供足够(或过多)的空闲空间。管理方框633根据策略指示控制方框635分配更多的空闲空间(或减少空闲空间)。合适的命令可以采取“increase-disk<image id><disk id><size>”的形式。
例如,某些VM可能能够运行一个或多个服务,具体取决于VM的负载。在某些实例中,然后可以(从VM基础架构)监视VM负载,并且在每个VM中具有探测以便监视个体服务的资源使用(CPU、I/O),从而了解每个个体服务正在使用多少资源。
策略631可以确定应该允许VM在多少持续负载下运行,以及在VM上运行的个体服务应被允许多少持续负载。解释方框637与VM基础架构负载监视(整体VM负载)和VM内部的探测(以便监视每个个体服务的OS级别负载测量)对接。管理方框633可以进行决策以拆分VM,以便如果个体VM上的负载过高,则可以在独立VM上运行个体服务,并且如果负载减少,则可以将个体服务再次组合在一起。它与控制方框635对接以便根据需要启动新VM或关闭现有VM,以及关闭或启动在个体VM上运行的服务。
在另一个非限制性实例中,考虑增加VM的存储器和CPU使用。策略631确定应该在单个机器上允许多少持续存储器和CPU负载。解释方框637获得CPU使用和空闲存储器的报告,并且将其提供给管理方框633。管理方框633可以决定增加(或减少)个体VM的CPU和存储器分配。它指示控制方框635执行该操作。控制方框635可以关闭VM(如果需要,某些VM支持热插拔CPU),重新配置VM以便增加CPU数量和分配的存储器,并且使用VM体系架构的接口(例如:在虚拟机软件上:vmrun;以及手动或经由API编辑VM的配置文件)重新启动VM。
在更进一步的非限制性实例中,考虑指定每月的允许停机时间的情况。应用管理器可以记录一个月内到目前为止的总停机时间;如果它注意到接近允许的限制,则将使用控制组件635订购其它资源。
以下是用于供应服务器和增加存储的非限制性的示例性实际命令:
provision<template/base id name><new id name>>
increase-disk<id name><size>
在另一个方面,一个或多个实施例解决将现有业务应用迁移到云式模型,即迁移到其中业务应用可以根据业务需要轻松扩展和收缩的IT基础架构。这也称为业务敏捷性,并且通常仅根据业务应用实际使用的资源而与成本或定价关联。
因此,一个或多个实施例提供可轻松云化的应用的基于发现的标识和迁移。如上所述,云是行业中当前感兴趣的话题。当前的焦点领域是设计和实现新的应用编程模型,并且根据这些模型构建新的应用。实例是Google的映射-化简模型(可从位于美国加利福尼亚州山景城的Google Inc.获得)和Salesforce_dot_com(位于美国加利福尼亚州旧金山的Salesforce_dot_com,Inc.(“_dot_”代替“.”以避免包括浏览器可执行代码))的基于Web的标准化目录式应用模型。
尽管这些努力适合于一系列新的应用,但大多数大型企业具有大量现有的IT支持的业务应用。这些应用对特定企业如何执行其业务的给定特定部分的多种特定方式进行编码。它们通常还随之产生大量数据,这些数据采用特定于业务应用的格式。此外,它们可以包含数百万行代码。由于这些原因,很少有企业可以承受以新的编程模型完全重写此类应用。即使更适度的更改(例如将应用分成经由Web服务交互的模块,或者重新实现数据格式)也非常昂贵并且通常具有风险,因此大多数企业不会针对其大多数应用采取此操作。
在具有大量现有代码的情况下,上述新的应用编程模型可以具有有限的效用;有利地,本发明的一个或多个实施例可解决这些情况,并且即使当存在大量现有代码时也允许云化。
实际上,企业希望使用云的承诺,具体地说使用业务敏捷性。一个原因是在业务级别:意想不到的领域的快速业务发展仅可能通过这种敏捷性实现。另一个原因是成本节省:即使可以预测或猜测将来需求,但是只要基础架构相对稳定,就必须预先扩展基础架构,并且在高峰之后可能不会再次减少基础架构。这将浪费资源。
当前或不久将来的一个选择是迁移到基础架构即服务(IaaS)云,例如Amazon Elastic Compute Cloud(Amazon EC2)Web服务,或者可从位于美国纽约阿蒙克的国际商业机器公司获得的IBM SmartCloudEnterprise。IaaS云使能快速供应操作系统映像。这是一个良好的基础。但是,它还不是业务敏捷性,因为仍然需要大量额外工作以使这些空的操作系统映像用于特定的业务应用。据信对于任何现有应用,没有可系统地执行该操作的任何当前方法。
参考图7,一个或多个实施例处理现有应用,如下所示。在步骤702,通常运行基础架构发现工具以便获得足够的信息以用于以下步骤。优选地,该工具应该能够跟踪业务应用,例如IBM研究院的Galapagos工具(例如,参见K.Magoutis、M.Devarakonda、N.Joukov和N.G.Vogl的“Galapagos:Model driven discovery of end-to-end application-storage relationships indistributed systems(Galapagos:对分布式系统中的端到端应用-存储关系进行模型驱动的发现)”(IBM J.RES.&DEV.第52卷第4/5期,2008年7月/9月,367-377页))。
以下共同受让的美国专利公开将引起发现和/或迁移领域的技术人员的兴趣,并且其所有内容在此明确引入作为参考以用于所有目的:
20110196984DISTRIBUTED PARALLEL DISCOVERY(分布式并行发现)
20110196959MIDDLEWARE-DRIVEN SERVER DISCOVERY(中间件驱动的服务器发现)
20110191454DISCOVERING PHYSICAL SERVER LOCATION BYCORRELATING EXTERNAL AND INTERNALSERVER INFORMATION(通过关联外部和内部服务器信息发现物理服务器位置)
20110107327ASSISTING SERVER MIGRATION(帮助服务器迁移)
20110055816METHOD TO DERIVE SOFTWARE USE ANDSOFTWARE DATA OBJECT USECHARACTERISTICS BY ANALYZINGATTRIBUTES OF RELATED FILES(用于通过分析相关文件的属性获得软件使用和软件数据对象使用特性的方法)
20110055806METHOD AND SYSTEM TO DISCOVER POSSIBLEPROGRAM VARIABLE VALUES BY CONNECTINGPROGRAM VALUE EXTRACTION WITHEXTERNAL DATA SOURCES(用于通过将程序值提取与外部数据源关联发现可能的程序变量值的方法和系统)
20110029946EFFICIENT EXTRACTION OF SOFTWAREDEPENDENCIES FROM PROGRAM CODE(从程序代码中高效提取软件依赖性)
20100319060PROCESS AND SYSTEM FOR COMPREHENSIVE ITDISCOVERY WITHOUT CREDENTIALS(用于在没有凭证的情况下进行全面IT发现的过程和系统)
20090307743METHOD TO AUTOMATICALLY MAP BUSINESSFUNCTION LEVEL POLICIES TO ITMANAGEMENT POLICIES(用于自动将业务功能级别策略映射到IT管理策略的方法)
20090307174CONNECTION OF VALUE NETWORKS WITHINFORMATION TECHNOLOGYINFRASTRUCTURE AND DATA VIAAPPLICATIONS AND SUPPORT PERSONNEL(通过应用和支持人员将值网络与信息技术基础架构和数据连接)
20090150472METHOD FOR NON-DISRUPTIVELYASSOCIATING APPLICATIONS ANDMIDDLEWARE COMPONENTS WITHINFORMATION TECHNOLOGYINFRASTRUCTURE(用于不中断地将应用和中间件组件与信息技术基础架构关联的方法)
20110213883SYSTEM AND METHOD FOR OBJECT MIGRATIONUSING WAVES(使用波进行对象迁移的系统和方法)
额外步骤包括针对使能复制个体部分的现有子结构分析属于每个业务应用的基础架构,并且选择属于该类型的一个或多个业务应用,如在步骤704所示。在步骤706,将应用的个体子结构迁移到IaaS云而无需应用级更改。在步骤708,组装可以执行以下一个或多个任务,并且优选地执行以下全部任务的业务敏捷性组件:
●为了理解业务需要的更改,获得有关业务级别扩展或收缩需求的输入,或者分析当前业务性能是否接近特定上限或下限。
●相应地增加或收缩子结构。为了执行该方面,组件使用:
○所标识的现有复制机制以便扩展或收缩子结构;以及
○IaaS云基础架构以便供应、取消供应或隐藏/恢复必需的操作系统映像。
在步骤710,业务敏捷性组件真正执行在步骤708针对其组装的任务。
一个合适的业务敏捷性组件是上面讨论的应用资源管理器。参考Murthy V.Devarakonda等人的标题为“Application Resource Managerover a Cloud(云上的应用资源管理器)”的序列号为13/180,858的共同受让、共同未决的美国专利申请(2011年7月12日提交,并且其所有内容在此明确引入作为参考以用于所有目的)。
注意,一个或多个实施例不一定处理所有应用。据信,获得具有未知复杂结构的任意应用并通过适当努力针对该应用实现业务敏捷性目前可能并不实际。相反,一个或多个实施例标识业务应用,其中可能很快通过适度开销引入业务敏捷性,并且能够实际迁移这些业务应用。这导致近期业务敏捷性改进和成本节省,而以其它方式不可能实现这些改进和节省。
图8中提供示出图7的方法的一个实例。在该实例中,初始发现(步骤702)显示业务应用851,称为“EventX”,其包括Web服务器集群853(被示为多个IBM HTTP服务器,IHS)、应用服务器集群855(被示为多个IBM WebSphere应用服务器,WAS)和数据库集群857(被示为多个DB2数据库)。其它不适合“云化”的应用在850处。Web服务器、应用服务器和数据库以及它们的特定实例均为示例性而非限制性的。
因此,该业务应用将在步骤704的选择中得以保存,因为它包括使能复制个体部分的子结构—三个集群中的每一个都是此类子结构,并且个体IHS、WAS和DB2元素是所述部分。
转换箭头859对应于步骤702、704、706、708,并且主要对应于步骤706、708。一方面,将业务应用“EventX”的现有子结构基本不变地迁移到云10,即,这些子结构的代码和中间件级别设置保持和以前一样。(在云迁移期间可能由于其它原因而执行诸如版本升级之类的细微更改,并且这些更改不会影响本方法。)另一方面,引入业务敏捷性组件861。
业务敏捷性箭头863对应于步骤710。随后,需要扩展或收缩业务应用。图中的实例是业务用户865的实例,业务用户865预测(在业务级别)EventX的使用将在下星期一增加10%。在这种情况下,看到业务敏捷性组件861决定将一个新的IHS服务器867添加到Web服务器集群,将一个新的DB2869添加到数据库集群。业务敏捷性组件用于这些决策的确切机制可能在不同实施例中有所变化;甚至可能存在某种其它人工建议。此外,如上所述,在一个优选但非限制性方法中,使用上面讨论的应用资源管理器401作为业务敏捷性组件。
在一个或多个实施例中,不仅存在在底层IaaS云10上的新映像,甚至不仅存在包含IHS853和DB2857的新映像867、869,而且甚至在步骤710结束时进一步将这些中间件部分完全集成到其相应的集群中,并且准备参与满足增加的业务需要。
其中业务用户可能能够预测这种使用增加的一个业务应用EventX实例是将在星期一开始的体育赛事。另一个实例是销售应用,预测其使用由于新的营销活动或者由于季节变化而增加。
所述方法并不限于集群作为底层结构;可以使用复制子结构的个体部分的任何其它现有方法。
在某些情况下,可以通过以下操作改进步骤710:即,监视业务敏捷性组件861是否跟踪或者可以发现个体子结构如何在任何时间执行,以便仅增加或减少需要该组件的那些子结构。如果没有测量,则还可以具有例如来自设计阶段或者早期调整阶段的性能预测,这些预测将子结构的性能与应用的性能链接起来作为一个整体。例如,在图8中,业务敏捷性组件从这些源之一获悉为了在系统的当前状态下使业务级别性能增加10%,需要添加一个IHS和一个DB2而不是WAS。
一个或多个实施例还可以通过少量更改在平台即服务(PaaS)云上而不是在IaaS云上实现。例如,PaaS云可以提供预配置的IHS、WAS和DB2组件。在这种情况下,上面的实例可以以非常类似于上述的方式进行,只是现在新映像不是通过首先使用IaaS接口安装空OS然后在这些接口上设置集群组件来构建,而是通过供应已经包括基本软件的映像来构建。业务敏捷性组件仍然必须将业务应用特定的元素(例如网页、代码或数据)复制到这些映像,并且将它们链接到业务应用流和子结构的潜在管理软件。
因此,一个或多个实施例通过迁移构建业务级别敏捷应用。在一个或多个实施例中,例如使用增强的发现工具详细分析工作负载;以及使用标准集群层结构标识某些工作负载,例如,具体地说标识IHS-WAS-DB2或类似的工作负载。一个或多个实施例有利地通过快速部署其它集群元素,获得业务级别可扩展性。在某些情况下,利用率数据可以有助于查看瓶颈,并且在需求增加时标识哪些集群需要扩展以及扩展多少。
目前认为,业务级别扩展请求应该为云中的新映像提供有关映像的集群软件(例如,其它IHS或DB2)以及该集群内部的应用软件(例如,EventX Web服务),并且进一步,应该将该集群与集群管理器链接以便集群立即全部运行。
图9是根据本发明的一个方面的示例性软件架构图。如图所示,增强的发现工具904在遗留系统(也称为源环境)902上执行发现,以便标识至少一个可轻松云化的应用。迁移工具914从遗留系统902和增强的发现工具914获得输入,并且将可轻松云化的应用迁移到目标环境(云)910。迁移工具914可选地采用映像存储库916。同时,业务敏捷性组件(BAC)构造器模块906(也称为自动代码生成模块)生成定制的BAC908,以便在可轻松云化的应用迁移到目标环境910之后对该应用进行管理。BAC构造器模块906例如使用数据存储库与BAC模板912。参见图4-6以及随附文本以便讨论示例性ARM401,其是BAC的一种优选但非限制性的形式。
给出到目前为止的讨论,应该理解,一般地说,根据本发明的一个方面的示例性方法包括步骤702:分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构。另一步骤704包括选择所标识的基础架构(多个)以便迁移到云。所述云包括基础架构即服务云和/或平台即服务云。再一步骤706包括将所标识的基础架构(多个)的现有子结构迁移到云,而无需应用级别更改。额外步骤708包括组装业务敏捷性组件,所述组装业务敏捷性组件被配置为控制扩展和收缩所述云的专用于所标识的基础架构(多个)的那些资源。步骤710包括使用业务敏捷性组件,扩展和收缩所述云的专用于所标识的基础架构(多个)的资源。如上所述,业务敏捷性组件861的一个实例是应用资源管理器401。
如在其他部分所述,在某些实例中,额外步骤包括运行基础架构发现工具(例如,IBM研究院的GALAPAGOS工具)以便获得用于分析步骤的信息。
还如在其他部分所述,集群是子结构的非限制性实例。转而,Web服务器集群、应用服务器集群和数据库集群是集群的非限制性实例。
在某些实例中,在组装步骤组装的业务敏捷性组件被进一步配置为评估需求中的更改,所述需求中的更改将推动扩展和收缩所述云的专用于所标识的基础架构(多个)的那些资源。在这些情况下,额外步骤可以包括评估需求中的更改;例如方式为:接受有关需求增加和需求减少中的至少一个的输入和/或分析需求是否接近上限和下限中的至少一个。
如上所述,在某些情况下,云是基础架构即服务云。在这些情况下,扩展和收缩资源包括使用现有复制机制来扩展和收缩,同时使用基础架构即服务云的基础架构执行以下操作:供应、取消供应、隐藏和/或恢复对应操作系统映像。
如上所述,在某些情况下,云是平台即服务云。在这些情况下,扩展和收缩资源包括至少通过以下操作扩展:在平台即服务云上供应包括与子结构关联的基本软件的映像(例如,基本软件是具有IHS853、WAS855和DB2857的集群中的IHS853)。在PaaS云中,具有已经包含IHS的映像,因此扩展涉及ARM请求其上已经具有IHS的新虚拟机。在IaaS云的情况下,扩展涉及ARM请求新虚拟机,并且ARM将IHS放在新虚拟机上。
在一个或多个实施例中,在子结构级别执行使用业务敏捷性组件,扩展和收缩所述云的专用于所标识的基础架构(多个)的那些资源。在某些情况下,在子结构级别执行扩展和收缩基于子结构的性能监视。即,如上所述,在某些情况下,业务敏捷性组件861跟踪或者可以发现个体子结构如何在任何时间执行,以便仅增加或减少需要该组件的那些子结构。
在某些情况下,在子结构级别执行扩展和收缩基于子结构的性能预测。即,如上所述,如果没有测量,则还可以具有例如来自设计阶段或者早期调整阶段的性能预测,这些预测将子结构的性能与应用的性能链接起来作为一个整体。例如,在图8中,业务敏捷性组件从这些源之一获悉为了使业务级别性能增加10%,需要添加一个IHS和一个DB2而不是WAS。
在另一个方面,另一种示例性方法包括以下步骤:获得(例如,由模块906从工具904获得,可能具有来自专家的输入)实体的多个现有应用的多个基础架构中的至少一个基础架构的规范,所述至少一个基础架构要迁移到云。所述至少一个基础架构包括使能经由现有复制机制而复制个体部分的现有子结构。另一个步骤包括在BAC模板存储库912中标识(例如,由模块906标识)至少一个通用模板,所述至少一个通用模板包括用于执行扩展和收缩所述云的要专用于所述至少一个基础架构的资源中的至少一个的指令。另一步骤包括通过使用与所述至少一个基础架构有关的特定数据填充至少一个通用模板,实例化(例如,由模块906实例化)至少一个通用模板的特定实例;以及至少从特定实例,组装(例如,由模块906组装)业务敏捷性组件908(例如,定制的BAC,如定制的ARM),业务敏捷性组件908被配置控制扩展和收缩所述云的专用于所述至少一个基础架构的资源中的至少一个。
刚才描述的方法可以与先前讨论的方法相组合,以便在先前讨论的方法中,组装步骤包括:在业务敏捷性组件模板存储库中标识至少一个通用模板,所述至少一个通用模板包括用于执行扩展和收缩所述云的要专用于所述至少一个基础架构的资源中的至少一个的指令;通过使用与所述至少一个基础架构有关的特定数据填充至少一个通用模板,实例化至少一个通用模板的特定实例;以及至少从特定实例,组装业务敏捷性组件。
针对增强的发现工具,考虑应用服务器的非限制性实例(例如,WAS855)。在某些实例中,增强商用发现工具进行识别以便发现配置不同于其它WAS节点的专用管理节点(例如,服务器)。在这种情况下,通过确定WAS存在于服务器上并且通过分析服务器的配置,增强的发现工具确定特定服务器是管理节点。确定特定服务器是管理节点之后,通过进一步分析配置,可以看到管理节点管理集群配置中的其它服务器。此类WAS管理节点及其管理的服务器是很好的云化候选者。
还考虑ORACLE(或其它)数据库软件(位于美国加利福尼亚州94065雷德伍德城的甲骨文国际公司的注册商标)的非限制性实例。例如,可能存在使用ORACLE软件的WAS应用服务器855。WAS服务器与ORACLE集群交互。在此,WAS服务器可能并不专门是管理节点,但它将与数据库集群建立数据库连接,这可以在其配置文件中看到。这种集群再次指示良好的云化候选者。
因此,在一个或多个实施例中,增强现有发现工具(例如上述GALAPAGOS工具)以便标识集群,如在前面两个实例中那样。给予了此处的教导后,本领域技术人员将能够修改现有发现工具,以便例如检查配置文件以标识集群等,从而查找良好的云化候选者。
假设在具有管理节点的应用服务器集群的非限制性实例中,发现并迁移两个服务器和一个管理节点,并且现在希望通过添加第三服务器增大应用服务器集群(假设这由ARM确定)。ARM需要复制当前应用服务器以便获得类似于两个现有服务器的第三服务器;此外,必须更新管理节点以便知晓以下事实:现在具有三个服务器而不是两个。复制是固定活动(假设Web服务器无状态)。例如可以经由API(应用编程接口)更新管理节点;可以发送命令以便在其集群中包括第三Web服务器。备选地,可以直接更新在其中执行发现的配置文件。例如,复制配置文件,将第三Web服务器的名称复制到该配置文件中,并且重写该配置文件作为三个Web服务器的配置文件,然后将重写后的文件写回管理节点。
针对数据库应用,数据库本身必须知晓它们彼此复制其内容;因此,存在要彼此复制的数据库的某种配置。此外,WAS节点等将知晓集群,并且因此还需要更新应用服务器—初始地,知道可以使用两个数据库之一—需要更新以便指示现在可以使用三个数据库之一。
诸如刚才描述的那些操作(使用API和/或更改配置文件)基本是预定的,以便可以编写自动代码生成器(BAC构造器906)以生成更改(即,生成定制的BAC,如定制的ARM)。例如,增强的发现工具904可以发现WAS集群和ORACLE集群,它们被标识为可轻松云化的应用。CASE模块906现在针对WAS集群和ORACLE集群生成ARM908。ARM模板912将包括用于每个定制的ARM所需的各种操作的通用代码;例如,用于增加WAS集群大小的通用代码行。这些通用代码行将包括空值、虚拟值(“X”)等,以便指定在给定情况下相关的实际特定的WAS集群、节点(多个)等;BAC构造器模块906将使用正确值填充这些值。BAC模板存储库912因此包括通用(空)模板以便增加或减少相关应用(多个)(例如,WAS集群、ORACLE集群)的资源数量。BAC构造器模块906因此实例化通用模板912的包括特定机器、地址等的特定实例,以便进行相关迁移。例如,如果WAS管理节点是WASND1,“X”是模板中表示WAS管理节点的虚拟值,则BAC构造器模块将使用“WASND1”代替“X”,实例化WAS集群资源增加代码的一个实例。
在一个或多个实施例中,分析实体的多个现有应用的基础架构,以便标识多个现有应用的基础架构中包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构的步骤包括:通过从复制管理节点的配置文件标识复制管理节点,标识所述子结构;标识所复制的服务器的配置;和/或标识连接到所复制的服务器的其它服务器的配置。
示例性系统和制造品详细信息
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
本发明的一个或多个实施例或其元素可以以装置的形式实现,所述装置包括存储器和至少一个处理器,至少一个处理器耦合到存储器并且可操作以执行示例性方法步骤。
一个或多个实施例可以使用在通用计算机或工作站上运行的软件。参考图1,这种实现例如可以采用处理器16、存储器28以及到显示器24和外部设备(多个)14(例如键盘、指向设备等)的输入/输出接口22。术语“处理器”如在此使用的,旨在包括任何处理设备,例如包括CPU(中央处理单元)和/或其它形式处理电路的处理设备。进一步,术语“处理器”可以指多个单独的处理器。术语“存储器”旨在包括与处理器或CPU关联的存储器,例如RAM(随机存取存储器)30、ROM(只读存储器)、固定存储器件(例如,硬盘驱动器34)、可移动存储器件(例如,软盘)、闪存等。此外,词组“输入/输出接口”如在此使用的,旨在构想接口,该接口例如到一个或多个用于将数据输入到处理单元的机构(例如,鼠标),以及一个或多个用于提供与处理单元关联的结果的机构(例如,打印机)。处理器16、存储器28和输入/输出接口22例如可以通过总线18互连,作为数据处理单元12的一部分。还可以例如通过总线18为网络接口20(例如网卡,其可以用于与计算机网络对接)以及介质接口(例如软盘或CD-ROM驱动器,其可以用于与合适的介质对接)提供合适的互连。
因此,如在此描述的,包括用于执行本发明方法的指令或代码的计算机软件可以被存储在一个或多个关联的存储器件(例如,ROM、固定或可移动存储器)中,并且当准备使用时,被部分或全部加载(例如,加载到RAM中)并由CPU实现。这种软件可以包括但不限于固件、驻留软件、微代码等。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线18直接或间接连接到存储元件28的处理器16。存储元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置,以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器32。
输入/输出或I/O设备(包括但不限于键盘、显示器、指向设备等)可以直接或通过中间I/O控制器与系统相连。
网络适配器20也可以被连接到系统以使数据处理系统能够通过中间专用或公共网络变得与其它数据处理系统或远程打印机或存储器件相连。调制解调器、电缆调制解调器和以太网卡只是当前可用的网络适配器类型中的少数几种。
如在此(包括在权利要求中)使用的,“服务器”包括运行服务器程序的物理数据处理系统(例如,如图1中所示的系统12)。应该理解,这种物理服务器可以包括也可以不包括显示器和键盘。
如所说明的,本发明的各个方面可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言,或者诸如Perl之类的脚本语言。在某些实例中,优化求解器可以用作子组件,例如ILOG CPLEX(用于线性规划、混合整数规划和二次规划的高性能数学规划求解器,可从位于美国纽约阿蒙克的国际商业机器公司获得)。一般地说,程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一个或多个实施例中,代码的重要部分是与应用资源管理器关联的部分;它可以在云中或外部运行。在至少某些情况下,更可能在服务器上而不是最终用户机器上(如果有的话,也在应用所有者的最终用户机器上),但应用所有者可能从膝上型电脑等运行它。针对增强的发现工具904,至少一部分(例如,脚本或代理)通常在遗留系统902上运行,而另一部分在专用服务器上运行。但是,整个增强的发现工具可以在专用服务器上运行并且与遗留系统建立一个或多个连接。在某些实例中,整个增强的发现工具可以在遗留系统上运行。针对BAC构造器模块,通常也可以在专用服务器上运行。但是,它可以位于云中或者甚至在遗留系统上(如果公司的内部IT部门执行整个过程,则认为后一种情形更合适,因为外部顾问可能需要在它自己的专用服务器上运行BAC构造器模块)。
在此参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应该注意,在此描述的任何方法都可以包括提供一种系统的额外步骤,所述系统包括包含在计算机可读存储介质中的不同软件模块;所述模块例如可以包括在此处描述的框图和/或流程图中所示的任何或全部元素;作为实例而非限制,图6中示出应用资源管理器模块,其具有一个或多个子模块,例如策略子模块、管理子模块、控制子模块和解释子模块。在另一个方面,可以采用合适的(增强后的)发现工具模块904、迁移工具模块914、BAC构造器模块906和业务敏捷性组件模块(例如,定制的BAC908,如定制的ARM)以及图9中所示的其它组件(多个)。然后可以使用所述系统的不同软件模块和/或子模块(如上所述,在一个或多个硬件处理器(例如16)上执行)执行方法步骤或者以其它方式促进方法步骤。例如,在至少一个硬件处理器上执行的发现工具模块可以执行分析步骤702;在至少一个硬件处理器上执行的发现工具模块可以促进选择步骤704(例如,通过帮助专家或其它用户);在至少一个硬件处理器上执行的迁移工具模块可以执行迁移步骤706;以及在至少一个硬件处理器上执行的BAC构造器模块可以执行组装步骤708。采用在至少一个硬件处理器上执行的业务敏捷性组件模块形式的业务敏捷性组件然后执行步骤710。在一种优选方法中,所述至少一个处理器包括至少两个处理器;第一处理器执行710之前的步骤,然后采用在第二处理器上执行的业务敏捷性组件模块形式的业务敏捷性组件执行步骤710,因为步骤710不是迁移过程的一部分,而是在新环境中运行的实际迁移的应用。在某些情况下,第一和/或第二处理器均可以是多个处理器。此外,计算机程序产品可以包括计算机可读存储介质,其具有适合于实现以便执行在此描述的一个或多个方法步骤的代码,这些方法步骤包括为所述系统供应不同软件模块。
在任何情况下,应当理解,在此示出的组件可以以各种形式的硬件、软件或它们的组合来实现;例如,专用集成电路(多个)(ASIC)、功能电路、一个或多个具有关联存储器的经过适当编程的通用数字计算机等。给予了在此提供的本发明的教导后,相关技术领域的普通技术人员将能够构想本发明的组件的其它实现。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。

Claims (25)

1.一种方法,包括:
分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构;
选择所述基础架构中的所述至少一个基础架构以便迁移到云,所述云包括基础架构即服务云和平台即服务云中的至少一个;
在没有应用级更改的情况下,将所述基础架构中的所述至少一个基础架构的所述现有子结构迁移到所述云;
组装业务敏捷性组件,所述业务敏捷性组件被配置为控制扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的资源;以及
使用所述业务敏捷性组件,扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源。
2.根据权利要求1的方法,还包括运行基础架构发现工具以便获得用于所述分析步骤的信息。
3.根据权利要求1的方法,其中在所述标识步骤中标识的所述基础架构中的所述至少一个基础架构的所述子结构包括集群。
4.根据权利要求3的方法,其中在所述标识步骤中标识的所述基础架构中的所述至少一个基础架构的所述集群包括Web服务器集群、应用服务器集群以及数据库集群中的至少一个。
5.根据权利要求1的方法,其中在所述组装步骤中组装的所述业务敏捷性组件被进一步配置为评估需求中的更改,所述需求中的所述更改将推动所述扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源,所述方法进一步包括评估所述需求中的所述更改。
6.根据权利要求1的方法,其中所述分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构的步骤包括通过以下操作中的至少一个来标识所述子结构:
从复制管理节点的配置文件标识所述复制管理节点;
标识所复制的服务器的配置;以及
标识连接到所复制的服务器的其它服务器的配置。
7.根据权利要求1的方法,其中所述组装步骤包括:
在业务敏捷性组件模板存储库中标识至少一个通用模板,所述至少一个通用模板包括用于执行扩展和收缩所述云的要专用于所述基础架构中的所述至少一个基础架构的资源中的至少一个的指令;
通过使用与所述基础架构中的所述至少一个基础架构有关的特定数据填充所述至少一个通用模板,实例化所述至少一个通用模板的特定实例;以及
至少从所述特定实例来组装所述业务敏捷性组件。
8.根据权利要求1的方法,其中在所述迁移步骤中,所述云包括所述基础架构即服务云。
9.根据权利要求8的方法,其中所述扩展和收缩所述资源包括使用所述现有复制机制执行扩展和收缩,同时使用所述基础架构即服务云的基础架构执行以下操作中的至少一个:供应、取消供应、隐藏和恢复对应操作系统映像。
10.根据权利要求1的方法,其中在所述迁移步骤中,所述云包括所述平台即服务云。
11.根据权利要求10的方法,其中所述扩展和收缩所述资源包括通过在所述平台即服务云上供应包括与所述子结构关联的基本软件的映像而至少执行扩展。
12.根据权利要求1的方法,其中在所述子结构的级别执行所述使用所述业务敏捷性组件,扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源。
13.根据权利要求12的方法,其中在所述子结构的所述级别的所述执行所述扩展和收缩基于所述子结构的性能监视。
14.根据权利要求12的方法,其中在所述子结构的所述级别的所述执行所述扩展和收缩基于所述子结构的性能预测。
15.根据权利要求1的方法,还包括提供一种系统,其中所述系统包括不同软件模块,每个所述不同软件模块包含在计算机可读存储介质中,并且其中所述不同软件模块包括发现工具模块、迁移工具模块和业务敏捷性组件构造器工具模块;
其中:
由在至少一个硬件处理器上执行的所述发现工具模块执行所述分析步骤;
由在所述至少一个硬件处理器上执行的所述发现工具模块促进所述选择步骤;
由在所述至少一个硬件处理器上执行的所述迁移工具模块执行所述迁移步骤;以及
由在所述至少一个硬件处理器上执行的所述业务敏捷性组件构造器工具模块执行所述组装步骤。
16.一种包括计算机程序产品的制造品,所述计算机程序产品包括:
非瞬时性有形计算机可读存储介质,其以非瞬时性方式存储计算机可读程序代码,所述计算机可读程序代码包括:
被配置为执行以下操作的计算机可读程序代码:分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构;
被配置为执行以下操作的计算机可读程序代码:促进选择所述基础架构中的所述至少一个基础架构以便迁移到云,所述云包括基础架构即服务云和平台即服务云中的至少一个;
被配置为执行以下操作的计算机可读程序代码:促进在没有应用级更改的情况下,将所述基础架构中的所述至少一个基础架构的所述现有子结构迁移到所述云;以及
被配置为执行以下操作的计算机可读程序代码:组装业务敏捷性组件,所述业务敏捷性组件被配置为控制扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的资源。
17.根据权利要求16的制造品,其中由被配置为分析所述基础架构的所述计算机可读程序代码标识的所述基础架构中的所述至少一个基础架构的所述子结构包括集群。
18.根据权利要求17的制造品,其中由被配置为分析所述基础架构的所述计算机可读程序代码标识的所述基础架构中的所述至少一个基础架构的所述集群包括Web服务器集群、应用服务器集群以及数据库集群中的至少一个。
19.根据权利要求16的制造品,其中由被配置为组装的所述计算机可读程序代码组装的所述业务敏捷性组件被进一步配置为评估需求中的更改,所述需求中的所述更改将推动所述扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源。
20.根据权利要求19的制造品,其中被配置为分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构的所述计算机可读程序代码包括被配置为通过以下操作中的至少一个来标识所述子结构的计算机可读程序代码:
从复制管理节点的配置文件标识所述复制管理节点;
标识所复制的服务器的配置;以及
标识连接到所复制的服务器的其它服务器的配置。
21.根据权利要求19的制造品,其中被配置为组装的所述计算机可读程序代码包括:
被配置为执行以下操作的计算机可读程序代码:在业务敏捷性组件模板存储库中标识至少一个通用模板,所述至少一个通用模板包括用于执行扩展和收缩所述云的要专用于所述基础架构中的所述至少一个基础架构的资源中的至少一个的指令;
被配置为执行以下操作的计算机可读程序代码:通过使用与所述基础架构中的所述至少一个基础架构有关的特定数据填充所述至少一个通用模板,实例化所述至少一个通用模板的特定实例;以及
被配置为执行以下操作的计算机可读程序代码:至少从所述特定实例来组装所述业务敏捷性组件。
22.一种装置,包括:
存储器;以及
至少一个处理器,其耦合到所述存储器并可操作以:
分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构;
促进选择所述基础架构中的所述至少一个基础架构以便迁移到云,所述云包括基础架构即服务云和平台即服务云中的至少一个;
促进在没有应用级更改的情况下,将所述基础架构中的所述至少一个基础架构的所述现有子结构迁移到所述云;
组装业务敏捷性组件,所述业务敏捷性组件被配置为控制扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的资源;以及
执行所述业务敏捷性组件以便扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源。
23.根据权利要求22的装置,还包括多个不同软件模块,每个所述不同软件模块包含在计算机可读存储介质中,并且其中所述不同软件模块包括发现工具模块、迁移工具模块和业务敏捷性组件构造器模块;
其中:
所述至少一个处理器可操作以便通过执行所述发现工具模块,分析所述基础架构;
所述至少一个处理器可操作以便通过执行所述发现工具模块,促进选择所述基础架构中的所述至少一个基础架构以便迁移到所述云;
所述至少一个处理器可操作以便通过执行所述迁移工具模块,促进将所述基础架构中的所述至少一个基础架构的所述现有子结构迁移到所述云;以及
所述至少一个处理器可操作以便通过执行所述业务敏捷性组件构造器模块,组装所述业务敏捷性组件。
24.一种方法,包括:
获得实体的多个现有应用的多个基础架构中的要迁移到云的至少一个基础架构的规范,所述至少一个基础架构包括使能经由现有复制机制而复制个体部分的现有子结构;
在业务敏捷性组件模板存储库中标识至少一个通用模板,所述至少一个通用模板包括用于执行扩展和收缩所述云的要专用于所述至少一个基础架构的资源中的至少一个的指令;
通过使用与所述至少一个基础架构有关的特定数据填充所述至少一个通用模板,实例化所述至少一个通用模板的特定实例;以及
至少从所述特定实例来组装业务敏捷性组件,所述业务敏捷性组件被配置控制扩展和收缩所述云的专用于所述至少一个基础架构的所述资源中的至少一个。
25.根据权利要求24的方法,还包括提供一种系统,其中所述系统包括不同软件模块,每个所述不同软件模块包含在计算机可读存储介质中,并且其中所述不同软件模块包括业务敏捷性组件构造器模块和应用资源管理器模板模块;
其中:
由在至少一个硬件处理器上执行的所述业务敏捷性组件构造器模块执行所述获得、实例化和组装步骤;以及
由在所述至少一个硬件处理器上执行并访问所述业务敏捷性组件模板模块的所述业务敏捷性组件构造器模块执行所述标识步骤。
CN201280049844.4A 2011-10-11 2012-10-05 可轻松云化的应用的基于发现的标识和迁移 Pending CN103930863A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/270,677 2011-10-11
US13/270,677 US20130091285A1 (en) 2011-10-11 2011-10-11 Discovery-based identification and migration of easily cloudifiable applications
PCT/US2012/059047 WO2013055601A1 (en) 2011-10-11 2012-10-05 Discovery-based indentification and migration of easily cloudifiable applications

Publications (1)

Publication Number Publication Date
CN103930863A true CN103930863A (zh) 2014-07-16

Family

ID=48042851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280049844.4A Pending CN103930863A (zh) 2011-10-11 2012-10-05 可轻松云化的应用的基于发现的标识和迁移

Country Status (6)

Country Link
US (1) US20130091285A1 (zh)
JP (1) JP2014532247A (zh)
CN (1) CN103930863A (zh)
DE (1) DE112012004238T5 (zh)
GB (1) GB2509866A (zh)
WO (1) WO2013055601A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970865A (zh) * 2015-12-29 2017-07-21 国际商业机器公司 作为微云环境中的服务的软件的监视和管理
WO2020029995A1 (en) * 2018-08-08 2020-02-13 Huawei Technologies Co., Ltd. Application upgrading through sharing dependencies
CN112114943A (zh) * 2019-06-20 2020-12-22 国际商业机器公司 潜在计算属性偏好发现和计算环境迁移计划推荐
CN112948091A (zh) * 2021-03-24 2021-06-11 国网上海市电力公司 应用系统的迁移方法、装置、电子设备及存储介质
CN113302901A (zh) * 2019-01-30 2021-08-24 华为技术有限公司 使用基于模式的发现进行云应用程序和服务集成的方法及系统

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014035309A1 (en) * 2012-09-03 2014-03-06 Telefonaktiebolaget L M Ericsson (Publ) Re-configuration in cloud computing environments
US10379910B2 (en) 2012-10-26 2019-08-13 Syntel, Inc. System and method for evaluation of migration of applications to the cloud
US20140122577A1 (en) * 2012-10-26 2014-05-01 Syntel, Inc. System and method for evaluating readiness of applications for the cloud
US9742873B2 (en) 2012-11-29 2017-08-22 International Business Machines Corporation Adjustment to managed-infrastructure-as-a-service cloud standard
US9282166B2 (en) 2012-11-29 2016-03-08 International Business Machines Corporation Management infrastructure analysis for cloud migration
US9692632B2 (en) 2012-11-29 2017-06-27 International Business Machines Corporation Migration to managed clouds
US9292330B2 (en) 2012-11-29 2016-03-22 International Business Machines Corporation Replacing virtual machine disks
US9092837B2 (en) 2012-11-29 2015-07-28 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US20140195673A1 (en) * 2013-01-10 2014-07-10 Hewlett-Packard Development Company, L.P. DYNAMICALLY BALANCING EXECUTION RESOURCES TO MEET A BUDGET AND A QoS of PROJECTS
US9892207B2 (en) * 2013-02-01 2018-02-13 Sap Se Automatic migration for on-premise data objects to on-demand data objects
US9608931B2 (en) * 2013-05-28 2017-03-28 Accenture Global Services Limited Migration assessment for cloud computing platforms
US9606840B2 (en) * 2013-06-27 2017-03-28 Sap Se Enterprise data-driven system for predictive resource provisioning in cloud environments
US9207946B2 (en) 2013-08-27 2015-12-08 International Business Machines Corporation Auto-cloudifying applications via runtime modifications
US9760358B2 (en) * 2013-10-30 2017-09-12 Oracle International Corporation System and method for test to production support in a cloud platform environment
US9389970B2 (en) 2013-11-01 2016-07-12 International Business Machines Corporation Selected virtual machine replication and virtual machine restart techniques
US9639817B2 (en) * 2013-11-13 2017-05-02 Google, Inc. Remote metering for panelist web usage
US9413682B2 (en) 2014-02-07 2016-08-09 International Business Machines Corporation Provisioning legacy systems network architecture resource communications through a group of servers in a data center
US20150234644A1 (en) * 2014-02-10 2015-08-20 Empire Technology Development Llc Automatic collection and provisioning of resources to migrate applications from one infrastructure to another infrastructure
US9544385B1 (en) 2014-02-24 2017-01-10 Google Inc. Providing second content items in association with first content items
CN106462458B (zh) 2014-04-30 2019-08-30 大连理工大学 虚拟机迁移
US9871851B2 (en) * 2014-06-30 2018-01-16 EMC IP Holding Company LLC Migrating private infrastructure services to a cloud
US10219168B2 (en) * 2014-06-30 2019-02-26 Futurewei Technologies, Inc. Methods and systems for intelligent mobile function distribution
US9836332B2 (en) 2014-07-31 2017-12-05 Corent Technology, Inc. Software defined SaaS platform
US9742690B2 (en) 2014-08-20 2017-08-22 At&T Intellectual Property I, L.P. Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
US9800673B2 (en) 2014-08-20 2017-10-24 At&T Intellectual Property I, L.P. Service compiler component and service controller for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US9749242B2 (en) 2014-08-20 2017-08-29 At&T Intellectual Property I, L.P. Network platform as a service layer for open systems interconnection communication model layer 4 through layer 7 services
US9473567B2 (en) 2014-08-20 2016-10-18 At&T Intellectual Property I, L.P. Virtual zones for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US10291689B2 (en) 2014-08-20 2019-05-14 At&T Intellectual Property I, L.P. Service centric virtual network function architecture for development and deployment of open systems interconnection communication model layer 4 through layer 7 services in a cloud computing system
US11159385B2 (en) 2014-09-30 2021-10-26 Micro Focus Llc Topology based management of second day operations
US10009292B2 (en) 2014-10-03 2018-06-26 International Business Machines Corporation Cloud independent tuning service for autonomously managed workloads
US9612765B2 (en) 2014-11-19 2017-04-04 International Business Machines Corporation Context aware dynamic composition of migration plans to cloud
WO2016147348A1 (ja) * 2015-03-18 2016-09-22 株式会社日立製作所 管理計算機、及び、計算機システム管理方法
JP6392978B2 (ja) * 2015-04-22 2018-09-19 株式会社日立製作所 計算機システムの管理システム
US9804879B2 (en) 2015-05-14 2017-10-31 International Business Machines Corporation Performing server migration and dependent server discovery in parallel
EP3101541A1 (en) * 2015-06-05 2016-12-07 Deutsche Telekom AG A system and method for facilitating migration of server infrastructure services
WO2016193433A1 (en) 2015-06-05 2016-12-08 Deutsche Telekom Ag A system and method for facilitating migration of server infrastructure services
WO2017002222A1 (ja) * 2015-07-01 2017-01-05 株式会社日立製作所 システムデプロイ装置およびシステムデプロイ方法
US10079730B2 (en) 2015-09-30 2018-09-18 Amazon Technologies, Inc. Network based resource configuration discovery service
US10394587B2 (en) 2016-01-06 2019-08-27 International Business Machines Corporation Self-terminating or self-shelving virtual machines and workloads
US10031745B2 (en) 2016-02-02 2018-07-24 International Business Machines Corporation System and method for automatic API candidate generation
US10200395B1 (en) * 2016-03-30 2019-02-05 Symantec Corporation Systems and methods for automated whitelisting of files
US10146563B2 (en) 2016-08-03 2018-12-04 International Business Machines Corporation Predictive layer pre-provisioning in container-based virtualization
US10455004B2 (en) 2016-11-01 2019-10-22 Microsoft Technology Licensing, Llc Controlling an application dependency identifier
US10491704B2 (en) * 2016-11-07 2019-11-26 General Electric Company Automatic provisioning of cloud services
JP2018173881A (ja) 2017-03-31 2018-11-08 富士通株式会社 評価処理プログラム、装置、及び方法
US10901804B2 (en) 2017-12-15 2021-01-26 Fujitsu Limited Apparatus and method to select services for executing a user program based on a code pattern included therein
US10915349B2 (en) 2018-04-23 2021-02-09 Hewlett Packard Enterprise Development Lp Containerized application deployment
US11128578B2 (en) * 2018-05-21 2021-09-21 Pure Storage, Inc. Switching between mediator services for a storage system
US10715385B2 (en) 2018-09-27 2020-07-14 International Business Machines Corporation System and method for live migration for software agents
US11853273B1 (en) * 2018-09-27 2023-12-26 Amazon Technologies, Inc. Partial migration of applications across database systems
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11010336B2 (en) * 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US11483384B2 (en) 2019-03-19 2022-10-25 Hewlett Packard Enterprise Development Lp Application migrations
EP3947352A1 (en) 2019-03-29 2022-02-09 RA Pharmaceuticals, Inc. Complement modulators and related methods
US10924559B1 (en) 2019-09-12 2021-02-16 International Business Machines Corporation Migration of cloud services
CN110895461B (zh) * 2019-11-21 2023-08-01 望海康信(北京)科技股份公司 软件研发管理方法、装置、电子设备及存储介质
CN111786808A (zh) 2020-01-10 2020-10-16 北京京东尚科信息技术有限公司 云系统的迁移方法、装置和混合云系统
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11379843B2 (en) * 2020-03-31 2022-07-05 Paypal, Inc. Systems and methods for multi-domain application hosting platform migration
CN111897654B (zh) * 2020-07-31 2023-08-15 腾讯科技(深圳)有限公司 将应用迁移到云平台的方法、装置、电子设备和存储介质
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
CN112232635B (zh) * 2020-09-17 2023-09-19 中国市政工程华北设计研究总院有限公司 一种基于分布式云架构的智慧水务数据中台
US11483211B2 (en) 2020-09-28 2022-10-25 International Business Machines Corporation Infrastructure discovery and analysis
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
US20230231904A1 (en) * 2022-01-14 2023-07-20 Dell Products, L.P. Cloud provisioning readiness verification

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763266A (zh) * 2010-01-13 2010-06-30 上海动量软件技术有限公司 计算机软件系统实现云构件部署和配置的平台系统及方法
CN102054235A (zh) * 2011-01-04 2011-05-11 清华大学 基于数字资源服务构件模型的机构仓储搭建方法和装置
US20110126275A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for discovery enrichment in an intelligent workload management system
CN102132256A (zh) * 2008-08-25 2011-07-20 国际商业机器公司 使用名称解析来供应虚拟资源
US20110231899A1 (en) * 2009-06-19 2011-09-22 ServiceMesh Corporation System and method for a cloud computing abstraction layer

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011126902A2 (en) * 2010-03-30 2011-10-13 Exoprise Systems Inc. Systems and methods for selecting an alternative computing infrastructure and facilitating the migration and adoption thereto
US9535751B2 (en) * 2011-09-15 2017-01-03 International Business Machines Corporation Resource selection advisor mechanism

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102132256A (zh) * 2008-08-25 2011-07-20 国际商业机器公司 使用名称解析来供应虚拟资源
US20110231899A1 (en) * 2009-06-19 2011-09-22 ServiceMesh Corporation System and method for a cloud computing abstraction layer
US20110126275A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for discovery enrichment in an intelligent workload management system
CN101763266A (zh) * 2010-01-13 2010-06-30 上海动量软件技术有限公司 计算机软件系统实现云构件部署和配置的平台系统及方法
CN102054235A (zh) * 2011-01-04 2011-05-11 清华大学 基于数字资源服务构件模型的机构仓储搭建方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970865A (zh) * 2015-12-29 2017-07-21 国际商业机器公司 作为微云环境中的服务的软件的监视和管理
CN106970865B (zh) * 2015-12-29 2020-10-16 国际商业机器公司 作为微云环境中的服务的软件的监视和管理
WO2020029995A1 (en) * 2018-08-08 2020-02-13 Huawei Technologies Co., Ltd. Application upgrading through sharing dependencies
CN113302901A (zh) * 2019-01-30 2021-08-24 华为技术有限公司 使用基于模式的发现进行云应用程序和服务集成的方法及系统
CN112114943A (zh) * 2019-06-20 2020-12-22 国际商业机器公司 潜在计算属性偏好发现和计算环境迁移计划推荐
CN112948091A (zh) * 2021-03-24 2021-06-11 国网上海市电力公司 应用系统的迁移方法、装置、电子设备及存储介质
CN112948091B (zh) * 2021-03-24 2024-01-30 国网上海市电力公司 应用系统的迁移方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
GB2509866A (en) 2014-07-16
JP2014532247A (ja) 2014-12-04
GB201407437D0 (en) 2014-06-11
US20130091285A1 (en) 2013-04-11
DE112012004238T5 (de) 2014-08-21
WO2013055601A1 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
CN103930863A (zh) 可轻松云化的应用的基于发现的标识和迁移
CN103649941A (zh) 云上的应用资源管理器
CN103299274B (zh) 确定运行图像的最佳计算环境的系统和方法
US11805076B2 (en) Microservice placement in hybrid multi-cloud using graph matching
CN103281344B (zh) 用于混合云的服务使用的集成计量的方法和系统
Klems et al. Do clouds compute? a framework for estimating the value of cloud computing
Altmann et al. Cost model based service placement in federated hybrid clouds
Han Cloud computing: case studies and total cost of ownership
US10467128B2 (en) Measuring and optimizing test resources and test coverage effectiveness through run time customer profiling and analytics
US10051082B2 (en) Cost determination to provide software as a service
Gui et al. A service brokering and recommendation mechanism for better selecting cloud services
CN103425529A (zh) 基于资源利用在网络计算环境间迁移虚拟机的系统及方法
US11263052B2 (en) Determining optimal compute resources for distributed batch based optimization applications
CN104679591A (zh) 用于在云环境中进行资源分配的方法和装置
CN103814358A (zh) 服务器群内的虚拟机放置
CN103593755A (zh) 授权计算资源访问的方法和系统
Tos et al. Ensuring performance and provider profit through data replication in cloud systems
CN103858118A (zh) 在网络计算环境中动态地获得计算资源
De Gooijer et al. An industrial case study of performance and cost design space exploration
CN103475495A (zh) 一种云计算虚拟机资源使用计费方法
Singh et al. Advance billing and metering architecture for infrastructure as a service
Beaty et al. Economics of cloud computing for enterprise IT
CN104424012A (zh) 用于提供自定义虚拟装置的方法和设备
KR102324086B1 (ko) 구성 관리 데이터베이스에 대한 비용 효율성 추적
Stahl et al. Performance and Capacity Themes for Cloud Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140716