可轻松云化的应用的基于发现的标识和迁移的制作方法

文档序号:6496781阅读:136来源:国知局
可轻松云化的应用的基于发现的标识和迁移的制作方法
【专利摘要】分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构。选择所述基础架构中的所述至少一个基础架构以便迁移到云。所述云包括基础架构即服务云和平台即服务云中的至少一个。在没有应用级更改的情况下,将所述基础架构中的所述至少一个基础架构的所述现有子结构迁移到所述云。组装业务敏捷性组件,所述业务敏捷性组件被配置为控制扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的资源。使用所述业务敏捷性组件,扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源。
【专利说明】可轻松云化的应用的基于发现的标识和迁移
【技术领域】
[0001 ] 本发明涉及电气、电子和计算机领域,更具体地说,涉及云计算等。
【背景技术】
[0002]云是行业中当前感兴趣的话题。当前的焦点领域是设计和实现新的应用编程模型,并且根据这些模型构建新的应用。实例是Google的映射-化简模型(可从位于美国加利福尼亚州山景城的Google Inc.获得)和Salesforce_dot_com (位于美国加利福尼亚州旧金山的Salesf0rCe_d0t_C0m,Inc.(“_(1於_”代替“.”以避免包括浏览器可执行代码))的基于Web的标准化目录式应用模型。
[0003]大多数大型企业具有大量现有的IT支持的业务应用。这些应用对特定企业如何执行其业务的给定特定部分的多种特定方式进行编码。它们通常还随之产生大量数据,这些数据采用特定于业务应用的格式。此外,它们可能包含数百万行代码。

【发明内容】

[0004]本发明的原理提供了可轻松云化的应用的基于发现的标识和迁移的技术。在一个方面,一种示例性方法包括以下步骤:分析实体的多个现有应用的基础架构以便标识所述多个现有应用的所述基础架构中的包括使能经由现有复制机制而复制个体部分的现有子结构的至少一个基础架构;以及选择所述基础架构中的所述至少一个基础架构以便迁移到云。所述云包括基础架构即服务云和平台即服务云中的至少一个。其他步骤包括:在没有应用级更改的情况下,将所述基础架构中的所述至少一个基础架构的所述现有子结构迁移到所述云;组装业务敏捷性组件,所述业务敏捷性组件被配置为控制扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的资源;以及使用所述业务敏捷性组件,扩展和收缩所述云的专用于所述基础架构中的所述至少一个基础架构的所述资源。
[0005]在另一个方面,另一种示例性方法包括以下步骤:获得实体的多个现有应用的多个基础架构中的要迁移到云的至少一个基础架构的规范。所述至少一个基础架构包括使能经由现有复制机制而复制个体部分的现有子结构。另一个步骤包括在业务敏捷性组件模板存储库中标识至少一个通用模板,所述至少一个通用模板包括用于执行扩展和收缩所述云的要专用于所述至少一个基础架构的资源中的至少一个的指令。另一步骤包括:通过使用与所述至少一个基础架构有关的特定数据填充所述至少一个通用模板,实例化所述至少一个通用模板的特定实例;以及至少从所述特定实例来组装业务敏捷性组件,所述业务敏捷性组件被配置控制扩展和收缩所述云的专用于所述至少一个基础架构的所述资源中的至少一个。
[0006]如在此使用的,“促进”操作包括执行所述操作,使得所述操作更容易,有助于执行所述操作,或者导致执行所述操作。因此,作为实例而非限制,在一个处理器上执行的指令可以促进由在远程处理器上执行的指令执行的操作,方法是发送适当的数据或命令以便导致或帮助执行所述操作。为避免疑义,其中操作者通过执行操作之外的方法促进所述操作,尽管所述操作由某个实体或实体组合执行。
[0007]本发明的一个或多个实施例或其元素可以以计算机产品的形式实现,所述计算机产品包括计算机可读存储介质,所述计算机可读存储介质具有计算机可用程序代码以便执行指示的方法步骤。此外,本发明的一个或多个实施例或其元素可以以系统(或装置)的形式实现,所述系统(或装置)包括存储器和至少一个处理器,所述至少一个处理器耦合到所述存储器并可操作以便执行示例性方法步骤。更进一步,在另一个方面,本发明的一个或多个实施例或其元素可以以装置的形式实现,以便执行在此描述的一个或多个方法步骤;所述装置可以包括(i )硬件模块(多个),(?)软件模块(多个),或者(iii )硬件和软件模块的组合;(i)_ (iii)的任何一个都实现在此给出的特定技术,并且所述软件模块存储在计算机可读存储介质(或多个此类介质)中。
[0008]本发明的技术可以提供实质上有利的技术效果。例如,一个或多个实施例可以提供以下一个或多个优点:
[0009]?更高效的管理
[0010]?当有关应用及其底层IT基础架构的要求更改时,缩短设置时间 [0011]?更高的可靠性
[0012]?避免浪费未充分使用的处理器的能力,因为可以很容易地增加和/或减少资源
数量
[0013].更快速地实现上述优点
[0014].自动进行关于是否值得对应用资源管理器进行编码的选择
[0015]从以下将结合附图阅读的对本发明的示例性实施例的详细描述,本发明的这些和其它特性和优点将变得显而易见。
【专利附图】

【附图说明】
[0016]图1示出根据本发明的一个实施例的云计算节点;
[0017]图2示出根据本发明的一个实施例的云计算环境;
[0018]图3示出根据本发明的一个实施例的抽象模型层;
[0019]图4是根据本发明的一个方面的概述系统框图;
[0020]图5是根据本发明的一个方面的详细系统框图;
[0021]图6提供根据本发明的一个方面的应用资源管理器的示例性组件;
[0022]图7提供根据本发明的一个方面的示例性流程图;
[0023]图8提供根据本发明的一个方面的示例性应用“云化”方案;以及
[0024]图9是根据本发明的一个方面的示例性软件架构图。
【具体实施方式】
[0025]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0026]特征包括:[0027]按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0028]广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
[0029]资源池:提供者的计算资源被归入资源池并通过多租户(mult1-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0030]迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
[0031]可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
[0032]服务模型如下:
[0033]软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0034]平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
[0035]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其它基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
[0036]部署模型如下:
[0037]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
[0038]共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
[0039]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0040]混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0041]云计算环境是面向服务的,特点集中在无状态性、低连接性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
[0042]现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0043]云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 —起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统或设备的分布式云计算技术环境,等等。
[0044]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算机系统存储介质上。
[0045]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理器16)的总线18。
[0046]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MCA)总线,增强型ISA (EISA)总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0047]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0048]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓冲存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。如下面进一步示出和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0049]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。[0050]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它组件通信。应当明白,尽管图中未示出,其它硬件和/或软件组件可以与计算机系统/服务器12 —起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。[0051]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
[0052]现在参考图3,其中显示了云计算环境50 (图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
[0053]硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如IBM? zSeries?艮统;基于Rise (精简指令集计算机)体系结构的服务器,例如
IBM pSeries?系统;ibm xSeries? 系统;ibm BladeCenter? 系统;存储器件;网络和
网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM WebSphere?应用服
务器软件;数据库软件,例如IBM DB2?数据库软件。(IBM, zSeries, pSeries, xSeries, BIadeCenter, WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0054]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0055]在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能--为根据SLA预测的对云计算资源将来需求提供预先安排和供应。[0056]工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及移动桌面。
[0057]一个或多个实施例有利地在云(例如IaaS或PaaS云)上实现应用资源管理器。
[0058]如上所述,基础架构即服务(IaaS)和平台即服务(PaaS)云提供基本能力以便快速部署(供应)映像,在不使用映像时隐藏映像,并且可能实时或准实时更改分配给映像的资源。但是,这不会直接应用于应用层(在此可互换称为工作负载层66),即在应用层66上,仍然需要人为观察使用情况并且确定何时以及如何可以针对应用扩展或收缩基础架构。以下应用除外:仅在相对短的时间内部署然后完全取消,如开发和测试应用。实际上,当前考虑目前最常见的应用在IaaS和PaaS云上运行。
[0059]注意,IaaS和PaaS云中的虚拟层和管理层62和64仅管理硬件并且可能管理基本软件,然而它们不管理工作负载。因此,迄今为止仍然单独管理工作负载,并且通常需要人为干预。
[0060]还如上所述,软件即服务(SaaS)云在应用层上工作,但非常明确地针对特定应用类型构建,这些应用类型例如包括IBM LotusLive解决方案(位于美国纽约阿蒙克的国际商业机器公司的商标)或者从位于美国加利福尼亚州旧金山的Salesforce_dot_com, Inc.获得的那些应用(“_dot_”代替”以避免包括浏览器可执行代码)。
[0061]此外,如上所述,还存在需要以特定的新程序设计模型和语言对应用进行编码的高级云,例如Amazon Web Services (位于美国华盛顿州西雅图的Amazon Web ServicesLLC的标志)、Microsoft Azure (位于美国华盛顿州雷德蒙德的微软公司的标志)和Hadoop(可从Apache软件基金会获得)。
[0062]一个或多个实施例有利地使具有波动或仅增加的资源需求的基本不变的普通应用很容易地使用IaaS或PaaS平台能力。
[0063]值得注意的是,还存在针对网格上下文中的动态基础架构的现有工作,但网格没有与IaaS和PaaS云相同类型的接口以便供应和管理映像,因此网格的应用管理问题不同于云。同样,较旧的大型分布式基础架构项目(例如IBM的Oceano计算实用工具动力装置项目)并不与云中的底层单独层60、62、64协同工作。
[0064]现在参考图4的简单系统概述,一个或多个实施例采用添加到IaaS或PaaS云10的普通系统的应用资源管理器组件401以及应用组件403。该应用资源管理器根据应用需要扩展和收缩云资源。
[0065]为了执行这些任务,应用资源管理器与底层IaaS或PaaS云的管理接口(即,管理层64的上部接口)交互,同时应用使用云提供的映像和其它资源。在此,单词“映像”用于IaaS云提供的纯操作系统映像以及PaaS云提供的包括中间件的映像。就图3而言,IaaS映像是虚拟服务器,并且通常具有可用、易于供应的映像目录、对应于该目录的映像文件,以及已经供应并正在运行的实际实例映像。管理层64的资源供应组件将目录提供给层66的潜在工作负载,包含映像文件,并且导致在虚拟层62中建立实例映像(虚拟服务器)。当理解该过程时,有时仅谈论“映像”。在供应给应用的映像之上,具有普通应用组件的代码、数据、配置等。换言之,未经由云管理层供应的工作负载的部分(多个)组成应用组件。
[0066]应用资源管理器使用的管理接口可以包含OSS方面(操作支持系统,例如,到资源供应组件的直接接口)和BSS方面(业务支持服务,例如,到定价组件的接口,如果在进行其它供应时需要其它支付协议)。所有这些方面可以通过用户门户过滤,但在此假设这也包含API(应用编程接口)、Web服务接口等以便由工作负载层66中的自动程序使用,或者工作负载层66的程序可直接访问到个体组件(例如资源供应)的接口。
[0067]应用资源管理器401可以从应用所有者513 (在此使用的名称用于被授权预测应用需求的人员,以便将该角色与普通用户515区分开一参见图5)处了解即将发生的需求,或者可以从云管理获得的报告得出当前使用情况和趋势,以及通过观察应用获得当前使用情况和趋势。应用资源管理器401还可以了解基础架构故障,并且对它们做出反应以便达到特定可用性目标。
[0068]如果在最低程度上在至少某些实施例中需求更改,则应用资源管理器供应或隐藏映像或者更改其资源属性,例如虚拟存储或虚拟网络带宽分配。可选地,在供应的情况下,它还在新映像上供应应用级别软件和/或数据。
[0069]因此,一个或多个实施例提供一种系统,所述系统包括云10、至少一个应用组件403和应用资源管理器401,其中应用资源管理器针对应用组件扩展和/或收缩云资源以便满足应用资源需要。
[0070]在一个或多个实施例中,应用资源管理器使用IaaS或PaaS云的服务。有关这些组件及其交互的更多详细信息在图5中示出,图5提供更详细的系统概述。
[0071]应该注意,应用资源管理器401本身可能在云10上运行,也可能不在云10上运行。应用方框511是虚拟的;它指示应用资源管理器属于特定应用并且应该知晓应用结构。
[0072]继续参考图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的计量组件或服务水平管理组件)。
[0073]在一个或多个实施例中,应用资源管理器(例如401)的结构可以如图6中所示,其中组件提供以下示例性功能:
[0074]策略631确定长期目标,例如,可以作为应用的服务级别目标(而不是云的服务级别目标)给出的性能和可用性目标;换言之,这些是层66的目标,而不是层64的目标(作为该层实现的服务水平管理组件和SLA规划组件)。还可以将应用所有者的短期目标(例如那些与增加的性能需要的近期预测相关的目标)表达为策略。
[0075]管理组件633获得策略以及它从应用和云了解的内容,并且确定操作。这些操作具体包括向云供应、隐藏或取消供应请求,以及云管理平台允许的任何其它操作,例如扩展和收缩映像资源、实时迁移到不同服务器,或者从云中选择更高的服务级别(这例如可以包括更好的性能保证以及更高的可用性或可靠性保证)。
[0076]控制组件635将来自管理组件的抽象请求转换为与云管理平台的具体交互,所述交互例如经由应用编程接口(API)或Web服务接口。此类交互可以是多步骤序列,并且可能包括OSS和BSS级别步骤,例如选择映像大小以及选择支付方法或现有帐号。
[0077]解释组件637与控制组件相反,解释来自云的报告,例如有关应用自己的映像和其它虚拟资源以及整体云的使用信息,或者故障报告。
[0078]将控制组件和解释组件与管理组件分开的优点是应用资源管理器变得更易于适应不同的云。在图6的实例中,应用资源管理器被允许直接与应用组件交互,因为它特定于该应用。
[0079]现在将针对应用管理器的某些可能功能,提供其它非限制性的示例性详细信息。
[0080]针对监视,在某些实例中,应用管理器可以监视应用组件403及其使用情况,在应用的用户接口(其中例如可以应用应用服务水平协议(SLA))处和/或针对个体组件(例如517,519)监视;具体地说,针对那些在不同映像上部署的组件进行监视。应用管理器还可以经由云接口(即,从523)获得有关其云映像的当前使用情况的信息,和/或可以经由云接口获得有关云的当前整体使用情况的信息一这可能令人关注以便预测获得更多资源的效果(如果资源被共享)。
[0081]此外,还针对监视,在某些实例中,应用管理器可以(从523)获得有关其自己的映像故障的信息,以及云的常规可靠性;可以使用基于利用趋势的预测来估计将来需求(例如,预测每月峰值,或者预测需求的整体缓慢增加);以及/或者可以不时地由发现工具重新验证应用结构(进一步在别处讨论,并且可互换称为“重新发现”)。这些操作应用于应用的映像519和应用软件517,因为应用的用户515还可以具有特定权限以便进行更改。发现工具还可以有助于查找应用级别性能参数,例如当前数据库大小。
[0082]针对目标,在某些实例中,应用管理器可以从应用所有者处获得短期目标,这些目标对于当前性能而言是绝对或相对的。这些目标通常将应用称为整体(例如,交易吞吐量或对最终用户的响应时间),而不是指个体映像上的个体应用软件组件的性能。此外,应用管理器可以从应用所有者处获得高级目标(长期策略),例如以便始终提供特定SLA,或者始终具有特定数量的空间以用于突然更改;以及/或者它可以获得成本目标或限制,例如以便始终选择最便宜的整体资源集以提供所需的SLA,或者始终提供最好的可能性能,但仅最多到特定成本限制。
[0083]针对可能的决策,在某些实例中,应用管理器可以决定扩展和/或收缩分配给个体云映像(这些云映像被分配给应用)的资源。取决于云,这可以在适当的位置完成,或者通过将对应的应用组件517迁移到更大的映像519来完成。此外,应用管理器可以针对应用的使用,决定供应、删除或隐藏全部云映像。在这种情况下,它还应该在这些云映像上部署适当的应用软件。在这点上,应用管理器可以保留一个或多个黄金映像以用于该目的,即,已经包含应用的所有可重复部分的静止映像;以及/或者还可以使用迁移工具部署对应于当前整体应用状态的软件配置。
[0084]此外,还针对可能的决策,在某些实例中,应用管理器可以决定请求其它存储和/或网络资源,前提是云单独提供这些选择;可以决定如果它无法满足用户的当前策略或请求,则向用户发出警告;以及/或者可以定期或者在请求时向用户通知应用级别情况。
[0085]针对决策,在某些实例中,应用管理器可以通过采用优化求解器工具进行决策,或者它可以直接包含决策代码。如果云具有动态定价模式(例如,在周末成本较低),则它可以根据动态云成本进行决策。如果应用包含并非时间关键的方面并且可以在资源更便宜的时间内执行,则使用动态云成本尤其有用。
[0086]应该注意,在至少某些实例中,策略可以通过数据文件等中的参数实现,其中可以指定允许值和其它变量而不必更改底层编码(即,指定允许值或值范围的数据结构)。
[0087]针对策略方框631,在一个或多个实例中,同样确定目标或要求,或者有时确定在特定情况下应该发生什么。具体地说,它可以包含应用级别的策略(即,正式的目标和要求),例如应用级别交易的多少延迟可接受,距离可能针对多少个长时间运行的作业仍未完成而获得的最后期限有多近,或者预计有多少负载(例如,在月末)。它有时还可以包含基础架构级别策略,例如应该始终提供多少数量的空闲存储,应该在持续时间段内允许虚拟机(VM)具有什么级别的使用等。
[0088]管理方框633包括逻辑,该逻辑从策略631读取值,并获得有关系统中发生什么的数据输入(例如,在应用级别通过探测等获得,以及在解释方框637从云报告或映像级别监视获得),然后使策略631生效。实例包括确定应该分配、隐藏VM或者在其它VM上启动服务;判定是否应该增加VM的存储器和/或CPU分配;判定是否应该增加和/或减少存储;
坐坐寸寸ο
[0089]控制方框635提供到不同体系架构的接口 ;例如,如果云只是虚拟机软件(vmvare),则它将与vmrun接口交互以便控制VM。即,控制模块635转换来自管理模块633的指令,以便管理云资源的资源供应模块(参见图3中的层64)等可以理解这些指令。
[0090]针对解释方框637,同样提供到不同云体系架构的接口 ;例如,如果云只是虚拟机软件,则它可解释来自虚拟机软件接口的性能报告;以及/或者提取能够在VM内部运行的探测。在某些实例中,云可以提供映像的CPU利用率(例如参见图3的层64中的计量和定价)。管理方框633将通知解释方框637它需要所有映像的CPU利用率,方框637将转换该通知并向计量和定价方框提供所需的命令,并且将特定于云的结果转换为命令格式。在某些实例中,ARM401与它在自己的层(除了或代替云接口)上管理的映像建立连接,例如以便监视应用级别延迟(即,普通应用用户515必须等待多长时间才获得结果)或者了解长时间运行的应用的状态。在这些情况下,应用软件517可以提供IP监听服务或用于管理的Web接口,并且应用管理器建立对应的连接并发送对应的管理查询。
[0091]在某些实例中,ARM401在普通映像上具有帐户,并且可以使用该帐户登录到普通映像并执行合适的命令,以便直接从映像读出CPU利用率。在某些情况下,可以对应用进行编程以便响应合适的查询,例如在最近10分钟内执行多少个交易。
[0092]为避免疑义,“应用”在此上下文中指执行最终需要的功能(并且未由云提供)的代码,例如WEBSPHERE软件中的JAVA代码,或者DB2软件中的特定数据库模式,或者通常为这些类型代码的组合,例如提供购物车应用或差旅报告应用所需的所有代码段。探测是与其它软件通信以便获得所需值的软件块,其不同于热电偶之类的物理探测。
[0093]作为详细但非限制性实例,考虑具有(通常多个)Web服务器、应用服务器和数据库的三层体系架构。希望将针对最终用户请求的平均延迟保持在特定阈值之下。延迟可以由任何元件过载所导致。希望测量延迟以便响应请求(应用特定的,例如http服务器响应请求需要多长时间)。
[0094]在该实例中,策略方框631定义多少延迟应该可用于响应入站请求,并且可能定义系统的正常状态应该是什么。解释方框637与提供有关个体组件的信息的探测对接。管理方框633使用策略方框631和来自解释方框637的数据以及与应用软件的直接通信而做出决策,例如以便增加处理入站请求的VM数量以降低延迟(如果延迟过高),从而可能确定3个层中的哪个层是瓶颈以及需要被增加。管理方框633与控制方框635对接以便指示云克隆现有主模板VM并使其在线,然后负责将适当的数据放在云上并将其绑定到应用,以便它可以承担负载。
[0095]相反,如果延迟远低于界限并且VM数量多于正常稳定状态数量(按照策略631),则管理633可以指示控制635缓慢关闭VM,并且负责重设应用,以便例如通过修改应用级别负载平衡器策略,由剩余VM处理所有工作负载。
[0096]作为有关该非限制性实例的进一步详细信息,策略631定义多少延迟应该可用于响应入站请求以及系统的正常状态应该是什么:
[0097]
【权利要求】
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的方法,还包括提供一种系统,其中所述系统包括不同软件模块,每个所述不同软件模块包 含在计算机可读存储介质中,并且其中所述不同软件模块包括业务敏捷性组件构造器模块和应用资源管理器模板模块; 其中: 由在至少一个硬件处理器上执行的所述业务敏捷性组件构造器模块执行所述获得、实例化和组装步骤;以及 由在所述至少一个硬件处理器上执行并访问所述业务敏捷性组件模板模块的所述业务敏捷性组件构造器模块执行所述标识步骤。
【文档编号】G06F7/00GK103930863SQ201280049844
【公开日】2014年7月16日 申请日期:2012年10月5日 优先权日:2011年10月11日
【发明者】M·V·德瓦拉孔达, N·A·尤科夫, B·普费茨曼, S·波特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1