“云计算是下一代计算的基础之一。... 它是一个 ‘网络即所有计算的平台’ 的世界,其中我们现在视为计算机的一切东西都只是一个连接到我们所构建的大型计算机的设备。云计算是一种思考我们将来如何提供计算服务的奇妙方法。”
— O’Reilly Media 首席执行官 Tim O’Reilly
基础性技术
尽管云计算的基本技术 (如水平扩展分布式计算节点) 已经应用一段时间了,但虚拟化— 计算资源抽象 — 是所有云架构的基础性技术。由于能够使服务器 (在管理程序抽象的操作系统之后) 、存储设备、台式机和应用程序实现虚拟化,现在可以根据需要来分配种类繁多的 IT 资源。
过去几年里廉价的高带宽网络普及的急剧增长同样至为重要。十多年前只向少数互联网用户提供的高带宽服务现在已为北美、欧洲和亚洲的多数互联网用户所使用,这使从浏览器访问海量计算和数据资源成为可能。虚拟化资源在云中真正是无处不在 — 不仅仅在千兆位数据中心局域网 (LAN) 和广域网 (WAN) 之间,而且通过宽带提供给远程编程人员和最终用户。用于云计算的其他实现技术能够以绝对是前所未有的规模提供 IT 能力。下面列举几个例子:
复杂文件系统: 例如可支持几乎无限大存储容量的 ZFS、文件系统和卷管理集成、快照和写时复制 (Copy-on-Write) 克隆、在线完整性检查和修复,等等。
架构模式: 通过给常见问题提供可复用的解决方案,加快超级云架构的开发速度。
新技术: 用于管理结构化、非机构化和半结构化数据,可极大地促进数据密集型计算。
机器映像:可即时部署,极大地简化并加快了资源分配,同时增强了 IT 敏捷性和响应性。
云计算架构服务层
尽管在互联网的第一次革命中三层 (或 n 层) 模型作为一般架构出现,但虚拟化在云中的应用创造出一组新层:应用程序、服务和基础设施。这些层不只封装按需提供的资源,而且还定义了一个新的应用程序开发模式。同时在每个抽象层中,存在定义根据使用情况提供的服务的无数商业机会。
把软件当作服务 (SaaS)
SaaS 是最高层,其特色是包含一个通过多重租用 (Multitenancy) 根据需要作为一项服务提供的完整应用程序。所谓“多重租用”是指单个软件实例运行于提供商的基础设施,并为多个客户机构提供服务。 最为人所知的 SaaS 示例是 Salesforce.com,不过现在有了许多其他示例,其中包括 Google Apps,提供基本商业服务,如电子邮件。当然, Salesforce.com 的多重租用应用程序领先于云计算的定义好几年时间。另一方面,就像云计算中的许多其他层一样,Salesforce.com 现在的 Force.com 版本不只在一个云层工作,Force.com 是一个辅助性应用程序开发环境,或当作服务的平台。
把平台当作服务 (PaaS)
中间层 (或 PaaS) 是对开发环境抽象的封装和对有效服务负载的封装。原形有效负载是一个 Xen 映像 (Amazon Web 服务的组成部分),该映像包含一个基本 Web 栈 (例如,一个 Linux 发行套件、一个 Web 服务器,以及一个编程环境,如 Pearl 或 Ruby)。PaaS 产品可执行各个阶段的软件开发和测试,也可以专用于某个领域,例如,内容管理。商业示例包括 Google App Engine,它在 Google 的基础设施上提供应用程序服务。上述 PaaS 服务可以提供极大的灵活性,但可能会受到通过供应商提供的能力的制约。
把基础设施当作服务 (IaaS)
把基础设施当作服务 (IaaS) 处于最低层级,而且是一种作为标准化服务在网上提供基本存储和计算能力的手段。服务器、存储系统、交换机、路由器和其他系统协作 (例如,通过虚拟化技术) 处理特定类型的工作负载 — 从批处理到峰值负载期间的服务器/存储扩大。
最著名的商业示例是 Amazon Web 服务 (AWS),其 EC2 和 S3 服务分别提供基本计算和存储服务。另一个示例是 Joyent,其主要产品是一系列虚拟化服务器,这些服务器提供运行网站的高度可扩展的随需应变基础设施,包括用 Ruby on Rails、PHP、Python 和 Java 编写的丰富 Web 应用程序。
(ilovejoy) |