英文原文:Cloud computing service models, Part 1: Infrastructure as a Service
本文介绍三个云类别中的第一个:基础架构即服务(infrastructure as a service,IaaS)。IaaS 的一些关键概念包括:
最重要的是了解 IaaS 与众不同的两个方面:弹性和虚拟化。
IaaS 的价值
对于企业而言,IaaS 的巨大价值通过云爆发(cloudbursting) 概念实现 — 云爆发是指当需要的计算资源最多时将任务卸载到云环境的过程。云爆发促成的资本节约潜力巨大,因为企业无需额外投资利用率很低的服务器,那些服务器一年中只有两三次使用 70% 的容量,其余时间仅有 7-10% 的负荷。
但是,对于要在这方面利用 IaaS 优势的企业而言,IT 部门必须能够构建和实现能够将一些流程重新分配到一个 IaaS 云的软件。要构建和实现能够管理这种再分配流程的软件,需要考虑 4 个重要事项:
另外,组织需要注意云计算市场的供应商锁定(lock-in)状态。拥有可以从数据中心移动到云环境和在供应商的云之间移动的虚拟机(VM)对于企业而言可能是一种资产,但这需要供应商支持一种标准文件格式,而供应商通常不愿意那样做。
而实际情况是,目前没有一种公开规范或位于一个标准组织之下的规范。换句话说,目前没有一种真正标准化的格式,这种情况的结果至多是使事情变得复杂,原因是没有人保证您的构建基于的格式将来会受到支持。但是,有一点值得注意,假如这种新格式的规范是公开的,或者您拥有访问它的权限,那么将一种虚拟设备移植到另一种格式通常是可行的。令人感到欣慰的是,最近在对 Open Virtualization Format (OVF) 的支持方面取得了重大进展,OVF 很有可能成为标准 。另一个有希望的候选项是 Virtual Machine Disk (VMDK) 格式。VMDK 最初是 VMware 的一种专有格式,但现在它公开了,并受到了几个第三方组织的支持。
基础架构即资产
为展示云计算的演变过程,我们来回顾一下汽车工业在过去 50 年内的发展历程。在上世纪 60 年代到 70 年代,汽车制造商的相对优势完全取决于马力和扭矩。但是,到了 80 年代,事实证明这种模式不利于市场和环境,这迫使模式从基础架构即资产转移到基础架构即服务。
类似地,大量成功的公司在过去 50 年之内花费大量宝贵时间和资源来构建基础架构,其目标是通过创建一个更大、更快、更强的网络来获取战胜其竞争对手的竞争优势。IT 行业中的 “基础架构即资产” 范式拥有上世纪六七十年代的 “暴力跑车(muscle cars )” 所拥有的相同或类似的低效率和不利特征。对于企业计算,这些低效率包括:
为帮助您理解云计算的这三个类别,我创建了一个跨概念矩阵供您参考(参见表1)。范式(paradigm)是大多数用户遵循的模式。如前所述,IaaS 标志着从 “基础架构即资产” 到 “基础架构即服务” 的转变。云计算的其他两个类别(见表1)也标志着范式转变。对于 Platform as a Service (PaaS),转变来自 “平台即资产” 范式,该范式的特征是大量采购许可。同样的转变也适用 Software as a Service (SaaS),这种转变是从 “软件以许可形式作为组织资产” 到 “软件以服务形式提供”。本系列第 2 和第 3 部分将分别讨论 PaaS 和 SaaS。
表 1. 三个云计算类别的跨概念矩阵
范式转变 | 特征 | 关键词 | 优势 | 劣势和风险 | 不适用时间 | |
---|---|---|---|---|---|---|
IaaS | Infrastructure as an asset | 通常独立于平台;基础架构成本被共享从而减少;SLAs;根据使用情况付费;自我伸缩 | 网格计算、效用计算、计算实例、虚拟机监控程序、云爆发、多租户计算、资源共用 | 避免硬件和人力资源上的资本投入;ROI 风险减小;准入门槛低;简化和自动化的伸缩 | 业务效率和生产力极大地依赖供应商的能力;长期成本可能更高;集中化需要新的/不同的安全措施 | 当资本预算大于经营预算时 |
PaaS | 许可采购 | 使用云基础架构;服务敏捷项目管理方法 | 解决方案堆栈 | 简化了的版本部署 | 集中化需要新的/不同的安全措施 | N/A |
SaaS | Software as an asset(企业和消费者) | SLA;瘦客户机应用程序驱动的 UI;云组件;通过 API 通信;无状态;松散耦合;模块化;语义互操作性 | 瘦客户机;客户机-服务器应用程序 | 避免软件和开发资源上的资本投入;ROI 风险减小;简化和迭代的更新 | 集中化需要新的/不同的安全措施 | N/A |
IaaS 的主要方面
与其将互联网想象成一个单一的全球云,不如将其想象为由许多云组成的一个系统(比如一个暴风雨云)可能更准确。通过这种比喻,就可以从逻辑上断定:闪电是云际通信的天气系统等价物。假设那些云以一种系统方式相互交互,创建一个单一结果:互联网,从这个意义上讲,上述比喻可能更准确。
但互联网不太可能只由一个云组成——至少在不远的将来不太可能——原因是云计算标准缺乏,且企业也没有进行长期投资以消除供应商锁定的明显尝试。不管怎样,如果它不是有利于资本主义精神的创新,云计算也无法发展到今天的程度。也许有一天,互联网真的能成为一个单一、互联的云,在那个云中:虚拟机可以轻松转移到 “那个云”,而不必担心文件格式;互联的 VM 集群可以跨服务提供商得到管理——只需通过一个界面即可实现。但在此之前,我们还是认为互联网由很多云组成。( 具有讽刺意味的是,我正在使用 Apple MobileMe 云来存储这篇文章,这样我才能跨几个设备处理它。)
了解弹性基础架构
弹性是 IaaS 的首要关键方面。为了阐述弹性的概念,我需要您展开想象。假设云由一些粘在一起的棉花糖簇组成,这样人们就可以坐在它们上面。每个棉花糖都能承载一定数量的人,具体取决于组成云的棉花糖簇的数量和那些簇中包含的棉花糖的数量。随着越来越多的人登上棉花糖云,您可以通过粘贴更多的棉花糖来扩展棉花糖簇,增加表面面积。您可能已经明白,人代表需要计算资源的应用程序,比如承载网站并运行软件的资源。棉花糖簇代表 VM 集群,每个棉花糖代表一个 VM。
尽管这听起来有点像 Seuss 博士的书中可能出现的内容,但它提供了一种方法来理解许多黑魔法(dark art)考虑的一个概念:弹性集群化(elastic clustering)。集群化几个物理服务器来形成一个虚拟云称为云集群化(cloud clustering),如果它真是一种黑魔法,则精通程度通过一位艺术家的系统设计的可伸缩性来衡量。
我们来看一个例子。假设您是一位为美国政府工作的统计研究员。政府有点人手不足,您刚刚接受一个任务,需要编辑最近的美国人口统计的所有数据。您负责制定必要的统计数据,以便议会能够制定关于经济恢复资金分配和从现在起三天内的税收金额的重要决策。毋庸讳言,这是一项非常重要的工作,您的时间有点紧张。而且,您必须处理的数据量简直是个天文数字,您刚刚发现,编辑那些统计数据需要的计算资源需要 IT 部门三周时间才能准备好!
这种问题正是您可以使用 IaaS 轻松缓解的。事实上,使用 IaaS,您可以在一小时之内完成全美人口普查数据分析。您首先创建一个服务器的单个实例,这个服务器包含在数据上运行查询需要的数据库软件。这个实例称为一个映像。
当您部署映像并将数据导入数据库之后,就可以根据需要复制那个映像任意多次,并开始运行您的数据处理任务。当任务运行时,您可以手动或自动添加和移除资源。例如,如果计算任务的运行速度不够快,只需将更多机器实例副本添加到集群。
理解弹性概念之后,现在我们来看看 IaaS 的第二个主要方面:虚拟化。
机器虚拟化
Sergey Brin 和 Larry Page——Google 的创始人——早在 1995 年就有了正确的想法,当时他们每天晚上都在斯坦福大学的计算机科学大楼后面的废料箱里翻检,找出被人忽略的计算机零件。他们将那些随意的、基于 x86 的计算机零件带回宿舍,将它们添加到托管具有传奇色彩的 “爬网蛛” 的 Frankenstein 机器上,爬网蛛——两次——记录下了斯坦福市的整个网络 。
今天,Google 预计在 12 个主要数据中心拥有超过 100 万台 x86 服务器,在各大洲拥有约 20 个小型数据中心。那是一个非常大的云。两个系统设计关键因素曾在 1995 年允许他们伸缩他们的 “宿舍怪兽”,而它们仍然适用今天的 Google 网络中的一百多万台服务器。直到今天,Google 仍然继续使用廉价的 x86 零件,而不是许多公司数据中心中昂贵得多的企业服务器组件。其次,故障转移、冗余性、监控、集群化和其他基础架构管理任务通过在操作系统层之下运行的一个虚拟系统来处理,而不是使用负载平衡器之类的独立硬件来处理类似任务。
IaaS 很容易定位,因为它通常是独立于平台的。IaaS 有一个硬件和软件资源组合组成。IaaS 软件是低级代码,独立于操作系统运行——称为虚拟机监控程序——并负责管理硬件资源的库存并根据需要分配上述资源(见图1)。这个过程称为资源共用(resource pooling)。 虚拟机监控程序实现的资源共用使得虚拟化成为可能,虚拟化使多租户计算(multi-tenant computing) 成为可能——多租户计算概念指由几个组织共享的一个基础架构,这些组织在安全需求和遵从性问题方面有类似的兴趣。
通过 IaaS,您拥有提供处理、存储、网络和其他计算资源的能力,您可以在那里部署和运行任意软件,比如操作系统和应用程序。大多数云计算用例遵循您已经习惯的基础分层结构:一个软件解决方案堆栈或平台被部署在一个网络基础架构上,一些应用程序在那个平台之上运行。但是,虚拟化使得云范式独一无二。
结束语
在本文中,您了解了云计算的许多原则,IaaS 的架构,以及云计算如何用于一个真实场景。本系列第二篇文章将深入第二个主要的云计算类别:PaaS。在此期间,请查看参考资料部分的链接,了解关于 IaaS 的更多信息。
参考资料
关于作者
Dan Orlando 是企业开发社区一位公认的领袖。Dan 长期担任顾问,他在 Adobe 技术平台方面的专业技术经常受到工业领袖和 IBM developerWorks、Adobe Developer Connection 和 Amazon Web Services 等出版物的引用。Dan 还定期在 DanOrlando.com 撰写博客。