这是高度概括的云计算的视图。这个视图忽略了云的其他一些方面,例如data-Storage-as-a-Service(dSaaS),后者以计量服务的形式提供存储,消费者按使用的容量(使用的存储的容量)和利用率(存储的带宽需求)付费。另外还有云服务,它为互操作性和外部应用程序编程接口(API),例如 Web 服务,提供了内部机制。
SaaS(软件即服务)就是以服务的形式访问 Internet 上的软件。一种早期的 SaaS 方法是 Application Service Provider(ASP)。ASP 提供对 Internet 上存放或交付的软件的订阅。ASP 交付软件,并根据软件的使用收费。这样一来,您就不必购买软件,只需随需租用软件。
SaaS 的另一个方面是在 Internet 上使用远程执行的软件。这种软件可以是本地应用程序所使用的服务(并定义为 Web 服务),也可以是通过 Web 浏览器看到的远程应用程序。远程应用程序服务的一个例子是 Google Apps,它通过一个标准的 Web 浏览器提供一些企业应用。要远程地执行应用程序,通常需要依赖于一个应用服务器来公布所需的服务。应用服务器 是一个软件框架,它公布软件服务的 API(例如事务管理或数据库访问)。具体的例子有 Red Hat JBoss Application Server、Apache Geronimo 和 IBM WebSphere Application Server 等。
SaaS 的另一个最近的例子是 Google 的 Chrome 浏览器。这个浏览器是作为新桌面的理想环境,除了具有传统的 Web 浏览体验外,还可以通过它来(以本地或远程方式)交付应用程序。
Platform-as-a-Service
PaaS 可描述为一个完整的虚拟平台,它包括一个或多个服务器(在一组物理服务器上虚拟而成)、操作系统以及特定的应用程序(例如用于基于 Web 的应用程序的 Apache 和 MySQL)。在某些情况下,这些平台可以预先定义和选择。而在另一些情况下,可以提供一个 VM 镜像,该镜像包含所有的特定于用户的应用程序。
PaaS 一个有趣的例子是 Google App Engine。App Engine 是一个服务,通过它可以在 Google 的可伸缩性极佳的架构上部署 Web 应用程序。App Engine 为可通过 Internet 引用的 Python 应用程序提供一个沙盒(将来还会支持更多的语言)。除了支持用户认证、镜像操作和电子邮件发送外,App Engine 还提供了 Python API,用于持久地存储和管理数据(使用 Google Query Language 或 GQL)。Web 应用程序运行时所在的沙盒将限制对底层操作系统的访问。虽然 App Engine 限制了应用程序可用的功能,但是它支持有用的 Web 服务的构造。
注意:在一定的带宽和存储约束范围内,在 App Engine 中部署应用程序是免费的。但是,如果要用 App Engine 构建生产 Web 站点,则需要评估使用费。
除了前面已经讨论过的开发外,还有其他一些基于 Linux 的开放源代码包,它们在云环境中也比较有用。Hadoop 是一个开放源代码 Java™ 软件框架,它类似于 PaaS,但是着重于在一组联网的服务器上操纵大型的数据集(受 Google MapReduce 的启发,后者支持大型数据集的并行处理)。因此,它在 Web 搜索和广告应用中派上用场 — 特别是在 Yahoo! 上。Hadoop 还提供一些子项目,这很像 Google 应用程序。例如,HBase 提供类似于 Google BigTable 数据库的功能,Hadoop Distributed File System(HDFS)提供类似于 Google File System(GFS)的功能。
问题和挑战
云计算的问题显而易见 — 其中最重要的两个问题是保密性和安全性。保密性可以通过加密来解决,但是在选择云计算服务时,要审慎一些。在 Web 刚开始发展时,即使是电子商务也受到了怀疑。在全球,每年要发生价值上万亿美元的电子商务事务,所以云计算可以收益于当今所有提供 Web 安全的技术(例如安全套接字层或 SSL)。
结束语
云计算的风暴已经开始,推动云计算的 Linux 开源开发也在迅猛发展。随着云计算领域出现巨大的投资,向集中式数据中心的转型已显而易见。有趣的新技术和架构即将到来!