云计算(Cloud Computing)是当前 IT 领域的热点,它的目标之一是通过互联网,使用户更加方便、快捷、灵活地使用各种有质量保障的 IT 资源,这些资源以服务形式提供,终极的云计算环境将使得消费这些服务就像今天使用水、电和煤气等公共基础设施一样便捷。
通常,云计算包括三个主要的层次:基础设施服务(Infrastructure Services),平台服务(Platform Services)和应用服务(Application Services)。如图 1 所示:
其中,平台服务已经成为实践云计算的重点之一,它将应用运行所需的 IT 资源和基础设施以服务的方式提供给用户,包括了中间件服务,信息服务,连通性服务,整合服务和消息服务等多种服务形式。为实现平台服务,业界提出了 “平台即服务(Platform as a Services,以下简称 PaaS)”的交付模式。PaaS 模式,基于互联网提供对应用完整生命周期(包括设计、开发、测试和部署等阶段)的支持,减少了用户在购置和管理应用生命周期内所必须的软硬件以及部署应用和 IT 基础设施的成本,同时简化了以上工作的复杂度。为了确保高效地交付具备较强灵活性的平台服务,在 PaaS 模式中,平台服务通常基于自动化的技术通过虚拟化的形式交付,在运行时,自动化,自优化等技术也将被广泛应用,以确保实时动态地满足应用生命周期内的各种功能和非功能需求。
具体来说,搭建传统 IT 基础平台是一个漫长的过程,通常由申请,审计,硬件购买与运输,硬件安装与配置,软件安装与配置等步骤组成。在这个过程中繁复的手工配置工作费时费力,而且容易产成人为配置错误。同时,平台环境的升级维护也面临人为配置错误频繁产生问题,造成不必要的影响和损失。由于这些原因,搭建完成的应用运行平台,即使在一定时期内不再需要,也不会被及时释放回收,以供新项目使用。这是造成空闲硬件资源的原因之一。此外,传统基础平台提供的应用运行能力是静态的。然而在不同时间,应用负载往往是不一样的。为了确保高负载时应用的正常运行,应用运行平台必须能够提供最高运行能力,这就造成了非高峰时的众多空闲硬件资源。
云计算的产生,尤其是平台服务的理念,从产生空闲硬件资源的根本原因入手。建立了快速搭建部署应用运行环境和动态调整应用运行时环境资源这两个目标。依据虚拟化与自动化技术实现应用运行环境的即时部署以及快速回收,降低了环境搭建时间,避免了手工配置错误,快速重复搭建环境,及时回收资源,减少了低利用率硬件资源的空置。另一方面,根据应用运行时的需求对应用环境进行动态调整,实现了应用平台的弹性扩展和自优化,减少了非高峰时硬件资源的空置。
在实际应用中,PaaS 模式的重要应用场景之一是向用户交付一个支撑应用运行的应用运行平台(Applications Running Platform,以下简称 ARP)。基于 PaaS 模式构建应用运行平台,需要满足以下典型需求:
针对上述需求,基于 PaaS 模式构建 ARP 的解决方案至少需要包括如下组件:
如下图 2 所示:
下面,我们将结合 IBM WebSphere 产品家族中支持 PaaS 的产品,介绍如何基于 PaaS 模式构建应用运行平台。
在 IBM WebSphere 产品家族中有一些核心的产品提供 PaaS 支持。包括 WebSphere Virtual Enterprise, WebSphere CloudBurst Appliance, IBM Software Hypervisor Edition 等。下面逐一做个简单介绍。
WebSphere Virtual Enterprise (以下简称为 WVE) 为企业能够动态且可靠地适应商业需求的变化,提供一个完整的应用基础架构虚拟化环境。在这种应用虚拟化环境中,应用程序与服务器是一种松散耦合的模式,随着访问量的不断变化,运行应用程序的服务器的数量以及位置是动态变化的。同时,WVE 针对这种应用基础架构的虚拟化提供了方便的监控手段以及自动管理的机制,方便管理员对整个环境的管理。作为 PaaS 模式中的运行时控制组件,WVE 主要具有以下特性:
传统的静态集群的拓扑结构是不变的,而 WVE 提供了一种应用基础架构的虚拟环境,它共享硬件资源,应用程序运行在动态集群上,WVE 会根据系统中当前资源的使用情况,以及用户自定义的性能目标来动态启动和停止集群中运行着的成员服务器的数量。WVE 提供一个重要的组件——随需应变路由器(On Demand Router,简称 ODR),是一个智能的代理服务器。客户请求首先经过 ODR,进行请求分类和流量控制,然后由 ODR 根据预定义好的应用的性能目标以及后台服务器当前的负载情况选择一个合适的服务器处理请求。如图 3 所示:
在 WVE 中,可以为应用程序或者访问应用的不同用户定义性能目标,即服务策略。定义服务策略包括定义应用的平均响应时间,以及相对的优先级。运行时,WVE 根据服务策略决定如何对不同应用请求进行负载分发和流量控制,以及决定服务器资源池中服务器的分配。
系统运行状况的监控和管理能够更有效的保障应用的服务质量,从而进一步提升应用服务器对于应用的透明性。系统运行状况监控用于自动检测系统的运行状况,当不良状况被检测到后会自动执行纠正措施。WVE 通过健康策略实现对环境运行状况的监控,健康策略包括运行状况和措施两部分。 WVE 预先定义了一些常用的不良运行状况。除此之外,用户还可以定制运行状况条件。当指定的不良状况被检测出来后,WVE 可自动执行一个预定的行动计划,如通知管理员,捕获诊断信息(Java thread 或 heap dump),重启 Server 和把 Server 置成维护模式等,避免系统发生严重问题。用户也可以定制行动计划,以满足多样的需求。比如可以让定制的行动计划去执行一个脚本,调用 WebSphere CloudBurst Appliance 的 Rest API,将额外的应用服务器资源加入到 WVE 的资源池,避免高峰访问时刻的服务质量降低。
WebSphere CloudBurst Appliance
2009 年 6 月发布的 WebSphere CloudBurst Appliance (以下简称 WCA)是一个提供简便,快速,及可重复的 WebSphere 虚拟环境部署和管理的硬件产品。以 Appliance 形式出现的 WCA 使用便捷,可同时管理多个基于不同 Hypervisor 的硬件资源池。WCA 预制了基于多年 WebSphere 产品使用经验的拓扑模式,设计了丰富的角色划分和权限管理以及全面的安全机制,实现了对 WebSphere 云环境的完整生命周期管理和监控,从而达到节省 IT 开销,程序化 IT 基础架构,提高 IT 敏捷应对能力,规范化和自动化搭建应用运行环境的目标。
在 PaaS 模式中,WCA 提供了 需求与运行策略库,软件映像库 和 平台交付组件 的角色 。 作为 需求与运行策略库,WCA 提供了定义应用各种需求的方式,如拓扑模式,健康策略,服务策略等。作为软件 软件映像库,WCA 内置了多种软件的虚拟映像(详见 2.3 IBM Software Hypervisor Edition)。作为 平台交付组件,WCA 可以基于预定义的用户需求,将应用运行所需的软件快速部署于 ARP 资源池。同时,WCA 提供了动态调整应用运行平台的 REST API。当 运行控制组件 的调整策略 ( 如 WVE 的健康策略 ) 被触发时,通过 REST API,WCA 能够即时调整 APR 资源池以满足当前应用需求。
在 2010 年 6 月刚发布的 WCA 2.0 版本中,增加的主要新特性有:
IBM Software Hypervisor Edition
在 WCA 提供的软件映像库中,内置了多种 WebSphere 家族及其相关产品的虚拟映像版本,即 IBM Software Hypervisor Edition。虚拟映像是云计算虚拟化技术的基本组成部分,用来部署在 Hypervisor 上以提供应用运行所需的虚拟环境。对于传统的一台硬件机器一个专属环境的方式,一台硬件在安装了 Hypervisor 之后,通常可以同时运行多个虚拟环境,从而节约硬件资源。此外,与传统环境相比,虚拟环境还具有快速搭建和回收的特性。
以 WebSphere Application Server Hypervisor Edition 为例,虚拟映像版本自带有操作系统,预先安装的软件产品,和在激活过程中运行的配置与调优脚本。激活一个 WebSphere Application Server Hypervisor Edition 虚拟映像意味着得到一个已经安装和配置了中间件的操作系统,只需要完成对应用的安装和配置就得到一个完整的应用运行环境。
目前已发布的虚拟映像版本主要有:
WCA 使用这些虚拟映像自动化搭建和部署应用运行平台。同时,基于特定 Hypervisor 的虚拟映像版本也可独立购买和使用。IBM 对这些虚拟映像版本提供技术支持和定期升级服务。虚拟映像版本降低了产品安装部署的复杂性,减少了人为调配错误的产生。使用虚拟映像,用户能够快速和重复搭建虚拟化的应用运行环境。
现在我们通过一个示例,来详细阐述如何使用 IBM WebSphere 产品构建一个基于 PaaS 模式的应用运行平台。图 3.1 给出了采用 IBM WebSphere 产品构建基于 PaaS 模式应用运行平台解决方案示意拓扑。用户首先通过 WCA 及其内置的 Hypervisor Edition 虚拟映像定义应用需求,创建应用运行平台,和提供运行策略。在运行过程中,WVE 负责监控和调整运行策略。如果现有的应用环境不能满足运行需要,WVE 会调用 WCA 的 REST API 对 ARP 资源池进行动态调整。
这样的应用运行平台充分利用和整合 WCA 的自动化部署和 WVE 的自优化功能,实现了应用平台在运行时的弹性扩展,满足了应用运行的动态需求,大大减少了人工维护和调整的工作,体现了一个云计算的最佳实践。
WCA 提供需求与策略库,软件虚拟影像库和平台交付组件的功能,用户通过其定义需求与运行策略;软件虚拟映像库由各种 IBM Software Hypervisor Edition 虚拟映像介质构成;WVE 提供运行时控制组件的功能,控制服务器资源的动态负载均衡以及运行时健康检测,并向 WCA 提供调整策略。下面,将简要介绍基于 WCA 和 WVE 构建应用运行环境的具体操作步骤。
首先,从 WCA 的管理界面,定义一个由应用服务器(WebSphere 应用服务器)和数据库(DB2)组成的典型拓扑模式。这个拓扑构成我们最初的应用运行平台。在部署该拓扑时,应用将以脚本形式来安装。使用 WCA 我们能够一次性和重复性的构建应用初始运行平台。如图 7 所示:
其次,为应用运行平台环境设定各种策略,包括服务策略和健康策略。可以在部署运行环境前从 WCA 的管理界面定义健康策略,如下图 8 所示。
如下图 9 所示,也可以在环境部署好之后从 WVE 的管理控制台上设定健康策略和服务策略。图 3.4 中定义了健康策略 HP_CALL_WCA,健康条件是自定义的 PMIMetric 条件,当平均响应时间超过 10 秒时,WVE 将自动执行预定义的动作——通过脚本的方式调用 WCA 的 REST API。
如图 10 所示,在 WVE 管理控制台中为应用设定服务策略 SP_Gold,性能目标是平均响应时间为 2 秒,相对优先级是 High。
前面提到,在 WVE 的运行环境中动态集群的运行着的服务器实例数是随着系统负载情况的变化而变化的,而动态集群有一个最少运行服务器数量的配置,即当环境部署完成准备运行时,最少运行服务器数量的服务器会被自动启动。
随着系统负载的增加,当正在运行的服务器承载不了更多负载时,WVE 会从共享资源池中自动启动闲暇的服务器,增加系统的服务能力,如图 11 所示:
在更重的压力下,当资源池中所有可用服务器实例都已运行,仍然不能满足预定义的性能目标时,可以触发如图 3.4 中自定义的健康策略,执行调用 WCA REST API 的脚本,触发 WCA 向现有的资源池中增加可用资源。
以下是在已部署的虚拟环境中动态增加虚拟机的 REST API 详细介绍:
在前面的图 10 自定义的健康策略的健康动作,是自定义的 Action_CALL_WCA,其中定义了可执行程序。这个可执行程序可以是一个 Java 程序,或者是使用 Python 等脚本编写的程序,来调用如下的 REST API:
(1)、获取虚拟系统列表的例子:
(2)、获取某虚拟系统中虚拟机列表的例子:
(3)、请求 WCA 向已有虚拟系统中添加新虚拟机的例子:
WCA 的 REST API 被触发后,通过部署新虚拟映像扩展现有的拓扑,新增的节点被纳入应用运行平台,以满足预定义的性能目标。
类似的,在目前应用的压力减少而其他应用需要更多资源时,可以通过调用 WCA 的 REST API 删减应用运行平台的规模,释放 APR 资源供其他应用使用。
IBM 面向 PaaS 模式,推出了平台服务部署管理专用设备 WCA,应用运行虚拟化平台 WVE 以及 IBM Software Hypervisor Edition。在采用上述产品的应用运行平台的解决方案将为用户提供以下三方面重要能力:
这些产品可以独立使用以满足企业在实现不同云计算方案的具体需求。同时也可以很好的共同使用。通过 WCA 方便快捷部署基于 IBM Software Hypervisor Edition 的虚拟环境,提高了应用运行环境的构建效率和重复构建能力。WCA 与 WVE 的共同使用,提高了应用运行时资源的利用率与敏捷性。这些产品的结合使用实现了从部署到运行状态以及项目结束资源回收的端到端解决方案,充分体现了云计算的特性与理念。
总之, IBM WebSphere 产品为构建面向平台服务的云计算环境提供了坚实的基础。采用 IBM WebSphere 产品,基于 PaaS 模式的应用运行平台解决方案将帮助用户有效运用云计算的核心技术,有效实现平台服务的价值。
联系客服