揭秘全球最大网站facebook背后应用软件

author author     2022-08-29     534

关键词:




2010年6月,Google公布全球Top 1000网站。Facebook独占鳌头。


以Facebook现在的经营规模,诸多传统服务器的技术均将崩溃或根本无法支撑。那么面对5亿的活跃用户,Facebook的工程师们又将如何让网站平稳运转呢?这篇文章将展示Facebook的工程师完成这个艰巨任务所用到的一系列软件。

Facebook级别规模的挑战

在我们深入细节之前,先了解一组Facebook不得不面对数据,你就可以想象这种规模。

· Facebook每月的PV量:630,000,000,000 (6千3百亿)

· Facebook上的图片数量超过其他图片网站的总和(包括诸如Flickr这样的图片网站)

· 每个月有超过30亿的图片上传到Facebook

· Facebook系统每秒可以处理120万张图片。这还不包括Facebook的CDN处理的图片。

· 每月处理超过250亿的信息内容(包括用户状态更新,评论等)

· Facebook的服务器数量超过3万台(此数据为2009年的数据)

Facebook所用的软件

从某些方面来说,Facebook还是属于LAMP类型网站,但是,为了配合其他大量的组件和服务,Facebook对已有的方法,已经做了必要的改变、拓展和修改。

比如:

· Facebook依然使用PHP,但Facebook已重建新的编译器,以满足在其Web服务器上加载本地代码,从而提升性能;

· Facebook使用Linux系统,但为了自身目的,也已做了必要的优化。(尤其是在网络吞吐量方面);

· Facebook使用MySQL,但也对其做优化。

还有定制的系统,比如, Haystack — 高度可扩展的对象存储,用来处理Facebook的庞大的图片;Scribe — Facebook的日志系统。

下面展现给大家的是,全球最大的社交网站Facebook所使用到的软件。

Memcached 技术分享

Memcached是一款相当有名的软件。它是分布式内存缓存系统。Facebook(还有大量的网站)用它作为Web服务器和MySQL服务器之间的缓存层。经过多年,Facebook已在Memcached和其相关软件(比如,网络栈)上做了大量优化工作。

Facebook运行着成千上万的Memcached服务器,借以及时处理TB级的缓存数据。可以这样说,Facebook拥有全球最大的Memcached设备。

HipHop for PHP 技术分享

和运行在本地服务器上代码相比,PHP的运行速度相对较慢。HipHop把PHP代码转换成C++代码,提高编译时的性能。因为Facebook很依赖PHP来处理信息,有了HipHop,Facebook在Web服务器方面更是如虎添翼。

HipHop诞生过程:在Facebook,一小组工程师(最初是3位)用了18个月研发而成。

Haystack 技术分享

Haystack是Facebook高性能的图片存储/检索系统。(严格来说,Haystack是一对象存储,所以它不一定要存储图 片。)Haystack的工作量超大。Facebook上有超过2百亿张图片,每张图片以四种不同分辨率保存,所以,Facebook有超过8百亿张图 片。

Haystack的作用不单是处理大量的图片,它的性能才是亮点。我们在前面已提到,Facebook每秒大概处理120万张图片,这个数据并不包括其CDN处理的图片数。这可是个惊人的数据!!!

BigPipe 技术分享

BigPipe是Facebook开发的动态网页处理系统。为了达到最优,Facebook用它来处理每个网页的分块(也称“Pagelets”)。

比如,聊天窗口是独立检索的,新闻源也是独立检索的。这些Pagelets是可以并发检索,性能也随之提高。如此,即使网站的某部分停用或崩溃后,用户依然可以使用。

Cassandra 技术分享

Cassandra是一个没有单点故障的分布式存储系统。它是前NoSQL运动的成员之一,现已开源(已加入Apache工程)。Facebook用它来做邮箱搜索。

除了Facebook之外,Cassandra也适用于很多其他服务,比如Digg。

Scribe 技术分享

Scribe是个灵活多变的日志系统,Facebook把它用于多种内部用途。Scribe用途:处理Facebook级别日志,一旦有新的日志分类生成,Scribe将自动处理。(Facebook有上百个日志分类)。

Hadoop and Hive技术分享

Hadoop是款开源Map/Reduce框架,它可以轻松处理海量数据。Facebook用它来做数据分析。(前面就说到了,Facebook的数据量 是超海量的。)Hive起源于Facebook,Hive可以使用SQL查询,让非程序员比较容易使用Hadoop。(注1: Hive是是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为 MapReduce任务进行运行。 )

Thrift

Facebook在其不同的服务中,使用了不同的语言。比如: PHP用在前端,Erlang用于聊天系统,Java和C++用于其它地方,等等。Thrift是内部开发的跨语言的框架,把不同的语言绑定在一起,使之 可以相互“交流”。这就让Facebook的跨语言开发,变得比较轻松。

Facebook已把Thrift开源,Thrift支持的语言种类将更多。

Varnish 技术分享

Varnish是一个HTTP加速器,担当负载均衡角色,同时也用于快速处理缓存内容。

Facebook用Varnish处理图片和用户照片,每天都要处理十亿级的请求。和Facebook其他的应用应用一样,Varnish也是开源的。

Facebook可以平稳运行,还得利于其他方面

虽然上面已经提到了一些构成Facebook系统的软件,但是处理如此庞大的系统,本身就是一项复杂的任务。所以,下面还将列出使Facebook能平稳运行的一些东西。

逐步发布&暗启动

Facebook有一个系统,他们称之为“门卫”。该系统可以针对不同种类的用户运行不同的代码。(它简单介绍了代码库中的不同条件。)该系统让Facebook逐步发布新特性、A/B测试、激活仅针对Facebook员工的特性 等等。

门卫系统也让Facebook做些“暗启动”的事情。比如,在某一特性上线之前,可以激活该特性背后的元件。另外,它还可以做模拟压力测试,发现瓶颈和潜在的问题。默默启动一般都是在正式启动之前的2周完成。

实时系统的简介

Facebook会仔细监控自身系统,有趣的是,它还监控每个PHP函数在实时生产环境下的性能。这一实时PHP环境监控是通过一个叫XHProf的开源工具完成的。

逐步禁用某些特性,借以提高性能

如果Facebook遇到性能问题,Facebook有大量的途径来逐步禁用不很重要的特性,以提高其核心特性性能。

尚未提到的东西

虽然这里无法过多深入硬件方面,但硬件绝对是Facebook能达到空前规模的重要因素。比如,和其他大型网站一样,Facebook也用CDN来处理静态内容。Facebook还在美国西部的俄勒冈州建有一超大的数据中心,可以随时增加服务器。

当然了,除了前面已经提到的,还有其他大量的软件没有说到。但是,希望能突出其中非常有特色的。

Facebook和开源之间的“恋情”

Facebook和开源之间联系,此文不能不提,虽不能说Facebook是多么地钟爱开源,但至少可以这样说,Facebook是“爱”着开源的。

Facebook不仅使用(也捐赠)开源软件,比如,Linux、Memcached、MySQL、Hadoop等等,它还内部开发不少软件,并且也将之开源。

Facebook开发的开源工程,包括HipHop、Cassandra、Thrift和Scribe。另外,Facebook也把Tornado开源 了。Tornado是一个高性能的Web服务器框架,由FriendFeed幕后团队开发而成。(2009年8月,Facebook收购 FriendFeed。)

(Facebook所用到的开源软件,可以在Facebook的开源页面找到。)

面临更多的大规模挑战

Facebook以一种令人难以置信的速度成长。它的用户群几乎是成倍增加,活跃用户数量现已接近5亿。而且,谁都无法预测今年底,活跃用户量会到多少。

Facebook甚至成立了一个专门的“成长小组”,该小组不断思考如何让人们使用facebook并融入到facebook中。

这一快速成长,意味着Facebook将遇到不同的性能瓶颈。Facebook会面临来这如下方面的挑战:PV、搜索、上传的图片和状态消息,用户之间的交互和用户和Facebook之间的交互带来的挑战。

这也是Facebook面对的事实。Facebook的工程师们将继续寻求新方法来扩展(这不只是增加服务器的问题了)。比如,随着网站成长,其图片存储系统已经多次完全重写。

所以,我们将看到Facebook的工程师们奔向下一个“山头”。我们相信他们不会辜负众望。毕竟,他们正跨越山头,那个我们大多数人仅能向往的山头;他们正扩展网站,那个用户来自全球各地的网站。当你实现那个里程碑时,你将彪炳史册。

数据来源:Facebook工程师们的报告和博客。

 


本文出自 “李世龙” 博客,谢绝转载!

揭秘全球首次互联网8k直播背后的技术实现

3月28日,云栖大会·深圳峰会现场,阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案。这是全球发布的首个8K视频云解决方案,也是全球首次8K互联网视频直播。舞台的屏幕上显示了从1300公里以外的阿里巴巴杭州园... 查看详情

揭秘lol背后的it基础架构丨基础设施即代码

...nFabric用户案例系列文章,一起发现TF的更多应用场景。“揭秘LOL”系列的主人公是TungstenFabric用户RiotGames游戏公司,作为LOL《英雄联盟》的开发和运营商,RiotGames面临全球范围复杂部署的挑战,让我们一起揭秘LOL背后的“英雄们... 查看详情

独家|揭秘2021双11背后的数据库硬核科技

简介:今年双11,阿里云数据库技术有什么不一样?2021年,是阿里巴巴首个100%云上双11双11峰值计算成本相比去年下降50%作为全球规模最大的数字工程之一双11无疑是对阿里技术人的“大考”在又一次技术“严考... 查看详情

揭秘lol背后的it基础设施丨关键角色“调度”

...nFabric用户案例系列文章,一起发现TF的更多应用场景。“揭秘LOL”系列的主人公是TungstenFabric用户RiotGames游戏公司,作为LOL《英雄联盟》的开发和运营商,RiotGames面临全球范围复杂部署的挑战,让我们一起揭秘LOL背后的“英雄们... 查看详情

揭秘lol背后的it基础架构丨产品而非服务

...nFabric用户案例系列文章,一起发现TF的更多应用场景。“揭秘LOL”系列的主人公是TungstenFabric用户RiotGames游戏公司,作为LOL《英雄联盟》的开发和运营商,RiotGames面临全球范围复杂部署的挑战,让我们一起揭秘LOL背后的“英雄们... 查看详情

苹果用facebook登录tiktok无法授权怎么办?

...地创建短视频,让每个人都能成为自媒体短视频创作者。Facebook的创办人是马克·扎克伯格(MarkZuckerberg),他是哈佛大学的学生。最初,网站的注册仅限于哈佛学院的学生。最终,在全球范围内有一个大学后缀电子邮箱的人,如... 查看详情

揭秘lol背后的it基础架构丨开发者“打野”工具能做什么?

...nFabric用户案例系列文章,一起发现TF的更多应用场景。“揭秘LOL”系列的主人公是TungstenFabric用户RiotGames游戏公司,作为LOL《英雄联盟》的开发和运营商,RiotGames面临全球范围复杂部署的挑战,让我们一起揭秘LOL背后的“英雄们... 查看详情

游戏还是陷阱?揭秘当下最火热的区块链游戏背后

近日一款区块链游戏Mariana(马里亚纳)正在风靡网络。该游戏自10月上线公测至今,共累积了近100万个USD,“奖池”折合人币200余万元,累计交易额更是超过了600万人民币。网络上也开始出现大量的文章分析,并且还有愈演愈烈... 查看详情

揭秘几种网站被k情况以及背后原因分析

做网站的朋友都希望自己的网站能够获得好的排名,来提高品牌的曝光度,更好的做产品营销。但是有的操作可能会导致网站降权甚至被K,究竟被K的背后原因是什么呢?小编将会根据不同情况为大家逐一揭晓、解析。网站为什么... 查看详情

Facebook iOS 应用中实现的“...查看更多”效果背后的概念是啥?

】FacebookiOS应用中实现的“...查看更多”效果背后的概念是啥?【英文标题】:Whatistheconceptbehindthe"...Seemore"effectimplementedinFacebookiOSapp?FacebookiOS应用中实现的“...查看更多”效果背后的概念是什么?【发布时间】:2014-01-310... 查看详情

揭秘.netcore剪裁器背后的技术

十天前,我发布了对.NETCore程序进行瘦身的开源软件Zack.DotNetTrimmer,与.NETCore内置的剪裁器相比,Zack.DotNetTrimmer不仅对程序的剪裁效果更好,而且还支持WPF、WinForm程序。      很多朋友对于这个开源项目的原理... 查看详情

facebook遭遇有史以来全球最大宕机

上面这个公号「涩郎」,是我的一个备用号,为了防止万一哪天大号失联,平时一周我也会发三篇左右的我的思考,读书笔记,认知感悟等文章,带领大家一起探索精神与财务自由之路。大家好,我是... 查看详情

揭秘.netcore剪裁器背后的技术(代码片段)

十天前,我发布了对.NETCore程序进行瘦身的开源软件Zack.DotNetTrimmer,与.NETCore内置的剪裁器相比,Zack.DotNetTrimmer不仅对程序的剪裁效果更好,而且还支持WPF、WinForm程序。很多朋友对于这个开源项目的原理很感兴趣,因此我将通过... 查看详情

字节跳动背后的音视频技术揭秘

在过去的一年中,我们可以看到多媒体特别是音视频技术的能力在严峻的挑战下,为各行各业带来了巨大的变化。疫情过后,又会有哪些多媒体新技术、新实践呈现在大众的视野当中?为行业的发展与应用带来哪... 查看详情

揭秘|双11逆天记录背后的数据库技术革新

每一个数字背后都需要强大的技术支撑Higher,Faster,Smarter是我们不变的追求技术无边界创新无止境 查看详情

聊天网站背后的想法

...聊天网站背后的基本思想有疑问。在聊天网站,如Omegle或Facebook的聊天中,两个人如何互相交谈?他们自己计算机上的套接字是否直接相互连接,或者...家伙A向Web服务器发送消息,服务器将此消息发 查看详情

facebook谷歌等一度全球死机逾7小时后服务陆续恢复正常

Facebook(fb)及旗下多个社交平台,包括WhatsApp和Instagram于周一(10月4日)一度死机,全球多地用户无法透过网站或手机应用程式登入或收发讯息。相隔7小时左右,Fb与WhatsApp及IG陆续回复正常。根据专门报告网络服务失灵的D... 查看详情

揭秘百万人围观的facebook视频直播

揭秘百万人围观的Facebook视频直播作者/AbhishekMathur现任Facebook组技术PM,负责Facebook的视频和直播基础设施。曾任微软的首席项目经理和和开发经理,负责AzureActive活动目录的开发。几个月前,我们开始推出FacebookMentions的Live功能,... 查看详情