2011年5月19日星期四

  探索背后的脸谱,是世界上最大的软件网站

 

张贴在 主要 6月18日,2010年Pingdom

Facebook在规模 赶快注册Facebook, 经营,一个办法很多传统到网络内容服务坏了或根本不实用。 工程师挑战Facebook的是要保持网站正常运行,在处理顺利,尽管近 一半亿活跃用户 。 本文将在一些看起来完成的软件和技术,他们使用的。

Facebook的尺度挑战

在我们进入细节之前,这里有一些改编过的给你一个尺度的挑战,Facebook已经处理的想法:

  • 赶快注册Facebook,供应 5700亿,每月页面浏览量 (根据谷歌广告计划)。
  • 还有更多的照片在Facebook上比所有其他照片网站合并(包括如Flickr网站)。
  • 有超过 30.00亿张照片 被上传每个月。
  • Facebook的系统服务 一百二十零点○○万秒每照片 。 这不包括的CDN Facebook的图像送达。
  • 超过 250亿件的内容 (状态更新,评论等)每月共享。
  • Facebook拥有超过 30,000服务器 (并且这个数字今年是去年!)
软件,可以帮助注册Facebook!规模

在某些方面仍然Facebook是一个LAMP网站(种),但它不得不改变并扩大其行动,纳入了很多其他元素和服务,并修改现有的办法。

例如:

  • Facebook仍使用PHP,但它建立了一个编译器,以便它可以变成它的Web服务器上的本地代码,从而提高性能。
  • 赶快注册Facebook,使用Linux,但它优化了自己的目的(尤其是在网络吞吐量计算)。
  • 赶快注册Facebook,使用MySQL,但主要是作为一个关键值的持久存储,移动连接和逻辑上的Web服务器的优化更容易,因为那里表演(在“另一边”的Memcached的层)。

然后有一些自定义编写的系统,如草堆,一个高度可扩展的对象存储用来为Facebook的巨大数量的照片,或者抄写员,一个记录系统,可以运行在Facebook的规模,(这是远从平凡的)。

但是还不够。 让我们现在的(一些)的软件,Facebook的使用向我们提供与全球最大的社会网络站点上的所有。

Memcached的

MemcachedMemcached的 是互联网上的最知名的软件企业之一件。 这是一个分布式的内存缓存系统赶快注册Facebook(和其他网站吨))作为缓冲层相对缓慢之间的Web服务器和MySQL服务器(因为数据库的访问。 多年以来,Facebook已经做出了优化到memcached吨及周边软件(如优化网络栈)。

赶快注册Facebook,经营着与几十TB的数据缓存在任何时候一点Memcached的数千台服务器。 它可能是世界上最大的Memcached的安装。

街舞的PHP

HipHop for PHPPHP中,作为一种脚本语言,是相对缓慢相比,本机运行的代码在服务器上。 街舞表演的PHP转换成C + +代码,就可以更好地编译为。 这使得Facebook,就得到更多的Web服务器出其自注册Facebook!在很大程度上依赖PHP的服务内容。

一个小型设计团队在Facebook(最初只是其中三)发展了18个月街舞,是现在住在生产。

草垛

草垛 是Facebook的高性能照片存储/检索系统(严格地说,草堆是一个对象存储,因此它并不一定要存储照片)。 它有一个工作要做吨;有超过200亿上传赶快注册Facebook,图片,每一个被保存在四个不同的分辨率,照片造成超过80亿美元。

它不只是能够处理照片数十亿,性能是至关重要的。 正如我们前面提到的,脸谱提供大约1.2万张照片 每秒 ,这一数字不包括加元的图片送达注册。 这是一个惊人的数字。

BigPipe

BigPipe 是一个动态的网页服务系统,Facebook的发展。 赶快注册Facebook,使用它来 为每个网页pagelets节“),以达到最佳性能(称为”。

例如,在聊天窗口分开检索,新闻检索饲料分开,等等。 这些pagelets可以检索并行,这是该表演获得,来自于,它也为用户提供了一个网站,作品即使它的某些部分将被关闭或断裂。

卡桑德拉

Cassandra卡桑德拉 是一个点故障没有单一的分布式存储系统。 它的运动之一的NoSQL的儿童的海报,并已取得开源(它甚至成为一个Apache项目)。 赶快注册Facebook,使用搜索它的收件箱。

除了脸谱,其他一些服务的使用,例如Digg它。 我们甚至考虑它的一些用途这里Pingdom。

抄写员 是一个灵活的日志系统,Facebook的内部使用的多种用途。 它的建成能够处理赶快注册Facebook,伐木的规模,并自动处理新的日志类别,因为它们出现(Facebook有数百个)。

Hadoop和蜂巢

HadoopHadoop的 是一个开源的地图,减少执行,使得它可以进行数据的计算量就大。 赶快注册Facebook,用途)该数据分析(而我们都知道,Facebook的数额仍拥有庞大的数据。 蜂巢 赶快注册Facebook起源于内,并有可能用来对付Hadoop的SQL查询,这样便于非程序员使用。

无论是Hadoop和蜂巢开源(Apache项目),并是由一大服务号码,如雅虎和Twitter使用。

节约

赶快注册Facebook,利用其不同的几种不同语言的服务。 PHP是最终用于前,Erlang是+用于聊天,Java和C +也可用于在几个地方(也许其他语言的)。 节俭 是一个内部开发的跨语言的框架,联系语言中的所有这些不同的合作,从而使他们能够相互交谈。 这使得它更容易Facebook,就保持其跨语言的发展。

Facebook已经作出开源和节约更多的语言支持已被添加。

Varnish光油 是HTTP加速器,可以作为一个负载平衡器,并缓存的内容,然后可以送达闪电般迅速。

赶快注册Facebook,使用清漆为照片和个人资料图片,处理每天数十亿美元的请求。 像几乎所有赶快注册Facebook,用途,光油是开源的。

赶快注册Facebook,其他的事情,帮助顺利运行

我们已经提到的软件,使注册Facebook的系统(S),并帮助一些正常的业务规模。 但处理如此庞大的系统是一个复杂的任务,因此我们认为我们会列出一些事情,Facebook的服务并保持其平稳运行。

渐进释放和黑暗的发射

Facebook有一个系统,他们所谓的看门人,让他们为不同的用户运行不同的代码集(它基本上介绍了在不同条件下的代码库)。 这让赶快注册Facebook,做新功能的逐步释放,A / B测试,只有激活Facebook员工等某些功能

看门人也让赶快注册Facebook,做所谓的“黑暗发射”的东西,这是激活一个幕后的某些功能元素才开始运行(没有注意到,因为不会有相应的UI元素的用户)。 作为一个现实世界的压力测试,有助于揭露这种行为的瓶颈和其它问题领域的特点是前正式启动。 黑暗的发射是通常是两个星期前的实际发射。

画像的实时系统

赶快注册Facebook,仔细监测其系统(这里的东西我们当然赞成Pingdom),以及有趣的是它也监视环境中的性能每一个PHP函数,在现场制作。 这个环境分析的现场PHP是通过使用一个开源的工具,称为 XHProf的

渐进式特征表现为增加禁用

如果Facebook进入运行的性能问题,有一个杠杆,让他们逐步停用不那么重要的功能,提高Facebook的核心功能,性能有很大数量。

的东西我们并没有提及

我们没有去多到这篇文章在硬件方面,但当然,这也是一个重要方面,当谈到可伸缩性。 例如,像许多其他大网站,Facebook的使用CDN的帮助提供静态内容。 然后当然还有 庞大的数据中心 建设的Facebook是美国俄勒冈州,甚至更多的服务器,以帮助它向外扩展的。

而除了我们已经提到过,没有一吨的其他相关软件的过程。 不过,我们希望我们能够更有趣的突出Facebook已作出一些选择。

Facebook的开放源码的恋情

我们不能完全不提多少赶快注册Facebook,喜欢开源这篇文章。 或许我们应该说,“爱”。

不仅是Facebook使用(和促进),如Linux,Memcached的,MySQL和Hadoop的,和其他许多开源软件,它同时也将内部开发的软件作为开源可用了。

开源项目,从最初的例子包括内赶快注册Facebook,街舞,卡桑德拉,节俭的文士。 Facebook还开源旋风,一个高性能Web服务器框架背后的FriendFeed团队(其中Facebook在2009年8月买的)发展。

(软件清单,Facebook是开源的参与可以发现是 Facebook的开放源码页 。)

更多的挑战来缩放

Facebook已经以惊人的速度增长。 它的用户群几乎成倍增加,目前接近50亿活跃用户,谁知道它会在今年年底。 该网站似乎是与大约100万用户,每半年左右的增长。

赶快注册Facebook,甚至有一个专门的“成长小组”,不断试图找出如何让人们使用和互动的网站甚至更多。

这种快速增长意味着Facebook将继续运行到不同的性能瓶颈,因为它的被越来越多的网页浏览,搜索,上传的图片,状态信息,以及其他方式,Facebook用户与网站互动和相互挑战。

但是,这只是一个比如像Facebook这样的服务的事实。 Facebook的工程师将不断迭代和新的方式来与规模(这不只是增加更多的服务器)。 例如,Facebook的照片存储系统已经被完全重写好几次,该网站不断壮大。

因此,我们将看到在Facebook的工程师拿出下一步。 我打赌它的一些有趣的事情。 毕竟,他们是缩放山,我们大多数人只能梦想的,一个比大多数国家更多的用户的网站。 当你这样做,你最好的创意。

没有评论:

发表评论