基于角色的PaaS分类法
A Role-based PaaS Taxonomy
深圳市金蝶中间件有限公司 滕 腾 林 琳 李伟彬

摘要

根据ISO/IEC JTC1/SC38云计算参考架构草案中定义的用户视图,在PaaS层面对云计算参与者的角色进行映射、裁剪和扩展,形成了PaaS参与者的角色。在此基础上,提出了一种基于角色的PaaS分类法,对PaaS的内容进行细分。该分类法可作为PaaS的架构开发过程中分层和组件切分的依据,并可为PaaS的业务构建和使用,以及PaaS相关标准的制定提供参考。

关键词

云计算 平台即服务 角色 分类法

Abstract

ISO/IEC JTC1/SC38 has proposed a user view of Cloud Computing, in the latest work of Cloud Computing Reference Architecture. According to the user view, this paper maps, tailors and extends the actors’ roles in Cloud Computing in the perspective of PaaS, which forms the actors’ roles in PaaS. Applying the roles in PaaS, the paper proposes a role-based PaaS taxonomy, and subdivides the contents provided in PaaS. The taxonomy can be used in the architecture development of a PaaS-based system, while can be used for the reference of the business provision and use, as well as the establishing of related standards.

Keywords

cloud computing; Platform as a Service; role; taxonomy

  • 平台即服务(Platform as a Service,PaaS)是云计算的一种服务模式,它能够提供部署和运行软件的能力。PaaS内部维护着一套软件堆栈,包括应用框架、软件运行时环境、中间件、数据库等,对外提供透明的软件运行平台。随着基础设施即服务(Infrastructure as a Service,IaaS)和软件即服务(Software as a Service,SaaS)模式云计算产品的逐渐成熟,越来越多的厂商将其关注点放在了平台层面,希望通过PaaS提供更加灵活高效的云计算服务,打造基于平台的生态圈。在PaaS的平台服务堆栈之上,应用程序的运行能够获得可弹性伸缩的计算资源的支撑。同时,用户也可根据其业务量按需订购平台资源,定制运行环境,包括平台中包含的供应用程序调用的功能服务种类,服务提供的中间件资源数量、规模、使用时间等。

    由于软件运行平台涉及的范围较广,PaaS的生态系统中包含各种类型的平台,从不同的角度为用户的业务需求提供平台层面的服务。通常,PaaS厂商可根据其支撑的具体业务类型和场景定义其PaaS所涉及的内容。不同厂商的PaaS产品所覆盖的内容,设计的视角也不尽相同。从目前PaaS相关厂商和产品来看,业界对PaaS的看法尚未统一。因此,本文将从PaaS参与者的视点对PaaS进行分类,形成基于角色的PaaS分类法,对PaaS范畴的界定、PaaS的使用和业务开展以及相关标准制定提供参考。

  • 随着云计算的发展,云计算的概念、架构的规范化和标准化工作也越来越多,国际、国内的各大标准化组织、咨询机构和厂商均已参与到其中。对云计算的参与者进行分类是其中的重要工作。

    NIST在2011年制定了NIST版本的《云计算参考架构》,提出了一个高度抽象的云计算参考架构,被业界广泛接受。NIST的《云计算参考架构》提出了一种分类法,将云计算业务按照角色-行为-组件-模块四个层次进行划分。在第一层角色的划分中,NIST将参与云计算的角色分成了提供者、消费者、代理、审计者和承载者,每个角色可以执行一系列相关的行为,如提供者的行为包含云服务的部署、云服务的编排、云服务的管理以及安全与隐私保障等。每个行为代表从其所属角色的视角对云计算业务和功能的一种划分,由一系列组件共同支撑,部分组件还可继续划分为若干独立的模块。因此,NIST的云计算分类法中每个不同的角色之间的内容是可能重合的。

    Gartner对PaaS做了进一步细分,将PaaS分为两类:应用PaaS(Application Platform as a Service,APaaS)和集成PaaS(Integration Platform as a Service,IPaaS)。

    APaaS是指用来托管应用程序的平台服务。此类平台的服务包括为多租户应用程序运行优化的容器服务、持久性和内存数据管理、同类环境下服务的独立管理与独立安全、多语言开发工具及编程模型、元数据管理和以计费与优化为目的监控等内容。IPaaS是用于应用集成的平台服务,提供一组在云中及企业内整合应用的服务和能力,不仅可以支持与现有云服务之间的无缝连接,而且可以安全地提供本地应用或服务的访问能力。

    APaaS是提供设计和运行应用所需构件的平台,根据所提供构件的不同,Gartner又将APaaS分为以实例PaaS(Instance PaaS),框架PaaS(Framework PaaS)和元数据PaaS(Metadata PaaS)。实例PaaS将应用直接部署到云中的虚拟机实例中,可支持具有高伸缩性需求的、复杂的互联网应用和企业应用,支持云环境和本地环境的混合部署模型。微软的Windows Azure、亚马逊的Beanstalk和VMware的Cloud Foundry等均属于实例 PaaS的范畴。框架PaaS仅支持构建和部署基于特定框架的应用,应用开发人员在开发应用程序时必须遵循PaaS的框架,应用程序的运行与管理完全由框架来负责。此类服务以公有云居多,谷歌的Google App Engine(GAE)和Salesforce.com旗下的heroku等平台服务均属于框架PaaS的范畴。元数据PaaS除了提供应用程序运行时环境之外,还通过设计良好的元模型体系来提供元数据驱动的开发模式和可视化开发环境,包括设计数据模型、工作流程、用户界面和报表等能力,可以实现细粒度的业务定制和复用。Force.com和OrangeScape是元数据 PaaS的典型代表。

    ISO/IEC JTC1/SC38(分布式平台应用服务分技术委员会)目前正在制定云计算参考架构,并在云计算参考架构的研究中提出了一种面向“用户-功能视图”的参考架构开发方法。其中,用户视图定义了云计算的参与者由客户(Customer)、提供者(Provider)和协作者(Partner)三种角色组成,每个角色是一组行为的合集,角色内部关联紧密的行为可组成若干子角色。功能视图则定义了能够支撑角色视图中行为的必要的功能。

    相比NIST的云计算参考架构,SC38的云计算参考架构将角色和功能放在了架构的两个层面上,使功能和角色不存在必然的关联,从而使功能视图能够从全局的角度进行切分,避免功能之间的重叠。Gartner的PaaS分类法对现有的PaaS产品进行了分类和总结,但由于IPaaS的市场尚未成熟,其重点仍停留在APaaS上。

  • PaaS作为一种典型的云计算服务模型,其架构应符合SC38所提出的云计算参考架构。在PaaS的用户视图内,PaaS活动的参与者可以包含一个或多个角色和子角色的行为。由于子角色包含的行为之间关联比较紧密,通常具有相同的目标,可以认为子角色包含的行为可全部被某个参与者覆盖。因此,在建立PaaS的分类模型时,可以将子角色作为PaaS分类的最大粒度。

    下面将采取基于角色和子角色的模型对PaaS进行分类。基于角色和子角色的分类模型如图1所示。在分类模型中,参与者代表PaaS厂商的产品。首先将PaaS活动的参与者按照SC38的云计算参考架构的角色进行对应和裁剪,然后将PaaS的子角色进行编号,最后按照现阶段PaaS产品可能覆盖的子角色范围对子角色进行分组,形成PaaS的分类法。这种PaaS分类法具有可扩展性,可根据PaaS的产品内容变化衍生出相应的子角色组合,扩充PaaS的类别。本文所讨论的PaaS分类法只涵盖从用户视图对PaaS的分类,并不讨论PaaS内部部署和实现方法的差异。

  • 根据SC38的用户视图,PaaS的参与者分为客户、提供者和协作者三个主角色。其中,由于PaaS的服务模式已经将用户使用云服务的方式限定在平台层,从客户角色的角度只有一种服务模式分类,因此,在PaaS分类法中只需考虑提供者和协作者两个角色的分类。

    PaaS提供者的子角色

    PaaS提供者的子角色由SC38的云计算参考架构的提供者映射而来,本文以此为基础针对PaaS对子角色进行了合并和裁剪,经过合并和裁剪后的PaaS提供者的子角色如图2所示。

    由于PaaS的实现方式有多种,对于PaaS层面的资源管理与其实现联系紧密,因此在PaaS的分类法中,将云服务资源管理者的角色与云服务管理者合并。安全与风险管理者是云计算活动中的重要角色,它通常与云服务管理者同步出现,在分类法中二者体现不出不同PaaS的差异化,因此,也将其与云服务管理者合并。另外,云网络提供者是云计算中必不可少的角色,但并不属于PaaS范畴,因此不作为分类法中的子角色。PaaS提供者的子角色的行为范围如表1所示。

    表1 PaaS提供者子角色的行为范围
    子角色 行为范围 类别号
    云平台服务业务管理者 发布云平台所提供的软件运行环境信息,管理PaaS业务方案,管理缴费流程,管理客户关系等 PR1
    云平台服务部署管理者 定义支撑PaaS运行的环境,定义PaaS组件部署的步骤、流程和规范,定义PaaS的度量标准和采集方法等 PR2
    云平台服务管理者 提供PaaS,管理云平台资源的性能和使用情况,监控和管理PaaS,实施服务的部署、调试、测试验证,管理云平台的安全风险,管理已部署的平台软件、虚拟设备等资产 PR3
    客户关怀与支持 提供客户服务,响应客户的请求,帮助客户寻求技术支持 PR4
    云间平台服务提供者 跨多个云平台提供集成化的PaaS PR5

    PaaS协作者的子角色

    PaaS协作者的子角色参考并扩展了SC38的云服务协作者的子角色,如图3所示。

    云服务开发者作为云计算中软件的开发者和提供者,并没有直接参与到PaaS的供应过程,因此在分类法中没有体现。PaaS作为平台层面的云计算服务模式,协作者能够在PaaS提供的软件运行能力基础上提供软件开发平台,因此在PaaS协作者的子角色中应增加PaaS开发平台提供者。PaaS协作者的子角色行为范围如表2所示。

    表2 PaaS协作者子角色的行为范围
    子角色 行为范围 类别号
    PaaS审计者 执行审计和评估,报告审计结果 PN1
    PaaS代理 获取和评估客户,评估市场,建立法律协议 PN2
    PaaS开发平台提供者 提供可供软件开发、调试、测试、版本管理的平台环境,提供可用于团队开发的开发平台 PN3
  • 随着PaaS的不断成熟,越来越多的厂商加入到了PaaS的生态系统中,PaaS的市场正在不断扩张。在未来的PaaS生态系统中,厂商将整合资源,整体布局PaaS市场。同时,PaaS及其相关的服务将会逐步细分。细分的服务不仅会为更多的中小型服务商带来机会,还会影响到大型服务商的产品布局粒度。基于角色的PaaS分类法能够从角色的角度为PaaS产品细分提供方向性的参考.

    在PaaS产品细分的趋势下,PaaS的标准化工作将受到业界企业和组织更多的关注。本文提出的基于角色的PaaS分类法能够为PaaS的标准化提供参考,作为PaaS架构、技术和接口标准制定和布局的参考依据。一方面,PaaS参考架构的制定可通过角色分类分解为行为,并分析行为必要的功能组件,形成功能架构;另一方面,基于角色分组的分类对角色之间的互操作提出了要求,在产品细分的趋势下,角色之间需要通过标准的机制和接口进行访问。