开源云计算平台架构介绍(二)
云计算的架构层
Sun 公司的云计算观点是一种全面的观点:云计算可描述在从硬件到应用程序的任何传统层级提供的服务 (图 6)。实际上,云服务提供商倾向于提供可分为如下三个类别的服务:把软件当作服务 (Software as a Service)、把平台当作服务 (Platform as a Service) 以及把基础设施当作服务 (Infrastructure as a Service)。这些类别把如图 6 所示的各种层级组合在一起,其中存在某种重叠。
把软件当作服务 (SaaS)
“把软件当作服务”的特色是根据需要作为服务提供的一整套应用程序。该软件的单个实例运行于云上,并为多个最终用户或客户机构提供服务。
最著名的 SasS 示例是 salesforce.com,不过许多其它实例已经进入市场,其中包括提供基本商业服务 (包括电子邮件和文字处理) 的 Google Apps。
尽管 salesforce.com 诞生比云计算定义的出现早了几年,但它现在通过利用其伴侣 force.com 运作,后者可定义为“把平台当作服务”。

把平台当作服务 (PaaS)
“把平台当作服务”包含一个软件层,并作为一项服务提供此软件层,这项服务可用来构建更高水平的服务。从服务生产商或消费者的观点看,关于 PaaS 的观点至少有两种:
•生产 PaaS 的某个人可能通过集成 OS、中间件、应用软件甚至是一个随后作为服务提供给客户的开发环境来生产一个平台。例如,开发 PaaS 的人可能会使其以一组 Sun™ xVM 管理程序虚拟机为基础,这组虚拟机包括一个.NetBeans™.集成化开发环境、一个 Sun GlassFish™ Web 栈,并支持像 Perl 或Ruby 这样的其它编程语言。
•使用 PaaS 的人会看到一个封装式服务,该服务是通过 API 提供给用户的。客户通过API与该平台互动,而且该平台执行一切必要的操作来管理和扩展其本身,以提供规定的服务水平。虚拟设备可以归类为 PaaS 的实例。例如,一个内容交换设备会将其所有组成软件对客户隐藏起来,而只向客户提供用来配置和部署服务的一个 API 或 GUI。
PaaS 产品可执行各个阶段的软件开发和测试,也可以专用于某个领域,例如,内容管理。PaaS 的商业示例包括 Google App Engine,它在 Google 的基础设施上提供应用程序服务。像这样的 PaaS 服务可提供一个用来部署应用程序的强大基础,然而它们可能会由于云提供商选择提供的能力而受到制约。
把基础设施当作服务 (Iaas)
“把基础设施当作服务”通过网络作为标准化服务提供基本存储和计算能力。服务器、存储系统、交换机、路由器和其它系统都是合用的,并可用来处理从应用程序组件到高性能计算应用程序的工作负荷。
IaaS 的商业示例包括 Joyent,其主要产品是提供高度可用的按需基础设施的一系列虚拟化服务器。
云应用程序设计接口
区分云计算与标准企业计算的关键特征之一是:基础设施本身是可以编成程序的。开发人员不是实际部署服务器、存储器和网络资源来支持应用程序,而是指定如何配置和互连同样的虚拟组件,包括如何从存储云存储和检索虚拟机映像和应用程序数据。开发人员指定如何且何时通过云提供商指定的 API 来部署组件。这与文件传输协议 (FTP) 的工作方式相似: FTP 服务器维持与会话期间一直开放的
客户端的控制连接。当要传输文件时,该控制连接用来向服务器提供一个来源或目标文件名,并协商一个用于文件传输本身的源和目标端口。从某种意义上讲,云计算 API 就像 FTP 控制信道一样:云计算 API 在使用云期间是开放的,而且控制如何利用云来提供开发人员向往的最终服务。
控制如何利用云基础设施的 API 的使用具有一个缺陷:与 FTP 协议不同的是,云API 尚未标准化,因此,每个云提供商都有自己用来管理其服务的特定 API。这是一个新兴行业的典型状态,其中,每个供应商都有其专有技术,这样的技术往往把客户限制在其服务里,因为专有 API 使得变更提供商非常困难。
请查找在尽可能多的地方使用标准 API 的提供商。标准 API 现在可用来访问存储设备,而随着时间的推移,用来部署和扩展应用程序的 API 可能会被标准化。另外,请查找有哪些云提供商了解其市场而且提供存档并部署虚拟机映像和预配置设备的方法。
版权声明:
本文由上海爱可生信息技术有限公司根据甲骨文公司官方文档翻译整理而成,版权归属甲骨文公司,转载请保留此版权声明。