细观Google全面大揭秘

原贴:http://networld.tianyablog.com/blogger/post_show.asp?BlogID=40003&PostID=7257621&idWriter=0&Key=0

细观Google全面大揭秘
作者: 弥勒菩萨 提交日期:2006-11-1 8:54:00 | 分类: | 访问量:251

  加利福尼亚州山景城(Mountain View)谷歌公司(Google,下称谷歌)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与谷歌地球(Google Earth)相仿的世界地图,一个转动的地球上不停地闪动着五颜六色的光点,恍如罗马宫廷的千万烛灯,每一次闪动标志着地球的这个角落一名谷歌用户发起了 一次新的搜索。这同时意味着谷歌又一次满足了人们对未知信息的好奇与渴望。
  
   谷歌是与众不同的。它的独特不仅仅表现于革新的思维和充满创意的应用(比如那个大堂里的地球模型),更在于其有别常规的IT策略。从人们的常理来看,简 单的硬件商品和免费软件是无法构建出一个帝国的,但是谷歌做到了。在性能调整后,谷歌把它们变成一个无可比拟的分布式计算平台,该平台能够支持大规模的搜 索和不断涌现的新兴应用。我们原本认为这些应用都是个人消费级别的,但是谷歌改变了这一切。现在商业世界也在使用它们,这就令这家搜索公司显得那么与众不 同。
  
  谷歌Web服务背后的IT架构对无数使用搜索引擎的用户来说也许并不是非常重要,但它是谷歌几百位致力于把全球信息组织起来,实现“随处可达,随时可用”目标的工程师们的最核心工作。这就需要一个在覆盖范围和野心上都与谷歌的商业愿景完全相符的IT蓝图作为支撑。
  
   谷歌的经理们一直对公司的IT策略话题保持沉默,他们厌恶谈及特定的厂商或者产品,当被问到他们的服务器和数据中心时,他们总是闭口不谈。但与几位谷歌 的IT领导一起呆了一天后,我们最终得以揭示该公司的IT是如何运作的,那可不仅仅是一个运行在无数服务器集群上的、表面看来非常简单的搜索引擎。在其简 单的外表下,蕴涵着许多内部研发软件、定制硬件、人工智能,以及对性能的执着追求和打破常规的人力管理模式。
  
  IT理念方面,谷歌对同行有一条建议:尽量避免那些人人都在使用的系统和软件,以自己的方式做事会更有独特的竞争优势。
  
   “企业文化决定了你的做事方式。”道格拉斯?美林(Douglas Merrill),这位谷歌工程副总裁和事实上的首席信息官(CIO) 指出,“到了我们这样的发展阶段,企业观念和文化非常与众不同,这也反过来鞭策我们必须要采用与众不同的方式来运行那些他人看来很常规的系统。”
  
   谷歌最大的IT优势在于它能建造出既富于性价比(并非廉价)又能承受极高负载的高性能系统。因此IT顾问史蒂芬?阿诺德(Stephen Arnold)指出,谷歌与竞争对手,如亚马逊网站(Amazon)、电子港湾公司(eBay)、微软公司(Microsoft,下称微软)和雅虎公司 (Yahoo,下称雅虎)等公司相比,具有更大的成本优势。谷歌程序员的效率比其他Web公司同行们高出50%~100%,原因是谷歌已经开发出了一整套 专用于支持大规模并行系统编程的定制软件库。据他估算,其他竞争公司可能要花上四倍的时间才能获得同等的效果。
  
  打造服务器
   谷歌究竟是怎样做到这点的呢?其中一个手段,美林认为,“是因为我们自己动手打造硬件。”谷歌并不制造计算机系统,但它根据自己的参数定制硬件,然后像 MTV的节目“靓车打造”(Pimp My Ride)那样自己安装和调整硬件系统。开源程序经理克里斯?迪博纳(Chris DiBona)评论道:“我们很善于购买商业服务器,并且改造他们为我们所用,最后把性能压榨和发挥到极致,以致有时候他们热得像要融化了似的。”
   这种亲手打造的方式,来源于谷歌从车库诞生时与生俱来的节俭风格,更与谷歌那超大型的系统规模息息相关,良好的习惯一直延续至今。据说谷歌在65个数据 中心拥有20万~45万台服务器—这个数目会有偏差(取决于你如何定义服务器和由谁来做这项统计)。但是,不变的是持续上升的趋势。
  谷歌不会 去讨论这些资产,因为它认为保密也是一种竞争优势。事实上,谷歌之所以喜欢开源软件也是因为它的私密性。“如果我们购买了软件许可或代码许可,人们只要对 号入座,就可以猜出谷歌的IT基础架构。”迪博纳分析说,“使用开源软件,就使我们多了一条把握自己命运的途径。”
  谷歌喜欢规模化的服务器运 行方式。当有成百上千台机器时,定制服务器的优势也会成倍增加,效果也会更趋明显。谷歌正在俄勒冈州哥伦比亚河边的达勒斯市建造一个占地30亩的数据中 心,在那儿它可以获得运算和降温需要的低价水力电力能源(参见边栏《谷歌数据中心自有一套》)。
  谷歌以“单元”(Cell)的形式组织这些运 行Linux操作系统的服务器,迪博纳把这种形式比喻成互联网服务的“磁盘驱动器”(但别和一直谣传的谷歌存储服务Gdrive混淆了,“并没有 Gdrive这回事。”一位谷歌女发言人明确表示。),公司的软件程序都驻扎在这些并不昂贵的电脑机箱里,由程序员决定它们的冗余工作量。这种由很多单元 组成的文件系统代替了商业存储设备;迪博纳表示谷歌这些单元设备更易于建造和维护,他还暗示他们能处理更大规模的数据。
  谷歌不会漏过对任何技 术细节的关注。多年来,公司的工程师就在研究微处理器的内部工作机制,随着谷歌规模的持续壮大,必然会用到特别定制和调节过的芯片。知名工程师路易斯?巴 罗索(Luiz Barroso)去年在一篇发表在工业杂志上的论文中证实,近年来谷歌的主要负荷都由单核设计的系统承担着。但许多服务器端的应用,如谷歌搜索索引服务, 所需的并行计算在单核芯片的指令级别上执行得并不好。
  曾在数据设备公司(Digital Equipment)和康柏公司(Compaq)当过芯片设计师的巴罗索认为,随着AMD公司、英特尔公司(Intel)、太阳计算机系统公司(Sun)开始制造多核芯片,必将会出现越来越多芯片级别的并行计算。
   谷歌也曾考虑过自己制造计算机芯片,但从业界潮流来看,这个冒险的举动似乎不是很必要。“微处理器的设计非常复杂而且成本昂贵,”运营高级副总裁乌尔 斯?霍尔茨勒(Urs Holzle)表示。谷歌宁愿与芯片制造商合作,让他们去理解自己的应用并设计适合的芯片。这是一种客户建议式的设计,其关注点在于总体吞吐量、效能,以 及耗电比,而不是看单线程的峰值性能。霍尔茨勒表示,“这也是最近多核CPU的设计潮流与未来方向。”
  
  裁缝般地定制软件
   为了能尽量压榨硬件性能,谷歌开发了相当数量的定制软件。创新产品主要包括用于简化处理和创建大规模数据集的编程模型MapReduce;用于存储和管 理大规模数据的系统BigTable;分析分布式运算环境中大规模数据集的解释编程语言Sawzall;用于数据密集型应用的分布式文件系统的“谷歌文件 系统”(Google File System);还有为处理分布式系统队列分组和任务调度的“谷歌工作队列”(Google Workqueue)。
   正是从Sawzall这些工具里体现出谷歌对计算效率的执著关注。并不是每家公司都能从底层去解决效率问题,但是对谷歌来说,为常规关系型数据库无法容 纳的大规模数据集专门设计一种编程语言是完全合理的。即使其他编程工具可以解决问题,谷歌的工程师们仍然会为了追求效率而另外开发一套定制方案。谷歌工程 师认为,Sawzall能与C++中的MapReduce相媲美,而且它更容易编写一些。
  谷歌对效率的关注使它不可能对标准Linux内核感 到满意;谷歌会根据自己的需要运行修改过的内核版本。通过调整Linux的底层性能,谷歌工程师们在提高了整体系统可靠性的基础上,还一并解决了数据损坏 和数据瓶颈等一系列棘手问题。对内核的修改也使谷歌的计算机集群系统因为通信效率的提高而运行得更快。
  当然,谷歌偶尔也会出现系统故障,情况一旦发生,无数的用户就会受到影响了。三年前一次持续30分钟的系统故障使20%的搜索流量受到影响。
   谷歌开发了自己的网站服务器却没有使用开源的Apache服务器,尽管它在网站服务器的市场占有率超过60%。迪博纳认为,谷歌的网站服务器可以运行在 更多数量的主机上,对谷歌站点上内容庞大又彼此互相依赖的应用程序来说,这种服务器的负载均衡能力远比Apache的能力更高。同时,在用标准公共网关接 口(CGI)访问数据库动态网页方面,谷歌服务器的编程难度要比Apache更高,但是最终运行速度却更快。“如果我们能够压榨出10%~20%的性能, 我们就可以节省出更多系统资源、电量和人力了。”迪博纳在总结中指出。
  谷歌还设计了自己的客户关系管理(CRM)系统用于支持自己基于竞价和点击的互联网广告收费业务。但对是否需要设计自己的工具,谷歌的态度也不是一成不变的。比如在财会软件上,它就使用了甲骨文公司(Oracle)的Financials软件。
  美林拿着一只叉子举例说明现成的产品也可以带来价值。但在有些场合现成的软件产品就不一定适用了。“我们的文化在各个层面对我们的运作都有深远影响,”他表示,“所以我们不想让购买所得的工具改变我们的工作方式和文化层面。”
  
  保持活泼
   谷歌没有透露它在IT上的开销。Susquehanna 金融集团(Susquehanna Financial Group)分析师玛丽安?沃尔克(Marianne Wolk)估计今年上半年谷歌在IT上的花费高达三亿美元,相当于在此期间谷歌全部收入的30%。而在过去几年间,谷歌把全部收入的50%花在了IT上。 现在,随着公司的发展,IT开销比例正在下降,其他领域如房地产业的投入正在增加。
  非正统的科研人员管理方式使谷歌没法和大多数科技公司一样 把研究和开发的预算分离开来。高级工程和研发副总裁阿兰?尤斯塔斯(Alan Eustace)解释说:“在许多大公司你会发现研究和工程是分离的。”但是把这两部分预算分离开来,他认为“就等于从制度上遏制了把各项工作变得更加有 趣的可能。”
  谷歌的IT是“去中心化”(Decentralized)的管理方式。公司没有CIO或首席技术官(CTO),但它拥有一大群高 级工程师和技术人员。这中间包括主管系统基础设施工程的副总裁比尔?库格伦(Bill Coughran),他负责掌管和支撑谷歌在线应用的大型分布式运算程序,而尤斯塔斯则负责产品的研发。谢尔盖?布林(Sergey Brin)的身份并不仅是谷歌的创始人之一,他的日常工作是技术总裁。美林在三年前作为信息系统高级主管加入谷歌,现在负责内部工程部门的管理和全球技术 支持。
  谷歌采用的是矩阵式管理系统,每位经理都有好几位直接汇报的上司,每位工程师也可以同时向几个人汇报。多数情况下,工程师们从共同工作 的项目领导人处获得指导和评价。但每隔三个月工程师们就可以自发调换项目,因此谷歌改变了传统意义上的项目运作和绩效考评模式。如同处理其他技术问题一 样,谷歌用人工智能和计算机自动化的方式来处理一些日常工作。“我们的目标是尽量自主运作,以免工作变得乏味。”美林表示,“没有人会喜欢乏味的工作,对 吗?”
  此外,谷歌的招聘跟踪系统能自动聚合应聘者的各种信息,为招聘经理提供候选人的工作简历,建议的面试问题,在招聘之后还会自动发送电子 邮件询问招聘方对应聘人选的意见。工作面试包括逻辑问题、编写代码、讨论软件架构,和其他任何可以使谷歌相信应聘者具有快速学习新技术能力的证明,因为谷 歌是不会让它的员工长时间只干一件事情的。
  许多小型和短期的项目意味着基于任务表的传统项目管理方式的软件不适用于谷歌。比如,他们的技术人 员都不擅于总结自己的时间分配计划。他们更擅长的是写下每日工作相关的简短介绍或是代码片断。这些内容会定期和小组领导提交的项目更新信息一起汇编到数据 库里,项目管理系统根据输入内容的主题,加上标签把它们转发给相关人员。美林认为,“这样的系统还算不上真正的人工智能。”但是,除了谷歌还有哪家公司会 这样管理员工呢?
  绩效考核也采用了类似的技术机制。谷歌的“Perf绩效”系统让经理们写电子邮件(当然还是先由电脑而非人工进行分析),邮 件描述了员工在项目中表现的优劣。同事们则会收到另一封来自系统的电子邮件要求他们对比该员工与其他谷歌员工。Perf系统自动分析所有反馈信息,对员工 对比结果进行评估,并把结果公开。这正是美林想要的效果,技术让工作关系变得更加透明和人性化。可以预见,虽然打开窗户的同时也会放进苍蝇,但美林表示凡 事总有缺憾。“飞速发展的同时,还必须保护我们的企业文化,”他说,“这能让我们保持清醒。”
  对谷歌的方式,有人持不同意见。2004年因兼并加入谷歌市场部门的某工作人员,就由于缺乏资源和支持而辞职。“从IT工程师角度看,谷歌的确是个了不起的地方,”这位前雇员说,“但是,从商业或市场角度看,它就未见得如人们想象的那么出色。”
   谷歌对市场的理解力,还远跟不上它的技术实力。除了搜索引擎和广告系统,谷歌大量的在线应用项目目前的作用还很有限。谷歌的Gmail服务面临着长期霸 主雅虎和微软免费电子邮件服务强有力的挑战。它的在线金融门户Google Finance系统也存在类似的问题。谷歌地图也远远落后于MapQuest和雅虎地图,位居第三。
  
  甄选企业文化
  谷 歌员工可以按照自己的需要和兴趣选择PC的操作系统,包括Linux、Mac OS和Windows。很多人使用公司自产的程序,如谷歌桌面(Google Desktop)、谷歌地图、购并的在线Writely 文字处理软件,以及最近研发的谷歌电子数据表(Google Spreadsheets)。在一般情况下,如果公司的某位员工需要某种特定软件,他不用费太多周折就可以通过公司内部网提出申请而获准使用。
  当被问及谷歌在使用哪些商业PC软件时,美林闪烁其辞。“重要的不是我们在每台桌面电脑上安装了什么程序,而是我们对安装了什么电脑程序所持的态度,”他含糊地表示,“谷歌的原则是自由选择永远优于简单控制。严格的集中化管理会妨碍创新。”
  接着,美林对其他公司的CIO制度略有非议,他认为这是老式公司才用的头衔。“大多数在我这个位置的人都在勉强控制局面,他们会说‘你只能购买这三样产品’。”美林解释说,“我会尽可能缩小控制范围,试着简化工作,把相关制约因素限制在我比较有把握的范围之内。
  在告诉别人做什么和阻止别人做什么之间,美林很清楚两者的区别。例如,他注意到有些金融服务机构禁止员工使用即时通信(IM)软件,因为他们就是这样诠释自己的规章制度。美林指出“这不是正确的方法”。
  在美林的观点中,正确的做法是:允许充分讨论,畅用数据,拒绝直觉,尽量自动化。
  
  集思广益
   去年工程副总裁亚当?伯斯沃斯(Adam Bosworth)在提到谷歌的文档排名算法(PageRank)时说,谷歌的搜索结果比别人更准确,是因为其得益于“大众智慧的力量”。[引自詹姆士? 苏罗维奇(James Surowiechi)所著《大众的智慧》,2004年由兰登书屋(Random House)出版。]公司创始人拉里?佩奇(Larry Page)和谢尔盖?布林(Sergey Brin)正是从PageRank开创了事业,PageRank通过分析网页上人工生成的链接结构来决定网页的相关重要性。对PageRank来说,越多 人链接到一个特定网页,这个网页很可能越重要。
  这样,人力和机器得到了完美分工:人类擅于内容评估,计算机则可轻松分析大规模数据集。通过嫁接集体的智慧与自动化处理,佩奇和布林建立了一家由人工智能驱动的公司。“人工智能是个了不起的工具,它可以帮助人们更好地做决定,”美林说,“但是它不适合做复杂的决定。”
   通过机器收集和提炼的集体智慧对谷歌非常重要。就像美林指出的那样,“集体比个体更聪明”。“这个见解也许已不像当初那样令人耳目一新,因为维基百科 (Wikipedia)和Digg.com已一再证明了这点。但是对于很多其他同类公司来说,对于这个观点的理解仍然有限。”美林解释说。
  但在谷歌,相关的例子比比皆是,比如公司选择新员工的方式。“这里没有人有权聘用任何人,”美林坚称,“聘用由公开的集体决定。是我们所有人聘用了所有其他人。”
  对集体智慧的坚持也体现在谷歌的午餐文化。谷歌为雇员提供免费午餐作为激励和提高效率的方式,但同时也是为了鼓励员工之间的互动。这是杯盘交错之间的交流。“如果你希望人们说话,希望人们投入,你会怎样做?”美林反问道,“你得给他们提供午餐。”
   关于企业内部公开讨论的方式,谷歌有一条口号:畅所欲言。“在其他地方私下讨论的东西在这里变得公开了。”美林说。(仿佛为了说明这一点,美林在我们拍 照时还脱掉T恤展示他的刺青。)“我们的决议都是公开讨论的结果。我们欢迎辩论。我们期待每个人的参与,渴望不同的观点。”美林这样说道。
  当然,凡事都有底线。美林也同意有些事情仍然需要保密。“用户数据的私密性对我们显然非常重要,所以我们对这类数据资料会严加看管。”他表示,“但是某些常规商业领域里的秘密我们反而认为并非真的那么需要保密。”常规商业领域?那就包括了99%的其他公司。
  谷歌目前面临的挑战就是保持其独特性—这恰恰也正是它的核心竞争力—同时它也坚持承担了组织全球信息的责任,使之随时随地可以被访问和利用,不受任何限制。可以想象,其他公司会密切关注和学习这家特立独行的企业的一举一动。
  
  (转载自CSDN.NET)
  (Aaron Ricadela 和Charles Babcock对本文亦有贡献)
 

你可能感兴趣的:(大规模系统架构)