平台层是运行于基础设施层之上的一个以软件为核心,为应用服务提供开发、执行和管控环境即中介软件功能的层次。基础设施层所要解决的是IT资源的虚拟化和自动化管理问题,而平台层需要解决的是如何基于基础设施层的资源管理能力提供一个高可用的、可伸缩的且易于管理的云中间件平台。从云架构而言,平台层位于基础设施层与应用层之间,它利用基础设施层的能力,面向上层应用提供通用的服务和能力。

平台层面向云环境中的应用提供应用开发、测试和执行过程中所需的基础服务,包括Web和应用服务器、讯息服务器以及管理支撑服务如应用部署、应用效能管理、使用计量和计费等。平台层所提供的服务是在云端计算环境中开发、测试、执行和管理应用服务所需的基本功能。平台层以平台软件和服务为核心,使用者通过相应的程式设计模型和API来建立应用和释出。由于平台软件和服务的多样性,以及使用者对平台的需求和使用方式上的不同,平台层在理念、客户定位和实现方式上也会存在差异。

关于所支援的程式设计模型,平台层可以基于标准程式设计模型,也可以基于自定义程式设计标准。基于标准程式设计模型可以降低使用者的使用门槛,并且可以使原有的系统更容易地迁移到云平台上,如在Google App Engine中,可以直接使用J2EE模型进行Web程式设计。某些云平台为了更好地强调某类云端计算中的特殊问题而采用了自定义的程式设计模型,如force.com为了更好地支援多租户技术而自己定义了Apex程式设计模型。必须强调的是,随着云端计算技术的发展,平台层中会出现越来越多的其他有别于传统中介软件的服务,如半结构化的大规模储存服务,非SQL的数据库服务等,这些都会进一步提高云应用的开发工具和手段。在传统的应用开发中,使用者需要花费大量时间和工作来进行软件堆叠(即中介软件)的选型、定制和部署,在云平台上,这部分的工作将由云平台根据应用的需求和特点自动完成。

我们可以看到,在Google App Engine和force.com这样的云平台上,使用者不再需要手动地选择自己所需要的Web容器和数据库产品以及对管理功能的选择和扩充套件。使用者更多的是针对应用的特点,如执行时Qo S需求,伸缩策略或者部署方式等应用的引数进行指定和配置,平台层可以根据应用的相关配置自动提供支撑应用的中介软件资源以及在执行时进行自动的负载平衡、伸缩控制和SLA优化等。通常的企业客户维护着大量现存的应用。企业客户在选择云平台执行其应用时,需要考虑两个方面的问题:一是平台层技术如何能够帮助企业已有的软件平台进行转型,并使企业在管理的有效性和成本方面从该转型中受益;二是企业在选择应用软件产品时有其特定的需求,而这些特定的需要对平台层的能力提出了要求,云平台应该能够满足这样的要求。云平台技术的发展将会更加贴近客户的多样化需求。





























