首页 理论教育云安全深度剖析:PaaS模型技术解析

云安全深度剖析:PaaS模型技术解析

【摘要】:PaaS模型的主要目的是给应用程序开发者提供程序开发平台,也就是提供一个建构、部署与管理的环境,让他们能创造并开发出新的服务或应用,并且快速地将其软件或程序部署在云上。人们经常说的PaaS平台主要是指APaaS,如新浪的SAE、谷歌的GAE、微软的Azure都是其典型例子。其中,Saleaforce公司的Force.com是业界内第一个可以称为PaaS的平台。PaaS的理念也是该公司提出来的。PaaS平台会以API的形式将各种各样的服务提供给上层的应用。

1.PaaS概述

PaaS模型如图1-6所示。NIST对PaaS的阐述是:“提供给用户的能力是可以使得用户在云平台的基础设施上部署属于自己的应用,用户部署自己应用的同时可以使用供应商所提供的支撑编程工具和程序开发语言。消费者无须管理或控制底层的云基础设施(网络、服务器、操作系统和存储等),但消费者控制对该部署的应用程序和有可能应用托管环境的配置”。

PaaS模型的主要目的是给应用程序开发者提供程序开发平台,也就是提供一个建构、部署与管理的环境,让他们能创造并开发出新的服务或应用,并且快速地将其软件或程序部署在云上。

在PaaS模式中,平台通常包括操作系统、编程语言的运行环境、数据库和Web服务器等。用户完全不需要也不能对网络及服务器等底层基础设施进行管理和控制,但可以控制和部署自己的应用。这种服务模式能够给用户提供更多的、更高效的硬件和软件服务,既可以减少用户自行开发的成本,又可以完全实现软件的重用。

PaaS平台在云架构中位于中间层(见图1-4)。PaaS能将现有的各种业务能力进行整合,具体可以归类为应用服务器、业务能力接入、业务引擎和业务开放平台,向下根据业务能力需要测算基础服务能力,通过IaaS提供的API调用硬件资源,向上提供业务调度中心服务,实时监控平台的各种资源,并将这些资源通过API开放给SaaS用户。

Gartner把PaaS平台划分为两类[14]:一类是应用部署和运行平台APaaS;另一类是集成平台IPaaS。人们经常说的PaaS平台主要是指APaaS,如新浪的SAE、谷歌的GAE、微软的Azure都是其典型例子。其中,Saleaforce公司的Force.com是业界内第一个可以称为PaaS的平台。PaaS的理念也是该公司提出来的。Force.com向企业提供在云端上快速创建和实施业务应用程序所需的一切,包括数据库、无限的实时定制、强大的分析、实时工作流程和审批、可编程云逻辑、集成、实时移动部署、可编程的用户界面和网站功能。GAE为使用者提供Web应用开发平台,并对所使用的资源进行严格分配,使平台上托管的应用拥有良好的自动扩充性以及高可用性。其主要特征:①应用的开发和运行都基于同样的平台,故兼容性问题较少;②开发者无须考虑系统可允许的应用扩充性和服务容量等问题;③可提供运维管理功能以及帮助开发人员对应用进行监控和计费。

为了支撑整个PaaS平台的运行,服务供应商需提供如下功能:

1)友好的开发环境。通过提供IDE等工具使用户能在本地方便地进行应用的开发和测试。

2)丰富的服务。PaaS平台会以API的形式将各种各样的服务提供给上层的应用。

3)自动的资源调度。此特性不仅能优化系统资源,而且能自动调整资源来帮助运行于其上的应用更好地应对突发流量

4)精细的管理和监控。提供对应用层的管理和监控,如通过精确计量应用所使用和消耗的资源来更好地计费。

这种服务模式的优势,是解决了平台价格昂贵、平台即时升级、用户需求估算不够科学及平台管理复杂等问题。

2.示例

当以传统的方式搭建一个Web网站时,往往需要先购置并托管服务器,然后安装操作系统及各种服务软件等,待所有烦琐的工作都准备好之后才能开始编写代码。而且开发环境与运行环境还会有一定的差别,需要把代码部署到运行环境当中进行测试,当一切都处理好后,网站才能上线。

假如使用PaaS开发和部署一个Web网站,则会使Web部署工作变得极其简单。例如,使用SAE,用户可以在任何时间、任何地点登录到SAE,通过浏览器就可以编写代码,随时随地都可以进行部署调试,只需要单击按钮,切换一下版本就可以上线了,不必购置服务器和搭建各种环境等。

为了实际体会PaaS平台,我们可以注册新浪云SAE,并进行简单的代码开发与发布。SAE支持Python、PHP和Java三种开发语言,支持MySQL和NoSQL两种数据库。同时SAE还具备版本管理功能等,总之,SAE提供了开发一个应用程序所需要的全部环境。

SAE首页、代码编辑界面和代码发布测试界面分别如图1-7~图1-9所示。

978-7-111-53353-5-Chapter01-7.jpg

图1-7 SAE首页

978-7-111-53353-5-Chapter01-8.jpg

图1-8 代码编辑界面

978-7-111-53353-5-Chapter01-9.jpg

图1-9 代码发布测试界面(www.chuimin.cn)

IT人员,即可通过互联网使用信息系统。就像打开自来水龙头就能用水一样,企业根据实际需要,从SaaS供应商租赁软件服务。

传统的购买软件的方法所涉及的用户加载软件到自己的硬件上,以换取许可费。用户也可以购买一个维护协议,以获得补丁软件或其他支持服务。用户关注的是业务系统的兼容性、安装补丁以及遵守许可证协议。

SaaS供应商以租赁的概念提供客户软件服务,而非购买,比较常见的模式是提供一组账号密码,规定一个使用期限。由于SaaS模式是一个多租户架构模式,这意味着物理后端的硬件基础设施在许多客户之间共享,但在逻辑上是独一无二的单独客户。多租户架构的设计最大限度地提高了资源的跨租户共享,但仍能够安全地区分属于每个租户的数据。总之,SaaS服务模式与传统许可模式软件存在很大的不同,是未来应用软件的发展趋势。

Salesforce的客户关系管理Saleforce CRM、微软的Office Live以及谷歌的Docs都是SaaS的典型例子。其中Salesforce于1999年由当时27岁的Oracle高级副总裁,俄罗斯裔美国人Marc Benioff创办。软件即服务的理念由他首先提出,并运用于客户关系管理服务软件。目前已有约72500家公司采用了Salesforce的Saleforce CRM。

实现SaaS服务,服务供应商需提供如下功能:

1)随时随地访问。在任何时候和任何地点,只要接上网络,用户就能访问SaaS服务。

2)支持公开协议。通过支持公开协议如HTML,能够方便用户使用。

3)安全保障。SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于安全的境地,而且也要在客户端实施一定的安全机制来保护用户。

4)多租户机制。多租户机制不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。

这种服务模式的优势是,由服务供应商维护和管理软件、提供软件运行的硬件设施,用户付费使用软件,享有软件使用权。用户只需拥有能够接入互联网的终端,即可随时随地地使用软件。在这种模式下,用户不再像传统模式那样在硬件、软件和维护人员等方面花费大量资金,只需要支出一定的租赁服务费用,通过互联网就可以享受到相应的服务。

但是,SaaS服务模式也有一些缺点,比如:

1)安全性不高。企业,尤其是大型企业,并不热衷于使用SaaS的原因就是其安全问题。他们要保护机密数据,不希望这些机密数据由第三方来保管。

2)缺乏标准化。目前的SaaS解决方案缺乏标准化。这个行业刚刚起步,没有明确的解决办法,不同服务提供商通常拥有不同的解决方案。

2.示例

为了更好地体验SaaS,我们可以在线体验微软Office的在线应用OneDrive。用户只需要一个浏览器,就可以随时随地在任何设备上存储和共享照片、视频、文档及更多内容。例如,可以在线编辑Office Word文档,并存储在OneDrive上,这样就可以随时通过一个浏览器查看或继续编辑这个文档。

其中,OneDrive首页、在线创建Word文档界面、在线编辑Word文档界面和在线保存Word文档分别如图1-11~图1-14所示。

3.PaaS发展前景

由于企业对软件开发和维护所投入的时间和资金有限,导致SaaS在原地停留。IaaS为用户提供灵活性和自主权的同时,增添了复杂性。另外,IaaS可能无法通过门户提供系统实时编制(Orchestration)能力,而PaaS屏蔽底层的硬件基础架构,为用户提供覆盖软件全生命周期中需求分析、设计、开发、测试、部署、运行及维护各阶段所需的工具,降低了用户进行应用程序开发的技术难度及开发成本。

在业界,自2011年上半年以来,PaaS平台的重要性也逐渐受到如IaaS服务厂商与虚拟化技术厂商的重视。其中以虚拟化技术为主的Citrix与VMware,都纷纷推出PaaS服务,希望以开源的优势吸引软件开发者与厂商的投入。甚至以IaaS业务为主的Amazon,也与程序开发平台公司Beanstalk合作,提供以Java为基础的程序开发平台。

深入分析从过去到现在各大云端公司推出的程序开发平台,对其支持平台的多寡与开发语言的支持数量的多寡两个轴向分析后可发现,近年来程序开发平台已逐渐走向可支持多开发语言与跨平台运作的特性,其中更可发现Java语言为各大开发平台优先支持的语言,预期未来平台将走向可支持多种运行时系统,甚至支持多种设备的应用程序,以协助厂商快速扩大用户的应用规模。比如,2011年提出开放源码的PaaS服务Cloud Foundry,使用各种开源开发工具和中间件来提供PaaS服务。Cloud Foundry采用开源的网站平台技术,所以开发者的应用程序也可以任意转移到其他平台上而不受限于PaaS平台。Cloud Foundry可以支持多种开发框架,包括Spring for Java、Ruby on Rails、Node.js以及多种Java虚拟机开发框架等。Cloud Foundry平台也提供MySQL、Redis和MongoDB等数据库服务。

因此,有理由相信,更多的中小企业将会在未来的几年采用PaaS云。PaaS将是云计算的最终目标。