1、 2006 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice 云计算风云史-从IT架构解读云计算22022-5-31广告看懂了吗?32022-5-31这说明广告做的得好!有没有注意到寺庙里的气氛也很神秘?不神秘,就没有崇拜。不崇拜,你怎么肯掏钱买香火?” 42022-5-31【1】云计算要解决什么问题?云计算要解决什么问题? 1997年,Google的两位创始人,Larry Page和Sergey Brin,找Andy Bec
2、htolsheim募集投资。Andy问,“你们打算做什么?”Larry和Sergey答,“打算把互联网上所有网页都下载,然后建一个搜索引擎。” 52022-5-31从中可以看到Google集群,也就是Google云计算的核心,要解决的四个问题。1. 大规模的存储空间,用于存储海量的数据。2. 随着业务的发展,新的数据源源不断地增加,存储空间需要相应扩大。用术语讲,这叫可扩展性,scalability。3. 系统的硬件设备必须便宜,通常使用大宗产品(commodity),譬如PC,或者价格便宜,中等性能的PC server。4. 便宜的硬件设备,经常死机。所以在设计这个集群的时候,必须保证不能因
3、为个别机器死机,导致整个系统的崩溃。也就是系统的稳定性要好,reliability。 62022-5-31【2】从从Google集群到云计算,云计算集群到云计算,云计算的商业模式的商业模式 起初Google集群是供内部使用的系统。Google为什么要开放这个系统,包装成云计算平台,给外界使用呢? 单一的收入来源,抗风险的能力差。譬如经济危机一来,各个企业的广告预算缩减,势必影响到Google的利润。怎么办?挖掘自身的优势,发现更多卖点,搞多种经营。 72022-5-31让Google独步天下的是它的集群。2006年,Google集群的规模 是45万台机器。4年过去了,有人推测现在的规模又翻了N
4、番。由于Google从不公布准确数字,所以大家只能靠Google给硬件厂商下的订单推测。 82022-5-31但是如何依靠这个独门神器挣钱呢?思路有两条 1. 做hosting,数据托管。其它企业不用建自己的数据中心了,把数据存在Google的集群里得了,每个月交点托管费。2. 不少Google的应用服务很有人气,譬如Gmail,Gtalk,Reader,Online docs,Picasa,Google earth还有YouTube等等。这些服务对于个人用户而言,完全是免费的。但是Google从来没有说给企业用户使用,也是免费的。 92022-5-31还有个副产品,那就是给Google创造更
5、高的流量。流量越大,说明观众越多。对于广告商来说,哪里观众多,就愿意在哪里投放广告。所以,如果第二个思路能给Google带来更高流量,那么会吸引更多的广告,给Google带来更多的广告收入。 Google的高管们一合计,觉得有钱途。于是乎,大张旗鼓地开始制造舆论,educate the market。造舆论,讲究的是措辞的简练,气势的磅礴。这个新的服务叫什么? 用工程师的语言,准确地定义,应当是“超大规模的,可扩展的,低成本但是高可靠性的服务器集群系统”。Google市场部的人一听,头摇得像拨浪鼓。不行不行,既不简练,又没有气势。研究来研究去。于是乎,“云计算cloud computing”
6、这个概念粉墨登场了。 102022-5-31【3】Google云计算的矛头指向谁?云计算的矛头指向谁? 有一次听一位IT业长者指点江山。长者说,“Google像一个阳光少年,一路顺风顺雨,张张扬扬。让人羡慕,招人喜欢。而微软像一个稳健的中年人,一路风吹雨打,过五关斩六将,毁誉参半。对于它的支持者而言,它是令人敬重的领袖,对于它的竞争者而言,它是令人敬重的对手,无论如何,微软是令人敬重的。” 112022-5-31问及电脑的killer applications,长者说了三个,1. Email,2. Office产品系列,包括Word,Excel和PPT等,3. Web。Email和Web都是泛
7、称,不特指某家公司的产品,但是Office系列是微软公司的产品。长者这样的表述,足见他对微软的推崇。很少有人不知道微软,但是很少有人很了解微软。随便问两个问题,1. 微软哪一年成立的,2. 微软在哪个城市成立的,有多少人答得上来? 122022-5-31微软是在1975年4月,于新墨西哥州的Albuquerque市成立的,后来搬到了华盛顿州的西雅图市郊。从那时到2008年6月30日,Bill Gates掌舵了33年 132022-5-31微软有三个产品系列 1. 大家熟悉的XBox游戏机,是微软the Entertainment and Devices Division的拳头产品。 2. Th
8、e Platforms and Services Division,2008年7月份被一分为二。一个专注于改善Windows操作系统,另一个负责在线服务。原来的掌门人,Kevin Johnson,挥挥衣袖离开微软,去Juniper Networks出任CEO。 新的两位掌门人中,有一位是我们中国人,毕业于复旦大学的陆奇。 2009年1月,陆奇离开Yahoo,出任微软Online Services Group的president。他的职责是,领导微软对抗Google 142022-5-31152022-5-313. 对于Windows操作系统的评价,好坏参半。但是对于Microsoft Offi
9、ce系列产品,业界基本上交口称赞。负责Office部门的原掌门人,就是刚才提到的Jeff Raikes。 162022-5-312009年上演互联网争霸赛 1. 微软以陆奇为主帅,强攻Google的核心业务,网络搜索。2. Google砸重金推广云计算,挑战微软的拳头产品,Outlook email系统,和Office产品系列。 172022-5-31【4】云计算大战,云计算大战,Google出招出招 两军对垒,通常双方阵线连绵数十公里。在发动进攻的时候,很少出现全线推进的情况。相反,进攻往往出现在有限几个突击口上。集结强大兵力,在几个突击口上猛烈打击,期望在敌方阵线撕开缺口,然后向敌方纵深挺
10、进,分割敌人阵线,再逐个合围,各个击破。 大公司之间竞争也有类似特点 。182022-5-31Google在云计算战役中,选择的突破口是什么产品和服务呢? 答案,Google gadgets 192022-5-31Google gadgets简化了建网站的工作。每个网页可以视作多个元素集成,譬如上面显示的网页包含6个元素,从左上到右下分别是天气,时钟,日历,YouTube视频,生活小窍门,以及搜索。 Google gadgets的意义在于,不再像以往的产品那样,在电脑本地获取服务和内容。Google gadgets的服务和内容,来自于Google云计算平台。 202022-5-31基于同样原理
11、,Google又推出了Google desktop gadgets。 212022-5-31Google对外推出云计算这个概念有偶然因素 一个叫做Christophe Bisciglia 的 Google 工程师在自己的母校(University of Washington,坐落于微软的大本营附近)开了两门课讲GFS 和 MapReduce,告诉学生们微软落后啦,未来都是服务器端的应用,Google已经为此开发出服务器端的存储(GFS)和计算方法(MapReduce),所以同学们今后可以考虑用这些技术来对整个互联网进行计算操作,学生们很兴奋,Christophe也看到自己的机会。222022-
12、5-31他的技术水准也到不了哪里去,但是能忽悠,回到公司一报告,使得Google的CEO等人觉得:对啊,如果大学生们都只会学单机上的OS和编程,以后他们即使有好的互联网方面的想法,也只会是Google的敌人,何不趁此机会,推广一下自己的infrastructure,让孩子们有了想法都直接在 Google平台上实现,岂不化敌为友,还将微软一军? 232022-5-31在Christophe的课程中,一位大二女孩子的小项目吸引了一位idea满天飞的朋友。女孩子的项目简单到有点可笑,她就是把世界上主要报纸的内容爬下来放在GFS里,然后根据新闻的发生地用MapReduce聚类,把同一地区的新闻标注在
13、Google Maps相应的位置上。 朋友想想说:不错,这样一来,互联网对我来说就透明了,原来掌握在少数公司手里的资源现在我这等人也可以拿到了,只要有想法,钱还不花花的。242022-5-31个人认为,云计算的计算部分更是精华 存储量大就好像一个人有肌肉 ,但是如果加上计算,就好像肌肉男还有聪明的大脑 Google开放了GFS,MapReduce, BigTable,但是没有介绍大型集群里的RAM管理不是Google没做,而是它没讲 !252022-5-31【5】是云计算,还是云存储?是云计算,还是云存储? 通常网站有三个组成部分,1. 网页,2. 业务逻辑, 3. 数据存储。如果说网页相当于
14、商店,那么业务逻辑相当于车间,而数据存储相当于仓库。商店,车间和仓库三者中,技术含量最高的,当属车间。 车间管理可以大致概括为两件事,1. 工艺流程,2. 资源调度。工艺流程关心的是,先做什么,后做什么,才能生产一个完整的产品。资源调度的问题是,哪个工人,用哪台机器,在哪个时间,做什么。网站的业务逻辑处理,大致来说也分业务流程和资源调度两部分。 262022-5-31272022-5-31流程设计千变万化,而资源调度却有章可循。所谓计算机资源,无非是这五种东西,1. CPU,2. RAM,3. Disk,4. RAM-Disk IO,5. Network。 282022-5-31用中国古代智慧
15、,解决当今科技难题。我把仙人的办法概括为以下几个要点1. 五行相生相克,系统优化不能偏执单一资源的优化。2. 系统的总体效率需要一个测度,这个测度被称为“阴阳度”。3. 阴阳度不是五种资源的简单加权和。阴阳度与五行的关系是非线性的,这种非线性关系可以参照河图洛书来确定,譬如规定五行中土的阴阳度为0,河图数零点的阴阳度为-5,洛书数零点的阴阳度为-10。4. 时刻监控系统总体的阴阳度,阴阳度变化的正常模式可以分为太极,太虚以及太一三种。5. 当阴阳度的变化偏离了正常的模式,就需要对系统进行调整。调整的办法参见“说卦”中的六种范式,即洛书逆式,先天八卦,后天八卦,神也者,洛书顺式,和乾坤六子。29
16、2022-5-31Google的解决办法,是AppEngine !302022-5-31问题是,Google AppEngine真得能够优化任何业务流程的资源调度吗? 312022-5-31如果Google打算劝说大家把网站建在Google云计算平台上,AppEngine应该提供哪些功能? 1. 开放更底层的APIs,而不仅仅是Python的APIs。便于第三方开发人员,实现逻辑复杂的模块,资源使用方式复杂的模块。2. 提供IDE,方便第三方开发人员把模块封装成符合Google云计算平台规范的服务。3. 开发调度工具,用于监督各个服务资源消耗,分配合适的机器去负责各个服务运行等等。4. 开发预
17、警和修复工具。开放自己的平台,去运行第三方人员(外人)开发的服务。对于Google来讲,有理由提高戒备,预防云计算平台崩溃,万一崩溃了,能够迅速修复。 322022-5-31这四个功能,AppEngine目前都没有实现,所以云计算平台,对于第三方开发人员来说,暂时不是计算平台,而是存储平台!332022-5-31【6】安全性的难题,有解还是无解?安全性的难题,有解还是无解? 对于Google来说,如果希望AppEngine能够获得商业上的巨大成功,吸引更多用户,尤其是企业用户,最大的挑战在于,如何保障客户的数据和私有程序的安全。 342022-5-311. 有人问,为何不用VPN技术呢? 客户
18、可以通过VPN把数据安全地传输到Google云计算平台,但是VPN不能阻止Google的内部员工偷窥存放在Google机器上的数据。 352022-5-312.还有人建议,可以给数据加密。 它有四个缺陷a. 不能给程序加密b. 不能搜索加了密的数据c. 不能给数据库文件加密d. 公司员工离职后,有可能会造成私钥和公钥的外泄。362022-5-313.程序如何加密?1. 解密和加密,是相当耗用CPU的,同时占用时间也比较长。如果平时把所有程序加密,用时再逐个解密,整个流程将占用很长时间,这将严重影响用户的体验 2.现实中通行的办法是给程序变形,学名叫Obfuscation。道理很简单,把程序中的
19、变量名称转换掉,同时切割整个程序,并且重新排序,以便混淆耳目。变了型的程序依然可以运行 372022-5-314. 加密与搜索。 “Greatness is never a given, it must be earned”这句话怎么翻译? 382022-5-31Google和百度是如何搜索到这话出自奥巴马的演讲呢? 首先,Google和百度建一个索引,学名叫倒排索引(inverted index)。倒排索引中记录了每个单词出现在哪些文章中,而且记录了在这些文章中的什么位置出现过 其次,当用户搜索“Greatness is never a given”,搜索引擎通过倒排索引,查找“greatn
20、ess”在哪些文章中出现过,查找“never”在哪些文章中出现过,等等。然后把众多的搜索结果合并起来,看看哪些文章中不仅出现过“greatness”,还出现过“never”,“given”等等。392022-5-31如果把奥巴马原文加了密,不仅每个词都变成了乱码,而且词与词之间的空格消失了,甚至连词序也可能被打乱。这样一来,就没有办法按照通常的做法构建倒排索引。怎么办?怎么办? 402022-5-31a. 把加密算法和构建倒排索引的算法通盘考虑,重新设计一套一体化的算法。-这个思路能够一揽子解决我们面临的所有问题,但是设计这套算法的难度很高。目前还没有人能够想出有效的算法。b. 客户自己动手建
21、倒排索引,然后把索引加密,上传到云计算平台。 -云计算平台的卖点是方便客户处理繁重的数据计算。如果云计算平台不能帮助客户构建他们专用的倒排索引,那么云计算的卖点就大大失色 412022-5-31c. 在云计算平台中分离出一部份作为密室,专供企业用户存放保密级别很高的数据,以及运行保密级别很高的程序。-Google的员工只能监控密室中的机器的CPU,RAM和IO的使用情况,但是他们没有权限进入机器,查看文件,运行程序。这个办法虽然技术含量不高,但是比较容易实现。缺点是容易造成资源浪费。 422022-5-315. 加密与数据库 数据库最多只能对字段逐个加密,譬如“greatness”变成“#¥%
22、”。所以,对数据库的系统管理员,无法实施高级别的加密。 432022-5-316. 私钥和公钥的外泄。 密钥中心定期更换密钥,分批给文件重新加密。给旧文件重新加密是负担很重的工作!442022-5-31前面花了相当长的篇幅讨论各种为托管的数据和程序加密的办法,结论是,现有技术无法保障被托管的数据和程序被偷窥!452022-5-31明确云计算的定位 1. 锁定目标客户,这些客户有一个共性,就是对内容和程序的安全性不敏感。比如各种门户网站,论坛,B2C网上商店,政务和各种公共事业的网站,以及中小型企业等等。这部分用户数量不少,市场相当广阔。 462022-5-312. 提供特色服务,尤其是海量数据
23、处理。云计算平台类似于巨型计算机。客户利用云计算平台,处理自己的计算中心很难完成的海量数据处理。例如:电脑动画制作,天气预报等等。 472022-5-313. 根据不同的保密等级,做分级处理。实际上一个企业的重要秘密信息是不多的,机密文件存放在企业自己的机房里。其它不需要保密的文件,托管到云计算平台。这个市场也是很大的 482022-5-31【7】天上究竟会有几朵云?天上究竟会有几朵云? 大型企业,包括银行和电信,它们对云计算能够提供的超大规模存储能力,以及超大规模并行数据处理的能力,有天然的需求。-现实的解决办法是帮助大型企业建设属于它们自己的云计算平台。换而言之,未来的天空中,将漂浮着Go
24、ogle和Microsoft几朵云,这是几朵大云。在大云的周围,散落着一些小云。492022-5-31如何构建云计算平台? 说来也不很神秘。云计算平台的基本思想,可以简单概括为,设计一套操作系统,同时管理多台电脑,尤其是把多台电脑结合起来,当一台超级电脑使用。 502022-5-31云计算平台有两大特色 1. 便宜。即使用几台穷人买的起PC,也能构建一个麻雀虽小五脏俱全的Google式云计算平台。其实,Google自己就是这么起家的。2. 稳定。便宜的机器经常死机。Google式云计算平台,能保证一部份机器死机不会造成整个系统的崩溃。 512022-5-31522022-5-31如果说Goog
25、le的两位创始人Larry Page和Sergey Brin确定了Google搜索引擎的算法和数据结构,那么奠定了Google后台的集群系统,也就是我们今天耳熟能详的Google云计算平台,就是 Jeffrey Dean 和Sanjay Ghemawat这两位。532022-5-31对比一下传统的单机的操作系统,GFS可以理解为云计算版的文件系统,MapReduce是云计算版的进程管理,Chubby是云计算版的synchronization。缺了什么?1. Memory management2. Scheduling/Computing542022-5-31有嘛 ?因为Google没有发表 !
26、552022-5-31【8】云中说禅云中说禅 云计算是一个大买卖,各大公司不会眼睁睁看着Google吃独食。IBM,Yahoo,Amazon,Microsoft等等相继跟进,都在宣传自己的云计算方案。 562022-5-31Google致力于云计算研究与实践,已经有十年了,技术积累厚实,于是说话底气足。其它公司嚷嚷归嚷嚷,总得拿出点真材实料,否则靠什么争取客户?从头开始研究开发当然是来不及了,于是IBM也好,Yahoo也好,Amazon也好,纷纷借Open Source的Hadoop,作为自己切入云计算市场的基石。 572022-5-31看一看IBM的Blue Cloud方案,以及Amazon
27、的EC2方案,除了Hadoop以外,它们还用到了另一个开源软件,Xen。 582022-5-31Xen是Zen的异体词,Zen的意思是禅。 592022-5-31602022-5-31这是Lucent公司的Logo!第一次见到这个logo的时候,不解。请教老美,老美很吃惊,说,“这是禅啊,你们东方的东西。” 612022-5-311974年,美国出版了一本名字很古怪的书,“禅与摩托车维护的艺术:对价值的探求(Zen and the Art of Motorcycle Maintenance:An Inquiry into Value)”。这本书的主线是一伙人骑摩托,17天环游美国的游记,其中穿
28、插了大量的哲学讨论。此书出版后,受到极大欢迎。 622022-5-312003年,剑桥大学计算技术实验室的几个人在合写一篇论文,文章写得差不多了,但是还缺一个标题。其中一位开玩笑地建议到,“要么就叫Zen and the Art of CPU Cycle Maintenance吧”。众人大悦。最后论文定名为“Xen and the Art of Virtualization”。同时,把整个项目定名为Xen。 632022-5-31Xen是做什么的?用一句话来概括,Xen的目标,是如何在一台计算机的硬件上,同时运行多个OS。什么情况下需要在同一台计算机上同时运行多个OS? 642022-5-31
29、为什么Xen与云计算有关? 在云计算平台上运行的程序,来自不同的客户。不能保证这些客户程序没有bugs,也不能杜绝恶意的破坏性程序。如何保证一个客户的程序,不至于破坏其它客户的程序运行,不至于损坏其它客户的文件? -所以最理想的做法,是让不同客户共享计算机硬件,但是各自拥有各自的OS。这样,既高效地使用硬件资源,又保证井水不犯河水。 652022-5-31Xen提供了实现这一目标的技术解决方案,所以借着云计算的东风,Xen大热。 662022-5-31上图描述的是Xen的体系结构。最底层的是计算机硬件,包括CPU,RAM,硬盘接口,网卡,外设数据总线等等。硬件层之上,是Xen hypervis
30、or层,包括总控界面(Xen Control Interface),虚拟CPU,虚拟RAM,虚拟硬盘,虚拟网卡等等。在Xen层之上,是各个OS实例(OS instances) 672022-5-31其中最左边的OS实例很特别。在启动Xen的时候,最左边的OS实例,Domain0 on XenoLinux,自动被启动。Domain0里运行着Xen Control Software,这个软件控制着各个OS实例的启动,终止,以及监控其运行情况。682022-5-31Xen并不是横空出世的新创意。计算机界往往出现工业界领先于学术界的局面,Virtualization技术就是这样一个例子。早在1998年
31、,硅谷 Palo Alto出现了一家公司,最早实现了多个OS共享一台计算机的设想。这家公司的名字叫VMWare,现在卖给了EMC .692022-5-31【9】赚钱才是硬道理赚钱才是硬道理 702022-5-311. Data-storage-as-a-Service(dSaas),说白了就是把云计算包装成一个巨大的网盘,客户想保存什么文件,不论是什么格式的,统统可以上传到这个网盘里。 如果把云计算和房地产开发相比较。盖了一栋空房子,没有装修,也没有通电通水通气,如何赚钱?最简单的办法是把空房子出租,给客户做仓库用。网盘就相当于仓库。 712022-5-312. Infrastructure-
32、as-a-Service(IaaS),是指提供计算能力,就像提供标准厂房,供电供水供气。 把云计算包装成IaaS,目标客户是动画制作商,数据挖掘商,天气预报局等等。他们编写自己的程序,自己负责运行和分析结果。之所以借助云计算IaaS服务,主要是借重云计算的平行计算的能力。 722022-5-313. Platform-as-a-Service (PaaS)。类似于开发商盖了一栋商厦,里面分割成很多摊位,把摊位出租给各个小摊贩,卖衣服鞋帽等等。PaaS针对的客户是各种传统行业的服务提供商,他们想在网上开设网络商店,但是他们不太了解IT技术,他们开设网络商店所需要做的,基本上只是上传内容。 732
33、022-5-314. Software-as-a-Service (SaaS)。类似于开发商不仅建了房子,而且装修成酒店,聘用了酒店管理人员。酒店面向是两类客户,1. 最终消费者,他们来酒店吃饭和住宿。2. 服务提供商,譬如婚庆代理公司,他们租用餐厅和客房,为新婚者承办婚宴。又譬如会议承办机构,他们利用酒店的会议室等等设施,代办各种会议。SaaS也一样,它可以给企业提供ERP之类的服务,也可以给其它网站提供Gadgets,譬如地图指南,或者日历等等。 742022-5-31云计算的商务做得最好的,当属A。752022-5-31【结束语结束语】 什么是云计算? -说白了,就是把一堆廉价PCs捆绑
34、在一起,统一管理,使用起来如同一台超级大型机(Mainframe)一样。762022-5-31云计算的意义在于 1. 让社会普遍获得超大规模的数据处理和存储能力。而过去,只有少数机构拥有这些能力。 譬如,客户可以无限量地在网上存放文章,照片和视频等等。一个普通动画工作室,可以制作好莱坞水准的动画片。 772022-5-312. 进一步降低了传统行业使用IT技术的门槛,有利于改进其生产和经营方式。 譬如,小摊贩可以在Amazon平台上开设网络商店。 782022-5-313. 对于那些已经拥有IT技术的企业来说,或许把数据存储和程序运行外包给云计算平台,以便降低企业的IT开支。 792022-5
35、-314. 形成一个新的IT价值链。 从Data-Storage-as-a-Service(dSaaS),到Infrastructure-as-a-Service(IaaS),到 Platform-as-a-Service(PaaS),到Software-as-a-Service(SaaS),处处是商机。802022-5-31【补补 结束语结束语】一篇好的论文,总是能引发很多思考。 812022-5-31云计算到底好不好? 毛主席语录如是说,梨子甜不甜,咬一口就知道 .822022-5-31思考1. HP如何在这场云计算大战中处在什么位置?2.HP如何在这场云计算大战中有什么劣势?3. HP如
36、何在这场云计算大战中有什么优势?832022-5-31Links:1. Google File system把多个电脑的硬盘组合起来,形成一个超大规模的硬盘,用来存储海量数据,同时保障万一有某些硬盘崩溃了,不至于遗祸整个系统。 2. MapReduce 如何实现并行计算。道理很简单,但是用好却不容易 3. Chubby lock service 电脑操作经常要用到锁机制,譬如用锁防止两个进程同时向同一个文件写数据。这篇论文谈的是,在由多台电脑组成的分布式系统中,集中管理锁的机制 842022-5-314. BigTable: 这篇文章既是讲如何实现分布式数据库,同时也可以把它看成范例,如何正确
37、使用Chubby锁机制,和GFS文件系统。 5. The Google cluster architecture: 各个组成部分完成以后,如何组建一个计算中心。这是这篇文章的主题。 852022-5-316. Cloud computing with Linux 7. Above the Clouds: A Berkeley View of Cloud Computing 862022-5-31Vedio: 1.IBM 云计算2. NHK纪录片-云计算技术的冲击3.google工程师讲云计算 872022-5-314. google眼中的云计算-李开复5.Hadoop in China 2009882022-5-31仅以此文献给那些为IT变革的先驱和探索者!仅以此文献给那些为IT变革默默奉献的耕耘者和那些无名的工程师!本文因篇幅有限,无法记录云计算大战中所有的细节,如有遗漏,还望见谅!892022-5-31 本文写于2010年3月16日凌晨4点10分,并非是标榜自己的努力和用工,而是感概于这场IT变革的伟大,更感动于IT工程师们为这场伟大变革付出的努力和艰辛,也顺便感叹一下自己头上渐多的白发_902022-5-31Q & A