机房360首页
当前位置:首页 » 云计算平台 » 云架构平台层服务示例

云架构平台层服务示例

来源:机房360 作者:scarlett编辑 更新时间:2013-2-28 14:31:33

摘要:本文将结合具体示例进一步介绍平台层的设计。该示例中的平台层运行于基础设施层之上,为开发人员提供支持离线开发的SDK和集成开发测试环境,实现了客户应用的自动部署和动态伸缩,并为用户提供了所需的运维环境。通过这个示例,我们将了解平台层如何实现基本功能,以及这些基本功能是如何在一起相互协作的。

  1 ·总体设计

  如图4·7所示的平台层示例构建在基础设施层示例的基础之上。平台层包括了开发、运行和管理三个环境及这些环境所提供的一系列平台层服务。开发环境为用户提供了快速开发各类应用的支持;运行环境为运行不同的应用提供了一个共享的中间件平台;管理环境则支持不同角色的用户以层级的方式对资源进行管理。

  本示例中的平台支持基于J2EE的企业解决方案模型。应用服务器和数据库服务器集群起来形成共享的中间件资源,每个应用拥有自己独立的虚拟化运行环境,云平台保证不同应用的数据和运行实例被有效地彼此隔离起来。在基础设施层构建好以后,本示例所包括的平台层实现被打包成为虚拟解决方案,调用基础设施展的资源部署功能对平台层进行初始化部署和激活,从而使平台层进入运行状态。

  本示例中的应用服务器和数据库服务器集群都采用了多租户技术来进行租户隔离。同一个应用的不同祖户的数据都被彼此隔离起来。侮个租户可以根据自己的需要对应用程序进行定制,从而满足具体的业务和个性化需求。在基础设施层构建好以后,本示例所包括的平台层实现被打包成为虚拟解决方案,调用基础设施层的资源部署功能对平台层进行初始化部署和激活,从而使平台层进入运行状态。

  本示例中的平台层服务是核层为用户提供的服务的集合,主要包括应用上线/下线、应用升级、应用监控、应用配置、应用开发和应用测试等。这些服务与平台层的基本功能相对应,是用户获得平台层能力的接口。

  本示例提供了开发、运行与运维三个环境。简单来说,在开发环境中,开发人员使用平台层提供的SDK和集成开发环境开发应用。同时,平台层为用户提供了一个模拟运行环境,使开发者可以模拟应用在云生产环境上的运行情况,并进行调试。当开发工作完成后,开发人员将应用按照平台层的规范打包,使用SDK中提供的应用上载服务将应用在平台层上部署和激活。运行环境为应用提供运行时所需的支持,保证其可以自动、高效、高性能地运行。另外,运行环境还持续地监控应用的性能,保证其隔离性与可伸缩性,根据工作负载调整资源供给。最后,运维环境还为用户提供应用的上线、升级、维护和下线管理,以及应用运行状态监控和配置等服务。下面我们以这三个环境为线索来介绍本示例中,平台层的基本功能及其为用户提供的服务。

  2 ·开发环境

  作为一个开发平台,开发环境首先需要定义自已支持的应用模型,本示例采用J2EE规范作为应用模型,开发人员可以采用他们熟悉的语言与开发范式来开发应用。

  对于任何一个支持上层应用运行的平台系统来说,它都必须提供清晰的上层应用的模型。模型定义中一个非常重要的问题就是如何描述将要提供给外界的服务,以及该服务将要以何种方式来提供。无论采用何种方式,云应用中都必须包含对核服务接口的定义,以及描述该服务运行肘配置信息的元数据,从而使得平台层能够衣云应用部署的时候将该服务变成可用状态。

  云应用比较常见的服务提供方式有REST(Representational State Transfer)和SOAP(Simple Object Access Protncol)方式。REST是面向资源的一种软件架构风格,通常对资源的操作有获取、创建、修改和删除。SOAP足通过HTTP方式以XML格式交换信息的一种协议,有着完备而复杂的封装机制和编码规则。

  为支持应用与平台层的无缝整合,开发环境提供了自己的平台SDK。SDK包括平台API和通用服务API,以JAR包的形式发布。该SDK能够模拟出与真实运行环境非常相似的测试环境。测试环境应该尽量简单,不需要在架构上完全对生产环境进行复制,只需要保证运行时生产环境中可用的各种服务同样在测试环境中适用,并且所有的使用条件和限制也在测试环境中被反映出来,比如对磁盘写操作的限制和对网络I/O的限制等。平台层同时开发了插件,使SDK有选择地与流行的集成开发环境(IDE)比如Eclipse等整合。通过可视化的方式简化整个开发过程中的配置和操作,为用户提供良好的开发体验。

  3 ·运行环境   

  运行环境需要解决两方面问题,首先是应用之间的隔离性。每个应用对于其他应用都是不可见的。其次是应用的可伸缩性,应用的容量和能力应该根据访问需求动态的改变。

  在本示例中,平台层通过将支撑应用的中间件运行在不同的虚拟机中来解决隔离性的问题。平台为不同的应用分配不同的虚拟机,在这些虚拟机中运行相应的中间件实例。通过为不同的应用分配不同的虚拟机和中间件实例,每个应用都拥有自已的虚拟运行环境,并且与其他应用互不干扰。

  示例中的平台层通过虚拟化技术可以很好地实现动态伸缩。根据虚拟解决方案中的功能软件配置方式的不同,动态伸缩实现的方式也不同。包含应用服务器和数据库服务器的虚拟解决方案,根据应用服务器和数据库服务器之间配置关系的不同,其平台层可实现的动态伸缩有两种基本方式,如图4.8所示。图4.8中左侧所示为应用服务器和数据库服务器打包在同一个虚拟机里,应用服务器配置成直接使用同虚拟机内的数据库服务器,动态伸缩时直接增加或者减少虚拟机的数量即可。图4.8中右侧所示为应用服务器和数据库服务器位于不同的虚拟机中。动态仲缩时要分别考虑所需要的应用服务器或者数据库服务器的数目。虚拟机数目调整后要更改相应应用服务器和数据库连接的配置,使得应用服务器可以使用新的数据库且数据库的负载是平衡的。

  4 ·运维环境

  运维环境需要能够有效地处理应用的上线、升级、卸载和应用的在线配置等。由于本示例针对J2EE应用,因此对上线/下线和升级而言,运维环境的操作包括两个部分,一个是在J2EE中间件上进行部署、升级与卸载的标准流程,另一个是在管理系统中的信息更新,比如应用的注册信息、版本信息等。

  本示例的运维环境为用户提供管理功能,支持平台管理员和应用管理员两种不同的管理角色。被管对象以资源的方式展现给管理员,不同角色的管理员所能查看和操作的资源不同。图4.9和图4.10分别展示了平台管理员和应用管理员所能够接触的资源。需要指出的是,在平台管理员看来应用的表现形式足虚拟解决方案,即构成应用的一组虚拟机和虚拟机中的软件栈,虚拟解决方案运行起来是一组占用IT资源的系统。而在应用管理员看来,应用的表现形式就是运行环境申的应用所展示出来的一系列可被访问的功能和服务。如图4.9和图4.10所示还表明,管理员所接触的资源组织成层次结构,即某项资源可包括一系列组成模块,这些模块本身也是可被查看和操作的资源。

  图4.9描述了平台管理员所管理的资源。在平台云中,每个节点都是一个系统,其包括了在该节点上运行的从操作系统到应用程序的整个软件堆栈;每个解决方案包括了支持某个或某几个应用的所有软件集合。每个解决方案由若干个系统组成,这些系统中的软件相互协作提供解决方案所需的各种功能。平台管理员主要关注云平台中所运行的解决方案、系统和系统中包括的操作系绕、中间件和应用的资源使用和运行状况,比如:1)云平台运行了多少个解决方案以及多少个应用;2)云平台系统的可靠性;3)每个解决方案以及应用的工作负载和性能;4)各类软件资源的关键性能指标,比如应用服务器的JVM堆栈使用状况以及数据库服务器的响应时间等。

  应用管理员则更关注所拥有的应用的运行状况。图4.10描述了应用管理员所管理应用资源的层级结构。应用管理员在应用运行状况方面,主要关注:1)账户下有多少个应用,以及应用的生命周期管理;2)每个应用实时的可用性、吞吐量以及响应时间等监控信息;3)每个数据源的连接池使用率和JDBC操作的性能,以及根据这些监控信息对数据源进行优化;4)数据库的数据统计信息,以及对数据库的维护操作;5)应用消息服务的实时监控信息,比如当前队列中的消息数目以及消息处理的性能;6)各类EJB的监控数据,比如EJB实例的创建频率以及响应时间等。在应用使用方面,应用管理员主要关注:1)当前应用有多少个用户;2) 每个用户订阅了应用所提供的哪些服务;3)每个用户的服务使用情况以及相应计费;4)当前应用的各类统计报表,比如计费报表等。

  责任编辑:scarlett

  更多内容请关注机房360,www.jifang360.com,中国绿色数据中心

本文地址:http://www.jifang360.com/news/2013228/n949145552.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片