云计算服务模型是指能够满足用户需求的具体服务的交付方法。根据云服务提供商提供的服务类别不同(或者根据提供给用户的服务实体的不同),云计算服务模型往往采用层次划分方法,主要包括了3种服务模型:基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS),如图1-4所示。
图1-4 云计算服务模型层次图
IaaS是将诸如硬盘、处理器、内存、网络等硬件资源封装成服务,提供给用户使用。这就是说,在IaaS模式下,云服务提供商向用户提供虚拟计算机、存储、网络等计算资源,并提供访问云计算基础设施的服务接口。用户可在这些资源上部署或运行操作系统、中间件、数据库和应用等。用户通常无法管理或控制云计算基础设施,但能控制自己部署的操作系统和应用,也能部分控制使用的网络组件,如主机防火墙。
假如某个组织希望根据业务需求来动态地增加或减少其数据存储空间,基于IaaS的云计算服务模型解决该问题的总体架构如图1-5所示。其中,用户可以自行决定服务的规模,并可根据具体的策略和需求动态地调整服务的规模。服务的提供和响应通过互联网传递,服务的实现可以通过虚拟桌面技术来实现,即用户通过一个独立的虚拟桌面环境访问服务。
图1-5 IaaS架构示例
亚马逊弹性计算云(Amazon Elastic Compute Cloud,Amazon EC2)和亚马逊简单存储服务(Amazon Simple Storage Service,Amazon S3)是典型的IaaS。Amazon EC2的用户可以通过相应的接口申请满足自己需求的虚拟机,如4核CPU、8GB内存配置的虚拟机并安装Windows 10操作系统。
IaaS的优势是允许用户根据自身的需求来访问必要的计算资源,其中,计算资源可以是硬盘、处理器、内存、网络和其他的虚拟基础设施。云服务提供商可以同时为多个用户提供服务,从而实现基础设施使用率的最大化。同时,用户为了更好地满足自身的业务需求,还可以向不同的云服务提供商购买服务。
此外,IaaS是基于互联网技术的,无须考虑基础设施的物理位置,即用户不需要知道为其提供服务的物理基础设施的准确位置。因此,用户由于不用考虑技术复杂性和地理位置,就可以专注于做与其业务相关的事情,如业务过程的提高、策略制定等。当然,该优势也存在于PaaS和SaaS服务模型中。
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之前应该考虑的问题。
SaaS是将应用软件功能封装成服务,使用户能通过网络获取服务。这就是说,在SaaS模式下,云服务提供商向用户提供的是运行在云计算基础设施之上的应用软件。用户不需要购买、开发软件,可利用不同设备上的客户端(如浏览器)或程序接口,通过网络访问和使用云服务提供商提供的应用软件,如电子邮件系统、协同办公系统等。云服务提供商负责软件的安装、管理和维护工作。用户通常无法管理或控制支撑应用软件运行的底层资源,如网络、服务器、操作系统、存储等,但可以对应用软件进行有限的配置管理。用户无须将软件安装在自己的计算机或服务器上,只需按某种“服务水平协议”(SLA)通过网络获取所需要的、带有相应软件功能的云计算服务。
SaaS服务商的职责主要有:确保提供给用户的软件能获得稳定的技术支持和测试;确保应用是可扩展的,以满足不断上升的工作负载;确保软件运行在一个安全的环境中,因为很多用户将有价值的数据存储在云端,此类信息可能是私人或商业机密。Salesforce.com的CRM、微软的Office 365就是典型的SaaS。
例如,前文提到的全球服务组织,除了基于PaaS开发CRM,还可以直接采用SaaS,即租用Salesforce.com的CRM。此时,该组织就可以专注于学生的留学服务业务,而不再关注应用系统的升级和维护,只需按需求租用相应的功能和服务,并支付租金。
IaaS(基础设施即服务)需要在异构资源环境下,提供按需付费、可度量资源池服务功能,同时要兼顾硬件资源的充分利用和用户需求的满足;PaaS(平台即服务)不仅要关注底层硬件资源的整合,还需要提供能够供用户进行开发、调试应用的平台环境;SaaS(软件即服务)不仅需要实现底层资源的充分利用,还必须通过部署一个或多个应用软件环境,为用户提供可定制化的应用服务,如图1-8所示。
图1-8 3种基本服务模型的对比
云计算3种基本服务模型的关系如图1-9所示,将3种服务模型分成从低到高的3个层次。较高层次的云服务提供商可以独立建立服务资源,也可以借用较低层次云服务提供商提供的服务资源。例如,SaaS服务可以由Salesforce.com独立提供,即由Salesforce.com构建所有的平台和基础设施;也可以由SaaS应用开发者在租用的其他PaaS平台(如Google App Engine)上提供。同样,PaaS平台可以独立提供,也可以由PaaS平台开发者在租用的其他IaaS服务上提供。
图1-9 云计算3种基本服务模型的关系图