一篇云计算论文读后感

发表于:2011-03-08 21:12 | 分类:转载 阅读:(21) 评论:(1) php

        刚看了一个关于一篇云计算的论文的评论,也一样是通俗易懂,既适合同行看,也适合非IT人士科普一下。故转之,你们共赏。html

 

    评论对象的文章是:Above the Clouds: A Berkeley View of Cloud Computing(是一个技术报告,经过下面这个连接能够下载:http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf程序员

 

云计算论文读后感什么是云计算算法

 

我对云计算这个概念总有一直抵触心理。总以为是炒做。背后没什么技术含量。前段时间朋友推荐给我一篇有关云计算的论文,是伯克利大学计算机系几位学生发表的,一直也没当回事。直到上周去日本出差时才静下心来看看。原觉得是一篇学术性很强的文章,没想到读起来更像一篇MBA写得的文章。文章标题为Above the Clouds: A Berkeley View of Cloud Computing。或许能够翻译成云之上:伯克利眼中的云计算。能站在云之上看云,难免让人有一种一览众山小的感受。也许高傲了一点,不过人家伯克利这点资本仍是有的。文章内容自己通俗易懂,但却引起了我很多的思考。所以我忍不住也加入了这个炒云团数据库

该文自己章节分明,层次清晰。可是为了便于把问题深刻讨论(同时掩盖一下我逻辑混乱的缺点),我断章取义,列举几个我认为重要的观点,逐一讨论。若是你想看清楚整个大象,我建议仍是直接阅读原文。浏览器

 

一.      什么是云计算?安全

有关云计算究竟是什么的话题可能比天上的云还多。该文的定义是,云计算 = SaaS + Utility ComputingSaaS提供的是服务,而Utility Computing提供的是基础设施(硬件,OS,软件等)。这个定义看似有道理,但实际上等于没有定义。由于你们对SaaSUtility Computing的定义自己就不统一。服务器

不过该文中的比喻仍是比较形象生动的。你们都知道,计算机芯片除了设计以外,离不开加工,铸造这个环节。可是,在这个行业中,可以负担得起加工工厂的公司屈指可数,例如Intel,三星等。只有这些巨无霸才能承担得起30亿美金的生产线。因而就孕育了半导体芯片代工(Semiconductor Foundry)这个行业,以台湾的台积电(TSMC)为龙头老大。这样,那些没有能力开工厂的公司仍然能够作他们擅长的事:设计芯片。所以他们被称之为无厂半导体设计公司(Fabless Semiconductor Company),例如QualcommnVidia等。因而硬件行业被细分红芯片设计和芯片代工两大领域。芯片代工行业存在的理由是规模效应。当有足够多的芯片设计公司对他们产生需求时,他们在工厂中的投资就能产生回报。反过来,因为存在了芯片代工这样的行业,中小公司也能够没必要初期投入大量资金建厂,而尽量将资源投入到芯片设计中。网络

以一样的思路推理,或许软件行业未来也能够一样细分。某些大公司投入大量资本创建数据中心以及相关的服务。他们就是云计算的乙方。而更多公司不须要本身去建数据中心,而是去租相关的服务。这些公司被称为无数据中心公司(“Datacenter-less Company”),是云计算的甲方。架构

其实说白了,就是硬件外包。若是公司能够把软件开发外包出去,硬件为何不能够也外包出去呢?这个问题留在后面讨论。咱们仍是回到云计算的定义上吧。

我认为伯克利几位做者对云计算定义精髓的其实就是外包。只不过外包一词太不时髦了,甚至很土,没有技术含量,很差意提而已。外包最大的好处在于不消耗本身的固定成本,使用量能够随着需求增加和增加,减小而减小。你看,SaaS就是以租赁软件的方式取代采购软件。而Utility Computing更是像用电同样来用硬件,存储等资源,而不须要事先采购它们。SaaS + Utility Computing,不是典型的外包吗?

伯克利论文给出一个估计:数据中心的服务器平均利用率(server utilization)在5%20%之间。我以为这个数据虽然听起来有点难以想象,但和实际状况很是吻合。至少我所在的公司是差很少这样的。做为一家互联网公司,服务器的采购必定不能仅限于平常的并发量或访问量,而要基于峰值。而峰值每每是平常值的好几倍。这就致使在大部分平常状况下,服务器是严重空闲的,资源严重浪费。这就比如是为了知足高峰期间的需求,铁道部决定整年365天天天都像春运同样向全国提供最多的列车,最多的乘务员。结果天然是最大的浪费。但是互联网服务有时候没法预测哪天春运会到来,没法提早准备。因而,云计算就显得特别有诱惑力。

 

二,云计算的诱人之处

该文认为从硬件的角度看,云计算有3大好处。

1. 取之不尽的技术资源。这里的取之不满是相对而言的。这就比如对于我的用户而言,发电厂的电老是用不完的。所以,云计算的用户没必要为资源而预先规划。

2. 没必要事先在硬件,软件等上面投资。

3. 按使用量来收费。所以,云计算的用户与供应商直接的合同能够是短时间。

 

其实以上3条能够总结为一句话:弹性计算能力和按照使用量收费。

各大公司利用云计算来忽悠时,也基本上着眼于这里。兜售云计算服务的对象每每是公司的CTOCIO等人。对这些人来讲,以上3点确实很是有诱惑力。我总结的缘由以下。

第一点是资源规划。要知道技术规划是很是难的一件事情。缘由是业务规划每每不许确。若是资源真的是有弹性的,并且没有限制的,那就没必要作详细的资源规划了。反正何时须要,就何时购买。这不是和用电同样吗?何时须要开灯就开呗。多方便啊!说到底,技术部门不用再为业务规划不许确而买单了。多好的一件事啊!

第二点是初期投资。若是某个项目有潜力,有可行性,但初期投资比较高。这个项目就有可能由于风险太大而夭折。如今能够不在初期进行投资,那何乐而不为呢?

第三点是后期灵活。若是初期投资不大,并且不须要签定长期合同,那么公司均可以随时改变决定,进行调整。

可是细细品味,就会发现一些问题。

首先,若是使用云计算的缘由是不须要作技术规划,那将是一件很危险的事。这个道理一样能够比喻作用电。若是一个公司或家庭认为电资源是无限的,能够随便用用。不但可能会形成浪费,并且可能形成用电量过大而跳闸甚至火灾等事故。所以规划是必须的。

其次,若是每一个项目初期投资都很小,那么极可能出现不少项目都被草率启动。结果是生了不少孩子,而没人养的情况。

最后,因为后期很是灵活,致使需求不停地变动,对需求变动的管理成本大大上升。

咱们必须清醒地看到,云计算确实能够解决一些现存的问题。但它必将带来一些新的问题。是否选择云计算服务实际上是在新老问题上作平衡。

上次从云计算的诱惑之处已经看到了云计算可能带来的一些问题。但其实那些问题不是云计算自己的问题。而是由于云计算提供了更为方便的服务,从而可能引起很差好规划,草率开始项目,盲目需求变动等问题。

这就比如是在10-20年前,因为计算机资源匮乏(名牌大学计算机系也不过只有几台电脑),程序编辑器阅读不方便,编译时间很长(编译的时候抽支烟确定没问题,甚至吃顿饭都来得及)等等缘由,老程序员每每会把程序写在纸上,或者打印出来,修改过N遍之后再输入到电脑中。因为深思熟虑,这样的程序每每质量很高。而如今电脑资源处处都是,编辑器愈来愈容易使用(容易到只须要输入开始几个字母,编辑器会自动补全函数名/方法名的程度),再加上编译的速度飞快,程序员每每尚未把问题搞清楚就开始写程序了。程序的质量天然高不到哪里去。

因此问题不在云计算,而是使用云计算的人是否和过去同样认真规划,认真执行。

不过云计算自身确实存在一些先天不足。

 

三,云计算的问题

伯克利论文列举了10个问题。我认为如下几个相对比较严重。

1.      数据被锁定

当咱们把数据放到某个云计算平台上时,咱们必须有信心将来能够把数据搬出来。若是数据迁移的成本很高,咱们就会担忧数据被锁定在这个云计算平台上。这就比如是把钱存到某个银行很容易,但若是提出来很麻烦,或者手续费很高,咱们存钱的时候就会有顾虑。文章中提出的解决办法是将数据接口的API标准化,不一样的云计算供应商都要按这个标准提供数据进进出出的接口。换句话说,就是让存钱和取钱都十分方便。我认为这是十分必要的。但还不够。还须要第三方公司来作担保。当云计算供应商自身能力不够时(例如倒闭时),第三方公司能够保证咱们仍然能够把数据搬出来。这和当银行倒闭时,客户存的钱由保险公司来返仍是同样的道理。

2.      数据安全

大部分公司都不但愿本身的数据被云计算供应商看到。毕竟数据就是商业机密。可是这个问题比较棘手。当咱们把贵重的物品或钱存到银行的保险箱里时,银行即便能够看到它们,摸到它们,也没法在不被客户发现的状况下拿走它们。拷贝实物或钱等于制造赝品或伪钞,更没有实际意义。而当咱们把数据放到云计算平台中时,它们能够在咱们彻底不知道地状况下被简单地拷贝走,从而让原始数据失去价值。伯克利论文的解决方案是数据加密。但我以为这不必定能解决全部问题。加密并不能100%地保证数据不被解密。更况且加密对应用程序是一个很大的改动,是一件很消耗资源的工做。也许完全解决的办法是没有的。只能依靠对云计算供应商的信任。一来信任他们不会本身盗取数据。二来信任他们能够作好保安工做,不让其余人盗取数据。所以云计算供应商必定是要有信誉和能力的公司。

3.      数据传输

作过数据迁移的人必定有感觉,当数据量大的时候,网络每每会成为迁移的一个重要因素。数据迁移项目的瓶颈颇有可能卡在网络传输这个环节上。为了更形象地说明问题,伯克利论文给出了一个假想案例。假设要从伯克利大学传输10TB的数据到亚马逊公司所在的西雅图市。在带宽是20M/s的实际状况下,须要45天的时间和1000美金的带宽费用。可是若是经过快递公司的话,只需用不到1天的时间和400美金的快递费就搞定了。没想到在互联网如此发达的今天,居然是传统物流以绝对优点取胜。因而该论文提出的3个解决方案分别是:1)经过传统物流下降数据迁移的成本;2)千方百计把数据留在里面来减小数据传输的必要性;3)试图下降宽带网(WAN)的带宽成本。前两点都是要云计算用户本身来解决。而第三点则要靠网络设备的供应商来解决。看来都不是云计算供应商本身能够掌控的事情。不过这个问题虽然存在,但对于大部分用户来说并不特别严重,由于通常的中小用户没有这么大量的数据须要常常传输。

4.      性能问题

云计算目前是创建在虚拟机(VM)技术之上的。然而众所周知,VM技术虽然日趋成熟,但依然存在性能上的问题。特别是当多个VM之间相互竞争时,磁盘IO会成为严重瓶颈。该论文提出的解决方案是从硬件架构和操做系统上进行提高,以及引入闪存技术。我认为这个思路很是可取。计算机在过去几十年的发展虽然很大,但其核心设计一直没有大的改变。基本思路始终都是一台计算机上运行一个操做系统。VM是大势所趋。硬件和操做系统的设计也必须符合这个趋势。同时,基于高速闪存技术的存储技术也已经产品化。我在“苹果公司创始人沃兹尼艾克加入创业公司”一文中提到过。性能问题是以上几个问题中最有技术挑战性的问题,但也是最有可能被完全解决的问题之一。

伯克利论文还提出其它几个诸如可用性,可扩展性,大型分布式系统中的测试等问题。纵观云计算的一些先天不足之后,个人观点是虽然这些问题不容忽略,但解决方案仍是比较乐观的。目前已经有一些云计算的成功案例。我认为在将来几年以内,云计算服务将成为大部分IT公司考虑的方案之一。当软件外包的一个高潮过去之后,计算外包的高潮也许很快就要来到了。

这篇论文的第一做者名为“Michael Armbrust”。他应该是该论文的主要贡献者。去Google上搜这我的名时,搜索条上竟然会自动把这个名字补齐,并显示有31万条结果。可见这哥们的人气是至关的旺盛。(固然和小沈阳比差得远去了。小沈阳在谷歌显示的结果有17百多万条。)一个学术界的小毛孩,至关不容易了。这哥们还有一个过人之处,就是经过对Google排序算法的实验,当你搜索他的名字时,让Google搜索结果的第一页所有返回有关他的网页。让与他重名的人彻底在第一页上露不了脸。真绝!找他作SEO,效果确定不错。

图片

Michael Armbrust,加州大学伯克利分校RADReliable Adaptive Distributed systems)实验室的博士生。

这篇论文的署名还真多,居然有11位。学术界的人都知道,除非你是第一做者,不然无非是搭个顺风车而已。不过这些人中却有2位是鼎鼎大名。文章的分量所以而陡然增长。他们是David PattersonRandy Katz。这二人在1987年发明了RAID技术,在存储行业无人不知,无人不晓。David Patterson写的2本书“Computer Architecture: A Quantitative Approach”“Computer Organization and Design: the Hardware/Software Interface”,以及Randy Katz写的“Contemporary Logic Design”一书都是美国大学和研究生院计算机系必读的教科书。所以,他们在计算机这个行业里基本上是家喻户晓了。

图片

David Patterson,加州大学伯克利分校教授,RAD实验室主任

图片

Randy Katz,加州大学伯克利分校教授

说了这么一大堆,无非是想说明这篇论文的重要性,从而间接地说明个人观点是有依据的:一个计算外包的高潮也许就要到来了。那么咱们这些将来的云计算使用者应该作哪些准备呢?

 

四,为云计算作准备

1. 应用程序要有可伸缩性。注意我这里用的是伸缩性,而不是扩展性。咱们平时每每强调应用程序须要有好的扩展性,但不多强调收缩能力。大丈夫能伸能屈。大丈夫写的应用程序应该也是同样的。若是将来咱们的应用程序是按照计算量(例如CPU使用率,I/O使用率等等)来付费,那么当用户访问量降低的时候,咱们必定要释放这些资源,从而下降费用。这就和不在家的时候,把电灯都关灯是一个道理。否则多浪费啊。看看咱们如今的不少设计中,资源池(例如数据库的链接池)这个概念已经十分普及了。可是真正可以作到伸缩自如的是百里挑一。

2. 将来的客户端程序须要更加聪明。当客户端不能上网时,或者不能链接到服务器上时,仍然能够容许客户作部分工做。而如今的客户端要么彻底基于浏览器(例如绝大部分网页),要么过于依赖网络(好比MSN,雅虎通等IM工具),一旦断网,就几乎没用了。理想中的IM可以让你不联网的状况下,仍然轻松地查看网友的联系信息,历史消息等。

3. 因为操做系统将逐渐被VM化,相应的系统管理技能和流程也须要改进。将来的系统管理员也许根本没法物理接触到他们管理的设备,全部工做都要经过远程管理。那时候的系统优化也许是彻底不一样的事情。

4. 公司里的我的电脑使用者将再也不物理拥有本身的电脑。你的桌子上或桌子下面将再也不有那个又笨又大的主机箱。你有的无非是一个显示器,一个键盘和一个鼠标。你的电脑资料被存在了某个VM上面,你不用再为备份而头疼了。世界或许将要轮回到7080年代的X window时期。你们都是经过终端登陆到某台主机上工做。

写到这里,我本身也不由有些吃惊。难道将来PC会消失吗?可是看看如今上网本这么流行,或许PC的末日真的不远了。PC的发展孕育了互联网。而互联网的发展或许会消灭PC。这后面究竟是什么?我真的很好奇。

若是云计算真的发展到了那个不须要PC,计算资源和电同样方便的时候,咱们恐怕早已经彻底适应了。如今的问题是当云计算还不成熟的时候,咱们该不应去吃这个螃蟹?答案确定是没有的。但愿那些吃过螃蟹的人分享经验。我也将尽量地分享个人经验。