1.2.2 平台即服务(PaaS)
PaaS是将软件开发、测试、部署和管理所需的软硬件资源封装成服务,提供给用户使用。这就是说,在PaaS模式下,云服务提供商向用户提供的是运行在云计算基础设施之上的软件开发和运行平台,如标准语言与开发工具、数据访问、通用接口等。用户利用该平台能够快速开发、测试、部署自己的软件系统。用户通常无法管理或控制支撑平台运行所需的底层资源,如网络、服务器、操作系统、存储等,但可以对应用的运行环境进行配置,控制自己部署的应用。PaaS的用户主要包括应用软件的设计者、开发者、测试人员、实施人员(在云计算环境中完成应用的发布,管理多版本的应用冲突)、应用管理人员(在云计算环境中配置、协调和监管应用)。Microsoft Azure和Google App Engine就是典型的PaaS。
PaaS的一个重要特征就是为开发者提供一个开放的在线开发平台,该特征支持拥有有限计算资源的中小型企业可以根据需要,采用先进的技术开发自己的产品或系统。
例如,PaaS可以帮助某全球服务组织提升现有服务并扩展新服务。假设企业A是一家全球服务组织,主要提供出国留学服务。企业A扩展国际市场的方法是,通过开发和运行一个包括多种在线服务的门户网站。企业A基于PaaS开发和部署门户网站的总体架构如图1-6所示。企业A利用PaaS创建为目标用户提供多种访问方式的门户网站。门户网站提供的服务都是企业A根据业务需求自己定制的,如客户关系管理(Customer Relationship Management,CRM)系统和业务流程管理(Business Process Management,BPM)系统。
图1-6 PaaS示例
有效的PaaS应该支持如下所有或部分功能(如图1-7所示),从而体现基于PaaS开发和部署应用的优势。
(1)系统设计,平台应该允许用户自己定制用户接口(UI)设计。
(2)系统开发,平台应该为用户提供开发集成环境。
(3)系统集成,平台应该支持多个应用同时运行。另外,在平台上应该可以集成多个服务,如存储、测试、应用。
(4)存储系统,平台应该为用户提供持久存储,包括按需的数据库和按需的文件存储。
(5)系统升级,平台应该支持用户的按需升级。
(6)安全设施,保护用户的信息避免遭受来自外部攻击或内部误操作造成的威胁。
(7)可靠性,云服务提供商需要确保平台服务的持续、稳定运行。
图1-7 PaaS(平台即服务)的功能
不过,由于目前不同PaaS服务商平台之间一般不兼容,从而造成用户难以实现在不同PaaS平台之间的应用迁移。这是采用PaaS之前应该考虑的问题。