英文原文:Cloud computing service models, Part 2: Platform as a Service
平台即服务 (PaaS) 常常是最容易让人迷惑的云计算类别,因为很难识别它,常常把它误认为是基础设施即服务 (IaaS) 或软件即服务 (SaaS)。在这个分三部分的文章系列的第二部分中,了解 PaaS 的特点以及如何在企业中应用它。
PaaS 的独特特点是,它让开发人员可以在驻留的基础设施上构建并部署 web 应用程序。换句话说,PaaS 让您能够使用云基础设施似乎无穷的计算资源。
当然,计算资源的数量看起来无穷只是幻想,限制取决于基础设施的规模。但是,正如在本系列的第一篇中了解到的,Google 基础设施大约包含超过一百万台基于 x86 的计算机。另外,因为用于 PaaS 的基础设施是弹性的(第1部分中讨论过这个概念),在需要时云可以扩展以提供更多的计算资源,所以无穷的资源并不完全是想像。
PaaS 对于开发人员的意义
开发人员常常误以为云计算只适用于网络管理员。但是,这个错误的观念忽视了云计算可能给开发和质量保证团队带来的许多好处。
在软件开发过程中,一些东西常常会出问题。以我的经验,设置服务器环境以驻留开发团队要构建的 Web 应用程序可能会带来许多争吵。即使在最大的企业中,通常一位网络管理员要负责为几个开发团队服务。在不使用 PaaS 的情况下,设置开发或测试环境通常需要完成以下任务:
在很多情况下,管理员已经非常忙了,所以让他们抽出时间部署新环境会很困难。对于客户机和服务器端的 web 应用程序开发人员来说,另一个主要问题是在本地复制运行时环境以便执行测试。
现在,想像一下您是使用 PaaS 的开发团队的成员。在这种情况下,您会有一个虚拟机 (VM),其中包含完整的服务器环境,可以把它放在 USB 闪存驱动器中带在身边。
我希望您把注意力转到第1部分中给出的概念交叉矩阵上,使用它作为参考分析 PaaS。表1再次给出这个矩阵。
表 1. 三类云计算的概念交叉矩阵
范型转变 | 特征 | 关键词汇 | 优点 | 缺点和风险 | 不应该使用的场合 | |
---|---|---|---|---|---|---|
IaaS | 基础设施即资产 | 常常独立于平台;分担基础设施成本,因此会降低成本;服务水平协议 (SLA);按使用量付费;自我伸缩 | 网格计算,效用计算,计算实例,系统管理程序,暴雨 (cloudbursting),多租用者计算,资源池 | 避免在硬件和人力资源方面花费资产费用;降低 ROI 风险;降低进入门槛;简化和自动化伸缩过程 | 企业效率和生产力很大程度上取决于厂商的能力;可能会增加长期成本;集中化需要新的/不同的安全措施 | 当资产预算大于运营预算时 |
PaaS | 许可证购买 | 消费云基础设施;能够满足敏捷的项目管理方法 | 解决方案堆 | 简化的版本部署 | 集中化需要新的/不同的安全措施 | 无 |
SaaS | 软件即资产(企业和消费者) | SLA;由 “瘦客户机” 应用程序提供 UI;云组件;通过 API 进行通信;无状态;松散耦合;模块化;语义性互操作能力 | 瘦客户机;客户机-服务器应用程序 | 避免在软件和开发资源方面花费资产费用;降低 ROI 风险;简化和迭代式的更新 | 数据的集中化需要新的/不同的安全措施 | 无 |
PaaS 的主要成分
了解 PaaS 的最好方法可能是把它分解为主要组件:平台和服务。现在,考虑提供的服务,这称为解决方案堆。也就是说,PaaS 的两个主要成分是计算平台和解决方案堆。
为了说明这两个 “成分”,我们进一步研究一下它们的定义。按照最简单的形式,计算平台是指一个可以一致地启动软件的地方(只要代码满足平台的标准)。平台的常见示例包括 Windows™、Apple Mac OS X 和 Linux® 操作系统;用于移动计算的 Google Android、Windows Phone 和 Apple iOS;以及作为软件框架的 Adobe® AIR™ 和 Microsoft® .NET Framework。要记住的重点是,计算平台不是指软件本身,而是指构建并运行软件的平台。图1提供一张示意图以帮助理解这种关系。
既然理解了计算平台的概念,现在就来看看什么是解决方案堆。解决方案堆由应用程序组成,这些应用程序有助于开发过程和应用程序部署。这些应用程序是指操作系统、运行时环境、源代码控制存储库和必需的所有其他中间件。
选择提供商
解决方案堆也反映不同 PaaS 公司的差异,在决定采用 PaaS 之前,需要深入考察各个提供商提供的解决方案堆。
在与某家 PaaS 提供商签约之前,您应该问几个基本问题:
PaaS 剖析
既然已经了解了 PaaS 的基本知识,现在研究一下在比较 PaaS 提供商时应该考虑的特性:
避免厂商锁定
厂商锁定 (Vendor lock-in) 意味着消费者依赖于某一厂商,除非花费巨大的转换成本,否则无法使用另一厂商的产品。当采用像云计算这样的正在流行起来的新技术时,会增加出现厂商锁定局面的机会。早期的使用者必须很清楚他们将处于什么境地,然后才能够签署长期的 IaaS 和 PaaS 协议。
避免厂商锁定的方法之一是通过 API 和平台技术的标准化。Simple Cloud 等组织已经开始与参与这个开放源码项目的各种规模的厂商协作,力求让云中的 PHP 保持一致。为了创建 Simple Cloud,Zend Technologies、Microsoft、IBM 和 Rackspace 正在共同努力,其目标是跨不同的平台提供一个抽象层。
Simple Cloud API 的目标是为文件存储、文档存储和简单队列服务创建通用的接口。这让开发人员能够编写出可跨主要云平台移植的应用程序。参与云计算标准化的厂商应该得到赞扬,应该鼓励他们继续努力。在选择为您的公司提供 PaaS 服务的厂商时,我强烈建议优先考虑支持标准化的提供商。标准化会让 IT 部门的工作更轻松,更重要的是,这会节省公司的资金。
为了避免 PaaS 市场上出现厂商锁定,需要支持相同底层 API 的服务提供商。答案很简单:坚持采用专有技术的服务提供商必须同意支持 Simple Cloud 等标准化项目。
结束语
在这个分三部分的云计算文章系列的第二部分中,您了解了 PaaS 的特点。还了解了在选择 PaaS 提供商时应该问的问题以及应该关注的事项,比如厂商锁定。本系列的最后一篇文章将分析 SaaS,介绍它的特点。还将学习在选择 SaaS 提供商时为了保护企业需要注意的事项。请通过参考资料中的链接获取关于 PaaS 的更多信息。
参考资料
关于作者
Dan Orlando 是企业开发社区公认的领导者。作为长期顾问,Dan 经常向行业领导者以及 IBM developerWorks、Adobe Developer Connection 和 Amazon Web Services 等出版物提供 Adobe 技术平台方面的专业经验。Dan 还在DanOrlando.com 上定期发表博客文章。