云计算服务模型,第 1 部分: 基础架构即服务

了解基础架构即服务(IaaS)的一些关键概念。IaaS 向一个平台提供虚拟服务器、数据存储器和数据库等基础服务,以便部署和运行应用程序。

这个三部分系列将展示一些直观、真实的云计算示例,帮助您消除关于云计算概念的疑惑。本系列的每篇文章分别涵盖云计算的三个服务类别中的一个,首先是基础架构即服务,然后是平台即服务,最后是软件即服务。阅读完本系列之后,云计算对您而言将不再是一个时髦词汇。

Dan Orlando, CEO, Creative RIA

http://www.ibm.com/developerworks/i/p-dorlando.jpgDan Orlando 是企业开发社区一位公认的领袖。Dan 长期担任顾问,他在 Adobe 技术平台方面的专业技术经常受到工业领袖和 IBM developerWorks、Adobe Developer Connection 和 Amazon Web Services 等出版物的引用。Dan 还定期在 DanOrlando.com 撰写博客。



2011 年 4 月 21 日

本文介绍三个云类别中的第一个:基础架构即服务(infrastructure as a service,IaaS)。IaaS 的一些关键概念包括:

  • 云爆发(cloudbursting)
  • 多租户计算(multi-tenant computing )
  • 资源共用(resources pooling)
  • 虚拟机监控程序(hypervisor)

常用缩略词

  • API:应用程序编程接口
  • IT:信息技术
  • ROI:投资回报
  • SLA:服务水平协议
  • UI:用户界面

最重要的是了解 IaaS 与众不同的两个方面:弹性和虚拟化。

IaaS 的价值

对于企业而言,IaaS 的巨大价值通过云爆发(cloudbursting) 概念实现 — 云爆发是指当需要的计算资源最多时将任务卸载到云环境的过程。云爆发促成的资本节约潜力巨大,因为企业无需额外投资利用率很低的服务器,那些服务器一年中只有两三次使用 70% 的容量,其余时间仅有 7-10% 的负荷。

但是,对于要在这方面利用 IaaS 优势的企业而言,IT 部门必须能够构建和实现能够将一些流程重新分配到一个 IaaS 云的软件。要构建和实现能够管理这种再分配流程的软件,需要考虑 4 个重要事项:

  • 事实证明,如果某个供应商可能会停业,那么针对该供应商的专有 IaaS 进行开发将是一个代价不菲的错误。
  • 编写良好的资源分配软件通常比较复杂,需要顶尖的开发人员资源,这种资源的成本不会低廉。预先为您能找到的最好资源准备更多预算将为您自己和您的组织节约大量时间、减少挫折并消除预料之外的费用。
  • 您需要将什么发送到云并在云中处理?将个人身份、财务信息和医疗保健之类的数据发送到云将使您面临违反美国 Sarbanes-Oxley (SOX) Act、Payment Card Industry (PCI) 或 Health Insurance Portability and Accountability Act (HIPAA) 法规的风险。
  • 务必理解转移企业日常运营关键流程的危险。一个好主意是事先绘制一张包含三列的表,第一列是涉及合规性关键数据的流程,第二列是涉及业务关键任务的流程,第三列是涉及非关键任务的流程。然后,计划在第一阶段只让软件卸载第三列中的项目。

另外,组织需要注意云计算市场的供应商锁定(lock-in)状态。拥有可以从数据中心移动到云环境和在供应商的云之间移动的虚拟机(VM)对于企业而言可能是一种资产,但这需要供应商支持一种标准文件格式,而供应商通常不愿意那样做。

而实际情况是,目前没有一种公开规范或位于一个标准组织之下的规范。换句话说,目前没有一种真正标准化的格式,这种情况的结果至多是使事情变得复杂,原因是没有人保证您的构建基于的格式将来会受到支持。但是,有一点值得注意,假如这种新格式的规范是公开的,或者您拥有访问它的权限,那么将一种虚拟设备移植到另一种格式通常是可行的。令人感到欣慰的是,最近在对 Open Virtualization Format (OVF) 的支持方面取得了重大进展,OVF 很有可能成为标准 。另一个有希望的候选项是 Virtual Machine Disk (VMDK) 格式。VMDK 最初是 VMware 的一种专有格式,但现在它公开了,并受到了几个第三方组织的支持。


基础架构即资产

为展示云计算的演变过程,我们来回顾一下汽车工业在过去 50 年内的发展历程。在上世纪 60 年代到 70 年代,汽车制造商的相对优势完全取决于马力和扭矩。但是,到了 80 年代,事实证明这种模式不利于市场和环境,这迫使模式从基础架构即资产转移到基础架构即服务。

类似地,大量成功的公司在过去 50 年之内花费大量宝贵时间和资源来构建基础架构,其目标是通过创建一个更大、更快、更强的网络来获取战胜其竞争对手的竞争优势。IT 行业中的 “基础架构即资产” 范式拥有上世纪六七十年代的 “暴力跑车(muscle cars )” 所拥有的相同或类似的低效率和不利特征。对于企业计算,这些低效率包括:

  • 大量未使用的计算能力和容量,它们耗费的成本与大型、昂贵的数据中心中的硬件消耗的大量空间相关联。
  • 昂贵的人力资源需求,包括要求基础架构资产(服务器、路由器、交换机等)所在的数据中心的网络管理员进行 24 小时监控。
  • 旨在应对高水平能源浪费的 Green Computing 计划的一个巨大障碍。

为帮助您理解云计算的这三个类别,我创建了一个跨概念矩阵供您参考(参见 表 1)。范式(paradigm) 是大多数用户遵循的模式。如前所述,IaaS 标志着从 “基础架构即资产” 到 “基础架构即服务” 的转变。云计算的其他两个类别(见 表 1)也标志着范式转变。对于 Platform as a Service (PaaS),转变来自 “平台即资产” 范式,该范式的特征是大量采购许可。同样的转变也适用 Software as a Service (SaaS),这种转变是从 “软件以许可形式作为组织资产” 到 “软件以服务形式提供”。本系列第 2 和第 3 部分将分别讨论 PaaS 和 SaaS。

表 1. 三个云计算类别的跨概念矩阵
范式转变特征关键词优势劣势和风险不适用时间
IaaSInfrastructure as an asset通常独立于平台;基础架构成本被共享从而减少;SLAs;根据使用情况付费;自我伸缩 网格计算、效用计算、计算实例、虚拟机监控程序、云爆发、多租户计算、资源共用 避免硬件和人力资源上的资本投入;ROI 风险减小;准入门槛低;简化和自动化的伸缩 业务效率和生产力极大地依赖供应商的能力;长期成本可能更高;集中化需要新的/不同的安全措施 当资本预算大于经营预算时
PaaS许可采购使用云基础架构;服务敏捷项目管理方法解决方案堆栈简化了的版本部署集中化需要新的/不同的安全措施N/A
SaaSSoftware 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) 成为可能 — 多租户计算概念指由几个组织共享的一个基础架构,这些组织在安全需求和遵从性问题方面有类似的兴趣。

图 1. VMs、虚拟机监控程序和计算机之间的关系
显示 VM、虚拟机监控程序和计算机之间的关系的图像

通过 IaaS,您拥有提供处理、存储、网络和其他计算资源的能力,您可以在那里部署和运行任意软件,比如操作系统和应用程序。大多数云计算用例遵循您已经习惯的基础分层结构:一个软件解决方案堆栈或平台被部署在一个网络基础架构上,一些应用程序在那个平台之上运行。但是,虚拟化使得云范式独一无二。


结束语

在本文中,您了解了云计算的许多原则,IaaS 的架构,以及云计算如何用于一个真实场景。本系列第二篇文章将深入第二个主要的云计算类别:PaaS。在此期间,请查看 参考资料 部分的链接,了解关于 IaaS 的更多信息。

参考资料

学习

获得产品和技术

  • ElasticFox 是一个 Firefox 扩展,允许您管理您的 Amazon EC2 资源。
  • 查看 IBM Smart Business Development and Test on the IBM Cloud 上提供的 产品映像
  • 查看 Amazon Elastic Compute Cloud 上提供的 产品映像

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing
ArticleID=649288
ArticleTitle=云计算服务模型,第 1 部分: 基础架构即服务
publish-date=04212011