`
sunxboy
  • 浏览: 2877624 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Google背后的IT架构策略揭秘(转)

阅读更多

Google是与众不同的。它的独特不仅仅表现于革新的思维和充满创意的应用 (比如那个大堂里的地球模型),更在于其有别常规的IT策略……

  加利福尼亚州山景城(Mountain View)Google公司(Google,下称Google)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与Google地球(Google Earth)相仿的世界地图,一个转动的地球上不停地闪动着五颜六色的光点,恍如罗马宫廷的千万烛灯,每一次闪动标志着地球的这个角落一名Google用户发起了一次新的搜索。

  这同时意味着Google又一次满足了人们对未知信息的好奇与渴望。

  Google是与众不同的。它的独特不仅仅表现于革新的思维和充满创意的应用 (比如那个大堂里的地球模型),更在于其有别常规的IT策略。从人们的常理来看,简单的硬件商品和免费软件是 无法构建出一个帝国的,但是Google做到了。在性能调整后,Google把它们变成一个无可比拟的分布式计算平台,该平台能够支持大规模的搜索和不断 涌现的新兴应用。我们原本认为这些应用都是个人消费级别的,但是Google改变了这一切。现在商业世界也在使用它们,这就令这家搜索公司显得那么与众不 同。

  GoogleWeb 服务背后的IT架构对无数使用搜索引擎的用户来说也许并不是非常重要,但它是Google几百位致力于把全球信息组织起来,实现“随处可达,随时可用”目标的工程师们的最核心工作。这就需要一个在覆盖范围和野心上都与Google的商业愿景完全相符的IT蓝图作为支撑。

  Google 的经理们一直对公司的IT策略话题保持沉默,他们厌恶谈及特定的厂商或者产品,当被问到他们的服务器和数据中心时,他们总是闭口不谈。但与几位 Google的IT领导一起呆了一天后,我们最终得以揭示该公司的IT是如何运作的,那可不仅仅是一个运行在无数服务器集群上的、表面看来非常简单的搜索引擎。在其简单的外表下,蕴涵着许多内部研发软件、定制硬件、人工智能,以及对性能的执着追求和打破常规的人力管理模式。

  IT理念方面,Google对同行有一条建议:尽量避免那些人人都在使用的系统和软件,以自己的方式做事会更有独特的竞争优势。

  “企业文化决定了你的做事方式。”道格拉斯"美林(Douglas Merrill),这位Google工程副总裁和事实上的首席信息官(CIO) 指出,“到了我们这样的发展阶段,企业观念和文化非常与众不同,这也反过来鞭策我们必须要采用与众不同的方式来运行那些他人看来很常规的系统。”

  Google 最大的IT优势在于它能建造出既富于性价比(并非廉价)又能承受极高负载的高性能系统。因此IT顾问史蒂芬"阿诺德(Stephen Arnold)指出,Google与竞争对手,如亚马逊网站(Amazon)、电子港湾公司(eBay)、微软公司(Microsoft,下称微软)和雅 虎公司 (Yahoo,下称雅虎)等公司相比,具有更大的成本优势。Google程序员的效率比其他Web公司同行们高出50%~100%,原因是Google已 经开发出了一整套专用于支持大规模并行系统编程的定制软件库。据他估算,其他竞争公司可能要花上四倍的时间才能获得同等的效果。

 

打造服务器

  Google 究竟是怎样做到这点的呢?其中一个手段,美林认为,“是因为我们自己动手打造硬件。”Google并不制造计算机系统,但它根据自己的参数定制硬件,然后像MTV的节目“靓车打造”(Pimp My Ride)那样自己安装和调整硬件系统。开源程序经理克里斯"迪博纳(Chris DiBona)评论道:“我们很善于购买商业服务器,并且改造他们为我们所用,最后把性能压榨和发挥到极致,以致有时候他们热得像要融化了似的。”

  这种亲手打造的方式,来源于Google从车库诞生时与生俱来的节俭风格,更与Google那超大型的系统规模 息息相关,良好的习惯一直延续至今。据说 Google在65个数据中心拥有20万~45万台服务器—这个数目会有偏差(取决于你如何定义服务器和由谁来做这项统计)。但是,不变的是持续上升的趋 势。

  Google不会去讨论这些资产,因为它认为保密也是一种竞争优势。事实上,Google之所以喜欢开源软件也是因为它的私密性。“如果我们购买了软件许可或代码许可,人们只要对号入座,就可以猜出Google的IT基础架构。”迪博纳分析说, “使用开源软件,就使我们多了一条把握自己命运的途径。”

  Google喜欢规模化的服务器运行方式。当有成百上千台机器时,定制服务器的优势也会成倍增加,效果也会更趋 明显。Google正在俄勒冈州哥伦比亚河边的达勒斯市建造一个占地30亩的数据中心,在那儿它可以获得运算和降温需要的低价水力电力能源(参见边栏 《Google数据中心自有一套》)。

  Google以“单元”(Cell)的形式组织这些运行 Linux操作系统的服务器,迪博纳把这种形式比喻成互联网服务的“磁盘驱动器”(但别和一直谣传的Google存储服务Gdrive混淆了,“并没有 Gdrive这回事。”一位Google女发言人明确表示。),公司的软件程序都驻扎在这些并不昂贵的电脑机箱里,由程序员决定它们的冗余工作量。这种由很多单元组成的文件系统代替了商业存储设备;迪博纳表示Google这些单元设备更易于建造和维护,他还暗示他们能处理更大规模的数据。

  Google 不会漏过对任何技术细节的关注。多年来,公司的工程师就在研究微处理器的内部工作机制,随着Google规模的持续壮大,必然会用到特别定制和调节过的芯 片。知名工程师路易斯"巴罗索(Luiz Barroso)去年在一篇发表在工业杂志上的论文中证实,近年来Google的主要负荷都由单核设计的系统承担着。但许多服务器端的应用,如 Google搜索索引服务,所需的并行计算在单核芯片的指令级别上执行得并不好。

  曾在数据设备公司(Digital Equipment)和康柏公司(Compaq)当过芯片设计师的巴罗索认为,随着AMD公司、英特尔公司(Intel)、太阳计算机系统公司(Sun)开始制造多核芯片,必将会出现越来越多芯片级别的并行计算。

  Google 也曾考虑过自己制造计算机芯片,但从业界潮流来看,这个冒险的举动似乎不是很必要。“微处理器的设计非常复杂而且成本昂贵,”运营高级副总裁乌尔斯"霍尔 茨勒(Urs Holzle)表示。Google宁愿与芯片制造商合作,让他们去理解自己的应用并设计适合的芯片。这是一种客户建议式的设计,其关注点在于总体吞吐量、 效能,以及耗电比,而不是看单线程的峰值性能。霍尔茨勒表示,“这也是最近多核CPU的设计潮流与未来方向。”

 

裁缝般地定制软件

  为了能尽量压榨硬件性能,Google开发了相当数量的定制软件。创新产品主要包括用于简化处理和创建大规模数据集的编程模型MapReduce;用于存储和 管理大规模数据的系统BigTable;分析分布式运算环境中大规模数据集的解释编程语言Sawzall;用于数据密集型应用的分布式文件系统的 “Google文件系统”(Google File System);还有为处理分布式系统队列分组和任务调度的“Google工作队列”(Google Workqueue)。

  正是从Sawzall这些工具里体现出Google对计算效率的执著关注。并不是每家公司都能从底层去解决效率 问题,但是对Google来说,为常规关系型数据库无法容纳的大规模数据集专门设计一种编程语言是完全合理的。即使其他编程工具可以解决问题, Google的工程师们仍然会为了追求效率而另外开发一套定制方案。Google工程师认为,Sawzall能与C++中的MapReduce相媲美,而 且它更容易编写一些。

  Google 对效率的关注使它不可能对标准Linux内核感到满意;Google会根据自己的需要运行修改过的内核版本。通过调整Linux的底层性能,Google 工程师们在提高了整体系统可靠性的基础上,还一并解决了数据损坏和数据瓶颈等一系列棘手问题。对内核的修改也使Google的计算机集群系统因为通信效率的提高而运行得更快。

  当然,Google偶尔也会出现系统故障,情况一旦发生,无数的用户就会受到影响了。三年前一次持续30分钟的系统故障使20%的搜索流量受到影响。

  Google 开发了自己的网站服务器却没有使用开源的Apache服务器,尽管它在网站服务器的市场占有率超过60%。迪博纳认为,Google的网站服务器可以运行在更多数量的主机上,对Google站点上内容庞大又彼此互相依赖的应用程序来说,这种服务器的负载均衡能力远比Apache的能力更高。同时,在用标准公共网关接口(CGI)访问数据库动态网页方面,Google服务器的编程难度要比 Apache更高,但是最终运行速度却更快。“如果我们能够压榨出10%~20%的性能,我们就可以节省出更多系统资源、电量和人力了。”迪博纳在总结中指出。

  Google还设计了自己的客户关系管理(CRM)系统用于支持自己基于竞价和点击的互联网广告收费业务。但对是否需要设计自己的工具,Google的态度也不是一成不变的。比如在财会软件上,它就使用了甲骨文公司(Oracle)的Financials软件。

  美林拿着一只叉子举例说明现成的产品也可以带来价值。但在有些场合现成的软件产品就不一定适用了。“我们的文化在各个层面对我们的运作都有深远影响,”他表示,“所以我们不想让购买所得的工具改变我们的工作方式和文化层面。”

 

 

分享到:
评论

相关推荐

    揭秘Google背后的IT架构策略

    【揭秘Google背后的IT架构策略】 Google的IT策略与传统企业截然不同,它提倡避免采用通用的系统和软件,主张创新和个性化,以此构建独特的竞争优势。Google的核心竞争力在于其与众不同的IT架构,它将简单的硬件和...

    Google背后的分布式计算架构策略

    Google的分布式计算架构策略是其技术基石,支撑了其全球范围内的大规模搜索和各种创新应用。这个架构的核心理念是构建高性能、高性价比且能够处理极高负载的系统,从而提供无与伦比的服务。 首先,Google采取了一种...

    34张史上最全IT架构师技术知识图谱,it基础架构图,Java

    【标题】中的“34张史上最全IT架构师技术知识图谱”指的是一个全面的、包含34个关键领域的IT架构师技术体系,这可能是34份不同的图表或专题,涵盖了IT架构设计、管理和实施的核心知识。这些图谱旨在帮助学习者系统地...

    IT架构师技术知识图谱

    云计算技术如AWS、Azure、Google Cloud等为IT架构提供了弹性、可扩展的基础设施。IT架构师需要熟悉云服务的使用,包括计算、存储、数据库、网络等,并能设计出适合云端的架构,优化成本,保证系统的高可用性。 综上...

    GoogleAnalytics(谷歌分析)架构与原理.pdf

    Google Analytics 架构与原理 Google Analytics 是 Google 的一款免费的网站分析服务,提供了丰富详尽的图表式报告,可以对网站的访问趋势进行分析。Google Analytics 的架构主要包括跟踪代码、数据采集、数据处理...

    谷歌Chrome组策略模板

    总之,Chrome组策略模板是企业IT管理员的重要工具,它提供了对Chrome浏览器的精细控制,有助于维护网络环境的安全和一致性。正确使用该模板,可以显著提升工作效率,降低安全风险,同时还可以优化用户体验。对于大型...

    34张史上最全IT架构师技术知识图谱V2

    IT架构师是信息技术领域中的关键角色,他们负责设计和实施复杂的系统架构,以满足业务需求并确保系统的稳定性和可扩展性。以下是一些基于提供的文件名所体现的IT架构师应掌握的关键技术知识: 1. **软件发布流程**...

    IT架构师技术知识(截图)

    IT架构师技术知识是IT行业中一个至关重要的领域,它涵盖了软件设计、系统集成、网络配置、数据管理等多个方面的内容。这个压缩包文件包含了34张史上最全的IT架构师技术知识图谱,对于想要深入理解和提升自己在IT架构...

    谷歌云计算架构详解.pdf

    谷歌云计算架构是一个高度复杂的系统,主要由以下几个关键技术组件构成: 1. Google的网络架构:它包括外部网络(Exterior Network)和内部网络(Interior Network)。内部网络用于Google自己的数据中心之间的通信...

    史上最全IT架构师技术知识图谱(34张)

    1. **系统架构**:IT架构师需要理解并掌握多种系统架构模型,如微服务架构、服务导向架构(SOA)、事件驱动架构(EDA)等,这些架构模式在现代企业中各有应用,可以根据业务需求灵活选择。 2. **分布式系统**:在...

    Google的网络架构

    ### Google的网络架构 #### 一、概述与背景 Google作为全球互联网行业的领军者,在构建高性能、高可扩展性基础设施方面一直处于领先地位。Google的核心产品和服务能够稳定运行在全球数百万用户面前,这得益于其...

    Google架构.rar

    【Google架构】是互联网巨头Google的核心技术体系,它支撑着全球范围内的搜索、广告、邮件、地图等众多服务。Google的架构设计体现了高效、可扩展和高可用性的原则,是现代大规模分布式系统的典范。以下是对Google...

    IT基础架构规划设计方案.doc

    IT基础架构规划设计方案是企业在信息化建设中至关重要的一步,它涉及到企业的核心系统、数据安全以及工作效率等多个方面。本文将详细解析方案中的关键知识点。 1. 项目建设目标 - **总体目标**:通常是为了提升...

    Google-BeyondProd安全架构详解.pdf

    由于文档内容部分缺失,以及为了满足1000字的要求,我将基于提供的内容和已知的IT知识进行展开,尽量详细地阐述Google BeyondProd安全架构的相关知识点。 标题“Google-BeyondProd安全架构详解.pdf”表明文档将详细...

    下一代企业级IT架构管理体系.docx

    下一代企业级IT架构管理体系是当前数字化转型背景下,企业应对互联网冲击和业务压力的关键。随着大数据、云计算等新技术的广泛应用,企业IT架构正经历从传统模式向现代化架构的转变,以更好地适应新金融、新零售、新...

    Google架构介绍

    Google 架构介绍 Google 架构是 Google 公司的基础组织架构,旨在提供高性能和高伸缩性的基础设施来支持 Google 产品的运行。该架构主要由三层组成:产品层、分布式系统基础组织层和计算平台层。 产品层包括 ...

    谷歌官方架构组件demo

    【谷歌官方架构组件demo】是谷歌为开发者提供的一套用于构建高效、健壮且易于测试的Android应用的框架。这套组件主要包括MVVM(Model-View-ViewModel)架构模式中的几个关键部分,如ViewModel、LiveData以及Room...

    google云计算体系架构.ppt

    google云计算体系架构

    谷歌云计算架构详解.docx

    谷歌云计算架构详解docx,提供“谷歌云计算架构详解”免费资料下载,主要包括外部网络系统介绍、内部网络架构介绍、大规模IDC部署战略、自己设计的服务器机架架构、操作系统与云计算文件系统GFS/GFSII、并行计算架构...

    Google安全架构分析.pdf

    本文将从云服务面临的安全威胁、安全架构的演进、Google生产环境安全、Google容器纵深防御体系、分布式系统安全、密钥体系、Google租户安全体系架构以及可信架构等方面进行详细分析。 云服务面临的安全威胁主要可以...

Global site tag (gtag.js) - Google Analytics