云计算的SPI服务模型

虽然目前对于云计算还没有一个统一的定义,但是大家对云计算的服务模型已有了一个相对统一的认识。我们知道云计算是通过共享资源池的方式来提高资源利用率的。在云计算中,根据其资源池中资源的类别,可以把云计算的服务模型分为三种,即所谓的SPI 模型,如表1.1 所示。

表1.1 SPI模型

资源类别 云计算服务模型(SPI)

应用程序 Software as a Service (SaaS)

系统平台 Platform as a Service (PaaS)

基础设施 Infrastructure as a Service (IaaS)

1.4.1 软件即服务(SaaS,Software as a Service)

软件即服务(SaaS )是用户获取软件服务的一种新形式,也是目前最为常见并且使用最多的一种云计算服务方式。用户一般不需要将软件产品安装在自己的电脑或服务器上,而是按某种服务水平协议(SLA )直接通过网络从专门的提供商获取自己所需要的、带有相应软件功能的服务。本质上而言,软件即服务就是云计算服务提供商为满足用户某种特定需求而提供其消费的软件的计算能力。SaaS 类型的云计算服务有以下主要特点。

(1)用户主要通过标准的Web 浏览器来使用互联网上的软件服务。

(2)多主租用(Multi-tenancy) 。

(3)用户不必购买软件,只需按需租用软件或通过广告模式免费使用。

SaaS 实际上是一个比云计算出现得更早的概念,而且在业界称其为SaaS,之前还有一个与之关系密切的概念叫应用服务提供商(ASP,Application Service Provider ),但是现在我们把它归纳为云计算的一种服务模型。当前,SaaS 有多种典型的应用,如在线邮件服务、网络会议、在线杀毒等各种工具型服务,还有在线CRM 、在线HR 、在线进销存、在线项目管理等各种管理型服务。SaaS 是应用软件的一个发展趋势,目前已吸引了众多厂商的参与。像微软Office365 中的在线服务、Salesforce 的在线CRM 等都是典型的SaaS 服务,国内的用友、金蝶等软件厂商也都推出了自己的SaaS 应用。

1.4.2 平台即服务(PaaS,Platform as a Service)

平台即服务(PaaS )是指将一个完整的应用程序运行平台作为一种服务提供给客户。在这种服务模式中,客户不需要购买底层硬件和平台软件,只需要利用PaaS 平台,就能够创建、测试和部署应用程序。

图1.13 一个IT层面PaaS的服务

PaaS 类型的云计算服务有以下主要特点。

(1)提供应用服务平台的编程接口,开发人员需要根据平台提供的服务接口进行应用程序开发。

(2)提供应用程序的托管平台,针对这个平台开发的应用程序一般只能部署在这个平台上面。

为了便于理解平台即服务的服务模型,我们可以把它看成是一个基于云计算的操作系统,而开发人员可以针对这个新的云操作系统开发应用程序。目前PaaS 的典型实例有微软的Windows Azure 平台、Google App Engine 等。PaaS 不仅自身拥有很好的市场应用前景,而且能够推进SaaS 并与其共同发展。对于想进入SaaS 领域的服务提供商而言,PaaS 关键是降低了他们开发和提供SaaS 服务的门槛,提高了开发的效率。

1.4.3 基础设施即服务(IaaS,Infrastructure as a Service)

基础设施即服务(IaaS )是指把IT 基础设施作为一种服务通过网络对外提供。在这种服务模型中,用户不用自己构建一个数据中心,而是通过租用的方式来使用基础设施服务,包括服务器、存储和网络等。在使用模式上,IaaS 与传统的主机托管有相似之处,但是在服务的灵活性、扩展性和成本等方面IaaS 具有很强的优势。用户无须购买物理硬件,只需通过网络申请服务即可搭建自己的系统环境。这个服务模式相当于把IT 基础设施像日常生活中的水和电一样以服务的形式集中供应,并按照服务内容和实际使用量进行计费。由于要保证资源的动态分配和定制资源的分配粒度,因此在IaaS 的平台实现中一般都需要使用各种虚拟化技术。

图1.14 IaaS功能架构

IaaS 类型的云计算服务有以下主要特点。

(1)以服务的形式提供虚拟硬件资源,包括服务器、存储、网络等。

(2)用户对基础设施环境需要自己进行系统管理。

在这个服务类型中,最著名的是亚马逊提供的AWS(Amazon Web Services )服务。亚马逊通过不同的服务方式把自己庞大数据中心的基础设施对外提供出租服务,比如通过弹性计算服务(EC2 )提供虚拟机租用服务,通过简单储存服务(S3 )提供存储租用服务等。

我们可能还会看到一些别的服务形式名称,比如Office as a Service 、Hardware as a Service 、Database as a Service 、Integration as a Service 等,这些都可以看成是上面三种主要服务模型的延伸或细分,一般都可以把它们归到业内认可的SPI 模型中的一种。

1.4.4 三种服务模型之间的联系和区别

云计算的三种服务模型中的任何一种都可以独立对外提供服务,云计算服务提供商也可以直接从底层硬件平台开始构建自己要提供的服务。比如,一个SaaS 服务商完全可以自己构建一个SaaS 平台来提供服务。但是,从层次上讲这三种不同的服务是处于不同层次的服务,而且相互之间可以有一定的依赖关系。这三种服务之间的关系可以用图1.15 来表示。

图1.15 三种服务之间的联系

假设一个ISV 想提供SaaS 服务,它可以自己建造数据中心,然后采购软硬件,并开发相应的应用程序来提供服务。但是一个相对简单的方式是利用其他服务商提供的PaaS 平台,这样这个ISV 就可以把主要精力放在构建应用程序的业务逻辑上面,而不用在基础平台构建、运维,平台扩展性和灾备等方面花费太多精力。同样对于IaaS ,无论是最终用户、SaaS 提供商还是PaaS 提供商都可以从基础设施服务中获得应用所需的计算能力,但却无须对支持这一计算能力的基础IT 软硬件付出较大的原始投资成本。

云计算的三种服务模型所针对的用户类型实际上是不一样的。SaaS 由于提供的是应用服务,因此针对的是最终用户,也就是一般的应用程序使用人员。用户在使用SaaS 的时候一般不需要对技术本身有特殊要求,只需要了解软件服务本身的一些操作规则即可。用户一般也不需要对服务商提供的SaaS 服务进行二次开发,只需要简单的设置就可以使用。PaaS 提供的是平台服务,因此针对的用户是开发人员。PaaS 需要开发人员针对平台的编程接口进行应用程序设计和开发,然后部署在上面。如果这个部署的应用是对外提供软件服务的,那就是SaaS 服务。IaaS 提供的是最底层的IT 基础设施服务,因此它直接针对的用户是IT 管理人员。IaaS 提供的服务首先需要IT 管理人员来进行配置和管理,然后才能在其上进行应用程序的部署等工作。相对于最终用户的需求,三种服务类型所提供功能的差别如图1.16 所示。

图1.16 三种服务之间的功能对比

SaaS 的好处在于对用户的要求比较低,基本上是现成的应用,用户可以直接应用,但问题是用户的需求不是都有现成应用服务来解决的。PaaS 的好处在于用户可以直接在上面开发应用程序,而不用关心底层系统平台的维护,但是它的问题在于不利于已有应用的迁移。IaaS 对已有应用的迁移相对比较平滑,用户使用平台的灵活度相对要大一些,但是要做的事情也相对更多。

图1.17 三种服务之间的自动化和灵活度对比

所以,三种云计算服务类型所提供的功能和所针对的用户是不同的,用户可以结合实际需求来选取相应的云计算服务。最后一点需要说明的是,上面三种服务模型的划分不是绝对的,有时候不同层次的服务覆盖面上有一些相互重复,而云计算服务提供商也会根据用户需求等情况对自己的服务进行一些调整和延伸。