您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页伯克利云计算

伯克利云计算

来源:化拓教育网
10

《高性能计算发展与应用》      2009年第一期    总第二十六期

伯克利云计算(节选)

 Michael Armbrust, Armando Fox,Rean Griffith,Anthony D. Joseph,Randy H. Katz,

Andrew Konwinski,Gunho Lee,David A. Patterson,Ariel Rabkin,Ion Stoica,Matei Zaharia

加州大学伯克利分校 电子工程和计算机科学系

 卢大勇[译]  上海超级计算中心  上海  201203  dylu@ssc.net.cn 陆    琪[译]  惠普公司  上海  201203 姚继锋[校]  上海超级计算中心  上海  201203

译者按:

“云计算”一词自出现以来,在产业界和学术界就掀起了波澜,众说纷纭,莫衷一是。在一些人眼里(如Google、IBM),云计算是未来的方向、潮流和必然,他们迫不及待的拥抱云计算;而在另外一些人眼里(如Oracle公司总裁Larry Ellison、GNU发起人Richard Stallman),云计算只是又一个商业炒作的概念,毫无新意,甚至蠢不可及。在过去的一年中,已经有大量的关于云计算的文章见诸博客、报纸、杂志和严肃的学术刊物。但本文无疑是迄今为止关于云计算最重要的文章之一。

文章的作者是分布式计算领域最有影响力的研究团队之一,领衔者David A. Patterson是 计算机界的权威,曾担任伯克利计算机系主任和美国ACM,本文是他们长达六个多月工作的结果,详细解答了什么是云计算、和以前的模型如SaaS有什么不同、为什么现在是云计算发展的最佳时机、云计算将创造什么新的机遇、有哪些挑战以及如何应对等一系列问题。

文章以内部技术报告方式发表于2009年2月10日,原文标题为“Above the Coulds: A Berkeley View of Cloud Computing”。全文可从如下地址下载:

http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf。

原文篇幅超过20页,本文为其节选,翻译全文可从上海超级计算中心网站下载。

1. 云计算:一个即将实现的古老梦想

云计算是计算作为基础设施这一长久以来梦想的新称谓,它在最近正快速变为商业现实。但到底什么是云计算?什么时候运用云计算会有效?这些问题仍然没有得到明确的解决。

我们这篇论文的目的,就是要明确一些术语,提供简单的公式来量化比较云计算和传统计算,并明确阐述云计算的发展的最大技术和非技术挑战,及相应存在的机遇。我们将尝试回答以下问题:

1.什么是云计算,它与以前的模型如SaaS有什么不同?

2.为什么现在正是云计算要发展的时候,而以前的尝试都是失败的?

3.成为云计算供应商需要什么条件?为什么公司需要考虑成为一个云计算的供应商?

4.云计算将创造什么新的机遇?

5.如何对现有的云计算产品进行分类,他们在技术和商业上各有什么不同的挑战?

6.云计算可能创造什么新的经济模型?服务运营者改如何决定将服务转移到云中还是保留在私有数据中心里?

7.云计算成功的10大挑战是什么?相应有什么解决方案?

8.将来的应用软件、基础软件和硬件都需要为适应云计算作哪些设计上的改变?

2. 什么是云计算?

云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施。互联网上的应用服务一直被称作软件即服务(Software as a Service, SaaS),所以我们使用这个术语。而数据中心的软硬件设施就是我们称作的云(Cloud)。

当云以即用即付的方式提供给公众的时候,我们称其为公共云,这里出售的是效用计算。当前典型得效用计算有Amazon Web Services、Google AppEngine和微软的Azure。不对公众开放的企业或组织内部数据中心的资源称作私有云。因此云计算就是SaaS和效用计算,但通常不包括私有云。在本文中,除非会引发歧义,否则我们将使用云计算这个术语。图1表示了云计算各层中的用户和供应商,我们将使用这些术语使我们的论点更将清晰。

SaaS对于最终用户和供应商的好处已经被广泛认识了。服务提供商只需要关注软件的安装、维护和版本的集中控制;最终用户可以在任何时间、任何地点访问服务,更容易共享数据和劳动,并安全的将数据存储在基础系统中。云计算不会改变这一切,而且还能为更多的应用服务供应商提供选择,因为他们可以在没有数据中心的情况下将他们的产品以SaaS方式发布。正如半导体代工的出现使芯片公司可以不拥有生产线而专注于芯片设计与销售一样,云计算使企业能不建立和提供数据中心就可以方便的发布SaaS服务。如同SaaS供应商减轻了传统的软件使用者的许多困难一样,云计算供应商将可以极大的帮助SaaS供应商。

图1  云计算的用户和供应商从硬件上看,云计算在三方面突破了传统。1.云计算能所需应变的提供使似乎无限的计算资源,云计算终端用户无需再为计算力准备计划或预算。

2.云用户(SaaS服务供应商)可以根据需要,逐步追加硬件资源,而不需要预先给出承诺。

3.云计算提供其用户短期使用资源的灵活性(例如:按小时购买处理器或按天购买存储)。当不再需要这些资源的时候,用户可以方便的释放这些资源。

我们认为这三点都是云计算可能对技术和经济造成的重要变革。事实上,我们注意到,过去在效用计算上的努力都失败了,正是因为遗漏了这三大特性中的一到两点。举例来说,2000-2001年的英特尔计算服务要求以合同方式被长期使用,而不是以

综合评论

11

小时为单位的购买方式。

云计算对于其用户(SaaS供应商)的吸引力已经非常明了了,那么谁将成为云计算的供应商呢?他们为什么要这样做?首先,实现所谓复用性和大宗采购这样的规模经济需要建立超大型数据中心。建造、提供、启动这样一个数据中心需要数百万美元的投资。另一个重要的条件是,这些公司还必须开发出可扩展的基础软件(如MapReduce、Google的文件系统、BigTable和Dynamo)以及配备专业的运维人员,以确护数据中心免受物理或电子攻击。

因此,成为云计算供应商的必要非充分条件是:必须已经拥有非常大型的数据中心、大规模的基础软件和运维数据中心的高级人才。在此前提下,以下因素也可能影响一个公司是否能成为云计算的供应商:

1.能挣很多的钱。一个足够大的公司仍然可以利用规模经济,以低于中等规模公司的成本提供很好的服务,同时获得可观的利润。

2.利用已有的投资。在现有体系中增加云计算服务,可以新增一种收入方式。理想情况下,追加的成本并不高,而且能分摊前期数据中心的巨大投资。

3.捍卫特许经营权。随着传统服务器和公司应用转入云计算,拥有特许经营权的供应商将希望为他们自己的应用提供云。

4.占据技术要塞。拥有足够数据中心和软件资源的公司都希望在云计算时代真正来临之前建立自己的立足点。Google AppEngine提供了另一种迁移到云环境的方式。它的吸引力在于它提供大量自动化的可扩展性和负载均衡的功能,这样开发人员不再需要在开发中考虑这些问题了。

5.利用客户关系。IT服务企业,如IBM全球服务通过他们提供的服务,拥有广泛的客户关系。提供一个品牌的云计算,客户可以不用担心迁移过程,从而维持双方的投资和客户关系。

6.成为一个平台。正如我们所见到的那样,Facebook提倡的应用程序插件方式是非常适合云计算的。Facebook应用插件的提供商Joyent,同时也是一个云计算供应商。但是,Facebook的动机是让他们的社交网络应用变成一个新的开发平台。

3. 云的大风暴:为什么是现在?

尽管我们认为建造和运营超大规模商用数据中心是云计算可能的前提,但是技术发展的趋势和新的商业模式是使之现在能成为现实的关键。一旦云计算开始腾飞,以前无法理解的应用机遇和使用模型都将被发现。

《高性能计算发展与应用》      2009年第一期    总第二十六期

3.1 新技术趋势和商业模式

随着Web 2.0的出现,“高接触、高利润、高承诺”的服务提供方式正在朝“低接触、低利润、低承诺”的自助式服务转变。Amazon Web Services根据这一观点,在2006年提供无合同的即用即付计算服务:所有用户需要的只是一张信用卡。第二个创新点就是出售硬件级的虚拟机时,允许客户互不影响地选择他们各自需要的软件,通过共享硬件降低成本。

3.2 新的应用机遇

虽然我们还没有看到云计算从根本上创造新型的应用,但是我们认为,几个重要类型的现有应用将变得更加引人注目,并在将来推动云计算的发展。Jim 

Gray在2003年调研技术发展趋势的时候得

出这样的结论:经济必要性要求我们将数据存储在应用程序的附近,因为广域网的成本(保持相对昂贵)比其他所有IT硬件设备的成本都要降低得更慢。虽然自Gray分析之后,硬件成本已经发生了改变,但是他的“盈亏平衡点”的观点并没有改变过。

移动互动应用程序。Tim 

O’Reilly认为“将来

是属于那些能对人或者其他传感器提供实时响应的服务”。这种服务是非常适合云的,因为他们不仅要求高可用性,而且通常需要大型数据中心妥善存储大量数据。更突出的例子就是那些需要综合两个或多个源信息或服务提供综合服务的应用,如mushups。

并行批处理程序。云计算为批处理和数据分析提供了独特的机遇,TB级的数据分析将可以在数小时内完成。如果应用程序中的数据具有足够的并行性,用户可以利用云提供的成本特性,即相同成本下同时使用大量机器能在短时间内完成少量机器需要长时间才能完成的工作。

分析需求的兴起。计算密集型批处理的典型案例就是商业分析。虽然大型数据库工业起初主要针对事务处理,但是这种需求已经不再增长了。现在越来越多的计算资源用于理解客户、供应链、购买习惯及排名分析等数据分析问题上了。因此,网数据库处理的资源平衡点正在从事务转向商业分析。

计算密集型桌面应用程序的扩展。最新版本的数学软件包Matlab和Mathematica可以通过云计算进行复杂的评估计算。其他的桌面应用程序可能同样可以无缝地扩展到云。

地域局限的应用程序。一些应用程序可能本身非常适合云的伸缩性和并行性,但是却因为数据传输成本或者数据传输延迟的根本性而不得不放弃使用云计算。除非广域网数据传输的成本(或者

延迟)降低,否则这样的应用程序就不适用于云。

4. 效用计算分类

任何应用都需要计算模块,存储模块和通讯模块(这里假设应用是简单分布的)。对于获得弹性和无限计算能力(需要将资源进行虚拟化)可复用性是必要的(如何实现复用与共享是被程序员所隐藏的)。我们的观点是,不同的效用计算将由展现给开发者的抽象层次的不同和各种计算存储资源管理层次的不同这两者所决定的。

Amazon 

EC2是一个典型案例。一个EC2实例看

上去像一台物理硬件,用户可以控制几乎除核心以上的所有软件堆栈。另外一个典型案例是面向特定领域的应用平台,像Google AppEngine和Force.com(SalesForce商业软件开发平台)。微软的Azure是一个介于灵活性(如同EC2那样)和编程方便性(如同Goolge AppEngine一样)两者之间的案例。

在云计算领域是否存在一种模式最终将取代其他模式?我们可以参照编程语言和框架的来进行说明。类似于C和汇编语言这样的底层语言能很好的控制物理机器的通信,但如果开发人员写的是Web应用程序,那么套接字的管理,分发请求等等用这类语言,即使采用好的库来写也是繁重而乏味的。另一方面,上层框架,例如Ruby on Rails使得这些机械性的工作对于程序员透明化,但这只能用于那些符合这个框架的应用来使用,并且这些应用只能使用框架所提供的东西;任何框架不提供的东西需要深入框架内进行修改,这通常会非常困难。另外,就像上层语言被底层语言实现一样,具备高可管理性云计算平台可以建立在低可管理性平台的基础上。举例来说,AppEngine能够建立在Azure和EC2的顶部;Azure能够建立在EC2的顶部。

5. 云计算经济学

5.1 弹性/伸缩性:转嫁风险

虽然云计算的经济吸引力常常被描述成“将资金支出转变为运营支出”,我们相信“即买即用”这一说法更准确的描述了购买者所能看到的经济方面的好处。通过云计算购买的计算时间可以用不同的方式实现(100台机器算1个小时或者1台机器算100个小时)。此外,由于不需资金来提前进行计算能力的部署,这部分资金可以投入到利润空间较大的核心业务中去。

伸缩性关键的一点是云计算可以细粒度的添加和移除资源(例如以服务器或者处理器为单位),并且时间的计算位是分钟而不是周,这将能使计算

12

综合评论

13

资源跟计算负载可以很好的匹配。而现实中数据中心的服务器利用率大概仅在5%到20%左右。这听上去低得吓人,但考虑到许多服务的峰值工作量比平均值要高2-10倍,就容易理解了。很少有用户部署系统低于峰值需求,这就必然导致了非峰值时间资源的浪费。负载的波动性越强,导致的浪费就越多。

云计算将错误估计负载的风险从服务运营商转移到了云提供商。云提供商可能需要收取额外的费用以承担这个风险。

5.2 成本比较:应该转向云计算吗?

如果从经济角度考虑,是该将现有的基于数据中心的服务转向云计算,还是继续驻留在数据中心?

我们统计了2003年和2008年计算资源成本,给出了2003年和2008年1美元所能购买资源的比较结果,并且给出了在2008年的价格基础上,与AWS上使用1美元价值的资源其实际成本的对比。乍一看,2008年1美元的硬件采购将比租用1美元相同硬件的要有优势。然而这个简单分析遗漏了许多重要的因素。

每个资源单独支付。大多数应用所使用的计算、存储和网络带宽都不是相同的;一些应用主要使用CPU,另外的主要占用网络资源等等,并且这些

应用都不能充分用满一个单一资源。直接购买云计算能够将应用与各种类型的资源隔离开来,能够降低不能充分利用资源的浪费。

电力、制冷和场地成本。电力、制冷和放置硬件的场地成本,这些因素在我们的分析中并未考虑。据粗略估计:在分摊放置硬件的建筑物的使用周期成本后,将会使CPU、存储和带宽的成本增加一倍。

运维成本。当前用于运维硬件的成本是十分低的——重启系统非常简单(可以按IP地址或者分组控制电源开关),而且经过简单培训的维护人员就可以进行服务器或者机柜级的损坏组件更换。一方面,由于效用计算是采用虚拟机而不是物理机,从云用户的观点来看,这些工作是云供应商应该承担的。

6. 云计算10大问题与机遇

本章中,我们将云计算发展所面临的问题进行排序,给出一个列表。其中每一个问题对应一个机遇——即我们对于克服相应问题的想法,包括一些直接的产品开发到主要的研究项目。表1中给出了10大问题与机遇。

表格1  云计算发展的10大挑战及相应的机会

问题

12345678910

服务的可用性数据丢失

数据安全性和可审计性数据传输瓶颈性能不可预知性可伸缩的存储

大规模分布式系统中的错误快速伸缩声誉和法律危机软件许可

机会

选用多个云计算提供商;利用弹性来防范DDOS攻击标准化的API;使用兼容的软硬件以进行波动计算采用加密技术,VLANs 和防火墙;跨地域的数据存储

快递硬盘;数据备份/获取;更加低的广域网路由开销;更高带宽的LAN交换机改进虚拟机支持;闪存;支持HPC应用的虚拟集群发明可伸缩的存储

发明基于分布式虚拟机的调试工具

基于机器学习的计算自动伸缩;使用快照以节约资源采用特定的服务进行保护使用即用即付许可;批量销售

问题1:服务的可用性

现今,绝大多数互联网服务提供商都会利用多个网络提供商来使自己避免在一个单独公司出现故障的情况下导致从互联网上消失,我们相信唯一合乎情理的提供极高可用性服务的解决方案就是多云计算提供商。

可用性相关的另一个问题是DDoS(Distributed Denial of Service,分布式拒绝服务)攻击。由于弹性,云计算将攻击目标从SaaS提供商转移到能够马上吸引攻击并且具有DDoS攻击保护能力的效用计算提供商。问题2:数据丢失

虽然现在的软件集已经在跨平台性方面改进了很多,但是从本质上说云计算的API仍是私有的,或者说当前没有建立起统一的标准。因此,用户很难将他们的数据和程序从一个站点迁移到另一个。这也是很多用户不愿采用云计算的原因。

显然,将云计算API标准化是上面问题的解决方案,这样SaaS开发人员能够在多个云计算提供商处发布服务和数据。某个公司的失误或故障将不会影响到用户数据的每个拷贝。

《高性能计算发展与应用》      2009年第一期    总第二十六期

问题3:数据安全性和可审计性

过去一段时间中我们曾听到多次这样的话:“我们企业的那些敏感数据将永远不会放到云中。”当前的云从本质上来说是提供了公共(而不是私有)网络,因此会遭受更多的攻击。可审计性也很重要,按照《萨班斯法案》和《健康保险携带和责任法案》等相关法律规定,企业提交到云中的数据必须满足审计需求。

我们相信建立同现有的各类内部IT环境同样安全的云计算环境是不存在任何根本问题的,灵活的运用加密存储、虚拟局域网、网络中间件(例如防火墙、包过滤)等技术就能迅速的解决当前已经碰到的一些问题。

问题4:数据传输瓶颈

当前应用发展越来越趋向于数据密集型。如果应用能够被拆分交由不同的云去处理,这将导致复杂的数据存放和传输。

快递硬盘是克服这样高成本的互联网传输成本问题的一种机遇。Jim Gray发现,传输大量数据最便宜的方式是用次晨达的快递方式来快递硬盘,甚至整个计算机。虽然没有硬盘厂商和计算机厂商的保证,我们认为以快递硬盘这种方式来进行数据传输是可靠的。

第二个机遇是发现在云中保存数据的吸引人之处。由于一旦数据存放在云中,数据传输将不在是一个瓶颈,这将会催生其他一些利用云计算能力的新服务。

第三个更加激进的机遇是试图快速降低广域网带宽的成本。除了广域网带宽成为一个瓶颈外,云内网络技术也可能是一个性能瓶颈。

问题5:性能不可预知性

我们的经验表明,在云计算中多虚拟机能够很好的共享CPU和内存,但是I/O的共享却有明显的问题。

一个机遇是改进体系结构和操作系统以获得更有效率的虚拟中断和I/O通道。另外一个可能是闪存能够降低I/O冲突。闪存相比硬盘能够支持更多的单位时间内的I/O操作,因此,有着随机I/O访问冲突的多虚拟机能够很好的协同工作,而不会出现使用机械硬盘时常见的互相干扰。

最后一个不可预期的问题是运行某些批处理程序时多个虚拟机的调度问题,这在高性能计算领域尤其明显。克服这一问题的机遇就在于为云计算提供一个有效的资源调度和管理工具。

问题6:可伸缩的存储

目前针对这个问题有许多不同的尝试,从提供丰富的查询和存储API,提供性能保证,到由存储系

统支持数据结构,都各不相同。存在的机遇是创建一个存储系统,不仅具备上述功能,而且提供向上和向下的伸缩性支持,同时在可扩展性、数据持久性以及高可用性等数据管理方面满足程序员需求。

问题7:大规模分布式系统中的错误

云计算中一个很大的挑战是从大规模分布式系统中去消除错误。一个经常出现的问题是这些bug不会在稍小规模的配置中重现,因此调试必须在生产环境中进行。

云计算中的虚拟机可能会成为一个机遇,它可能使程序员获得在传统分布式系统上难以获得的一些有价值的信息。

问题8:快速伸缩

即用即付无疑很适合存储和网络带宽,这两者都可以用使用字节数来衡量。由于使用虚拟机,计算稍稍有些不同。这里的机遇是在不违背使用协议的前提下能够实现根据负载自动并快速的调整计算规模以能够最大的节省费用。

问题9:声誉和法律危机

一个用户的恶意操作会影响到整个云的声誉。创建类似于信任邮件服务那样的声誉保护服务将可能会成为一个机遇。

另外一个问题是法律责任的转移——当出现问题是,云计算提供商将会希望由用户去承担相应法律责任,而不要将责任转嫁给他们。

问题10:软件许可

当前软件许可证通常限定在运行软件的机器上。用户购买软件并按年支付维护费用。许多云计算提供商从一开始就倾向于开源软件,部分正是因为商业软件许可证模式并不适合效用计算。

首要的机遇要么开源持续流行要么商业软件公司改变他们的许可证结构,让其更加适合云计算。还有一个办法是鼓励软件公司制定销售来向云计算提供产品。将软件公司销售部门的一些反对派转到支持云计算者的阵营中来。

7. 总结与云计算的展望

计算作为一项服务功能是人们长久以来的梦想。使用的弹性符合了通过互联网向用户直接提供服务的商业需求,因为,相比20年前,工作量的增长和收缩变得更加快速。过去要花好几年时间来增加业务和发展几百万用户,现在只要一个月的时间就可以做到。

从云供应商的观点出发,利用商品化的计算、存储和网络低成本的建立大型数据中心使得以低于许多中等规模的数据中心的价格“即用即付”的销售资源成为可能,并且利用资源在大量用户间的复

14

用来获取利润。从云用户的观点出发,云计算可以令一个初创的软件公司象初创的芯片厂商拥有为之服务的代工厂一样拥有自己的数据中心。除了初创公司,许多老牌公司或机构同样充分利用了云计算的伸缩性。

虽然,云计算提供商可能碰到上文提及的问题,我们相信经过长期的运行,这些提供商将会成功的完成这些挑战并建立一套可以让其他提供商效仿的运营模式,也许正是通过成功的把握我们提及的解决这些的问题的那些机遇来实现。

因此,开发人员需要明智的来设计下一代的系统,以适应云计算。一般来说,重点应该放在成百上千个虚拟机上运行应用的横向可扩展性,而不是考虑单个系统的使用效率。这隐含了如下几点:

应用软件,将来的应用软件将会同时在客户端和云中运行。在云中的运行部分需要具备快速的向上和向下伸缩的能力,这是对软件的新需求。客户端部分需要在和云断开的情况下仍然可用,这和现在的Web2.0技术不同。同时,这样的软件必须采用支付使用许可证的模式来满足云计算。

基础软件,将来的基础软件不仅能在物理机上运行,也需要能够在虚拟机上运行。此外,基础软件需要在一开始就建立自己的记账系统。

硬件系统,将来的硬件系统需要被设计成按某个容器(至少12个机柜)而不是按单个服务器或者单机柜进行扩展,因为这个容器将是云计算时代采

综合评论

15

购硬件的最小单位。运维的成本将与购置成本变得一样重要,当内存、磁盘和网络闲置的时候,可将其调至节能状态。处理器要求在虚拟机环境下能很好的工作,闪存应该被加入到存储结构中,局域网交换机和广域网路由器都需要在带宽和成本上进行改善

最后,我们对云计算的将来充满信心,并急切的想知道5年后云计算到底是什么样子:

随着时间的推移技术和价格的改变:更高层的虚拟云的结算单位是什么?不同资源价格将会变成什么样子?明显的,单个芯片的核数将会不断增长,每2到4年增加一倍。闪存将很有可能新增为传统的存储层次中速度较快的一层;那么它的结算单位将会是什么?作为当前发展最慢的技术,技术或者商业的创新是否能加速网络带宽价格的下落?

虚拟化层:云计算是由EC2这样的底层硬件虚拟机主导,还是由类似微软的中间层语言Azure,或者像Google AppEngine这样的上层应用框架主导?我们将会有更多的虚拟层次来满足不同的应用吗?一些提供增值服务的公司会在效用计算大潮中生存吗?还是所有成功的服务都被云提供商整合?如果他们不认同单一的虚拟层,多家公司会信奉一套通用标准吗?这会导致价格低限的出现使得云计算提供商失去吸引力吗?或者他们会区分服务的质量来保证利润吗?

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务