现在的位置: 首页 > 综合 > 正文

Google、Facebook等技术发展历程

2013年08月10日 ⁄ 综合 ⁄ 共 1534字 ⁄ 字号 评论关闭

互联网已经发展多年,其中不乏脱颖而出者,这些网站多数都已存在了接近10年或10年以上,在如此长时间的发展过程中,除了业务上面临的挑战,在技术上也面临了很多的挑战。我挑选了一些Alexa排名较前的网站排名截止到2012421日),看看它们在技术上是如何应对业务发展过程中的挑战的。

Google目前Alexa排名第1。它诞生于1997年,当时是一个研究性项目,每个月build一次索引,build出来的索引通过shardingshard by doc)的方式分散到多台服务器(Index Server)上,具体的网页数据同样通过sharding的方式分散到多台服务器(Doc Server)上,当用户提交请求时,通过前端的一台服务器将请求提交给Index Server获得打了分的倒排索引,然后从Doc Server提取具体的网页信息(例如网页标题、搜索关键词匹配的片段信息等),最终展现给用户。

随着索引的网页增加,这个结构可通过增加Index Server以及Doc Server来存储索引以及网页的数据,但仍然会面临其他很多方面的问题,于是在这之后的十多年的时间里,Google做了很多事情来改进上面的结构。

1999年,Google增加了一个Cache Cluster,用来Cache查询的索引结果和文档片段信息,同时将Index ServerDoc Server通过Replicate的方式变成了Cluster。这两个改造带来的好处是网站的响应速度、可支撑的访问量以及可用性(Availability)得到了提升。这个变化造成了成本的增加,Google在硬件方面的风格始终是不用昂贵的高端硬件,而是在软件层面来保证系统的可靠性及高性能,于是同年,Google开始采用自行设计的服务器来降低成本。2000年,Google开始自行设计DataCenter,采用了各种方法(例如采用其他的制冷方法来替代空调)来优化PUE(能源利用率),同时对自行设计的服务器也做了很多化。2001年,GoogleIndex的格式进行了修改,将所有的Index放入内存, 这次改造带来的好处是网站的响应速度以及可支撑的访问量得到了极大的提升。2003年,Google发表了文章Google Cluster Architecture,其Cluster结构组成为硬件LB+Index Cluster+Doc Cluster+大量廉价服务器(例如IDE硬盘、性价比高的CPU等),通过并行处理+sharding来保证在降低对硬件要求的同时,响应速度仍然很快。同年Google发表了关于Google文件系统的论文(GFS2000年就已经上线),这篇论文很大程度也体现了Google不用昂贵硬件的风格,通过GFS+大量廉价的服务器即可存储大量的数据。2004年,Google再次对Index的格式进行了修改,使得网站的响应速度继续提升。同年Google发表关于MapReduce的论文,通过MapReduce+大量廉价的服务器即可快速完成以前要使用昂贵小型机、中型机甚至是大型机才能完成的计算任务,而这显然对于Google快速地构建索引提供了很大的帮助。2006年,Google发表了关于BigTable的论文(2003年开始上线),使得海量数据的分析能够达到在线系统的要求了,这对于Google提升网站的响应速度起到了很大的帮助。

以上3篇论文彻底改变了业界对于海量数据的存储、分析和检索的方法(小道消息:Google内部已完成了GFSMapReduceBigTable的替换),也奠定了Google在业界的技术领导地位。

在一些场景中,Google也采用MySQL来存储数据。同样,

抱歉!评论已关闭.