互联网的发展历程可能很多朋友比我还要了解,随着互联网从当初的起步初始阶段,发展到今天百姓的衣食住行都离不开的程度,互联网的发展走过了很多技术上的艰辛和坎坷。
它的痛你不懂全球知名互联网公司那点事
在互联网技术和互联网信息迅速膨胀和飞速发展的当今,越来越多的互联网公司脱颖而出,这些企业有的是新兴的初创企业,有的是IT战场上的“老兵”了,在信息爆炸的今天,它们都在为互联网的发展做着贡献。
Alexa排名是衡量一家互联网企业综合实力方面最权威的排名,它根据网站的业绩、访问、未来发展、用户体验等等诸多方面来综合评比,从而对众多互联网公司进行排序,空口无凭,我们本期就以Alexa的排名作为依据,来看看全球最受欢迎的几家互联网企业,他们从建立初期到发展壮大在技术和市场等诸多方面的发展历程。
Google目前Alexa排名第1,成立于年的谷歌,最初的成立初衷只是几个大学生的一个研究性项目,build出来的索引通过sharding的方式分散到多台服务器上,具体的网页数据同样通过sharding的方式分散到多台服务器上,当用户提交请求时,通过前端的一台服务器将请求提交给IndexServer获得打了分的倒排索引,然后从DocServer提取具体的网页信息最终展现给用户。
可能就是当初看似“单纯”的初衷,才给了谷歌日后在技术创新方面无限的“遐想”,在年Google增加了一个CacheCluster,用来Cache查询的索引结果和文档片段信息,同时将IndexServer和DocServer通过Replicate的方式变成了Cluster。这两个改造带来的好处是网站的响应速度、可支撑的访问量以及可用性得到了提升。
这个变化造成了成本的增加,Google在硬件方面的风格始终是不用昂贵的高端硬件,而是在软件层面来保证系统的可靠性及高性能。年,Google开始自行设计DataCenter,采用了各种方法来优化PUE,同时对自行设计的服务器也做了很多变化。年,Google再次对Index的格式进行了修改,使得网站的响应速度继续提升。
年,Google将build索引的时间缩短到分钟级,当新网页出现后,几分钟后即可在Google搜索到,同时将IndexCluster通过ProtocolBuffers对外提供服务,以供Google各种搜索使用,除了IndexCluster提供的服务外,还有很多其他的服务,例如广告、词法检查等。Google的一次搜索大概需要调用内部50个以上的Service,Service主要用C++或Java来编写。从谷歌的技术发展历程我们不难看出,技术的延展性以及注重应用方面的可伸缩性是谷歌技术创新的关键,也是成就谷歌今日辉煌的重中之重。
这家虽然年轻,但是人气很旺的初创企业Facebook,虽然企业成立时间并不长,但是通过自身对于技术的孜孜追求,使得Facebook在国际互联网行业占有很高的市场份额。
作为改造的第一步,Facebook首先在LAMP结构中增加了Memcached,用来缓存各种数据,从而大幅度提升系统的响应时间以及可支撑的访问量,之后又增加了Services层,将NewsFeed、Search等较通用的功能作为Service提供给前端的PHP系统使用。
大量使用Memcached以及访问量的不断上涨,导致访问Memcached的网络流量太大,交换机无法支撑,Facebook通过改造采用UDP的方式来访问Memcached,以降低单连接上的网络流量。
PHP作为脚本语言,优势是开发简单、易上手,劣势是需要消耗较多的CPU和内存。当Facebook的访问量增长到了一定规模后,这个劣势就比较突出了,于是从年起,Facebook就尝试多种方法来解决这个问题,最后诞生于FacebookHackathon的HipHop产品成功地脱颖而出。
年,Facebook研发了BigPipe,借助此系统,Facebook成功让网站的速度提升了两倍。随着Facebook访问量的上涨,收集众多服务器上的执行日志也开始面临挑战,于是Facebook研发了Scribe来解决此问题。
发展之初的Facebook采用了高端的存储设备来存图片,随着图片不断增加,成本也大幅提高,于是年Facebook开发了Haystack来存储图片。Haystack可采用廉价的PCServer进行存储,大幅度降低了成本。
Facebook除了使用MySQL存储数据外,近几年也开始摸索采用新的方式。在年Facebook开发了Cassandra,在MessageInboxSearch中作为新的存储方式。
从年开始,Facebook尝试自行设计DataCenter以及服务器,以降低其运行成本,并对外开放了其构建的PUE仅1.07的DataCenter的相关技术。Facebook在技术方面的基本原则是:“在能用开源产品的情况下就用开源,根据情况对其进行优化并反馈给社区”。
Twitter目前Alexa排名第8。在年诞生之时是采用RubyOnRails+MySQL构建的,年增加了Memcached作为Cache层,以提升响应速度。基于RubyonRails让Twitter享受到了快速的开发能力,但随着访问量的增长,其对于CPU和内存的消耗也让Twitter痛苦不堪,于是Twitter做了不少改造和努力,例如编写了一个优化版的RubyGC。
Twitter的数据存储一直采用MySQL,发展过程中出现的小插曲是,当Facebook开源了Cassandra时,Twitter原本计划使用,但最终还是放弃,仍然保持了使用MySQL,Twitter的MySQL版本已开源。
eBay
年,eBay诞生,当时采用CGI编写,数据库采用的是GDBM,最多只能支撑5万件在线商品。年,eBay将操作系统从FreeBSD迁移到WindowsNT,另外将数据库从GDBM迁移为Oracle。
年,eBay将前端系统改造为Cluster,采用Resonate作为负载均衡,后端的Oracle机器升级为SunE小型机,同年给数据库增加了一台机器作为备库,提升可用性。前端机器随着访问量不断增加还可以应付,但数据库设备在年11月时已经达到了瓶颈,于是在11月公司开始将数据库按业务拆分为多个库。
年,企业将整个网站迁移为用Java构建,在这个阶段,做了DAL框架来屏蔽数据库分库分表带来的影响,同时还设计了一个开发框架以供开发人员更好地上手进行功能开发。从eBay的整个发展过程来看,技术改造主要围绕在可伸缩性和可用性两点。
编辑的话
从上述几家全球知名的国际互联网公司的技术发展经历我们不难分析出,对于技术革新的不断追求,以及技术应用延伸性方面的不断探索,是这些互联网公司成功的重要砝码,同时根据用户需求不断的提升,简化用户端的操作,也是提升用户认可度的保证,这些是很值得现在新兴的互联网初创企业学习的。
云南白癜风正规医院北京治疗白癜风到哪个医院好