Casa > Q > Qual É A Arquitetura Do Facebook?

Qual é a arquitetura do Facebook?

A arquitetura atual do Facebook's é:
ul>>li>Web front-end escrito em PHP. Facebook's HipHop Compiler [1] depois converte-o para C++ e compila-o usando g++, fornecendo assim uma camada de execução de templates de alta performance e lógica Web. Por causa das limitações de confiar inteiramente na compilação estática, Facebook's começou a trabalhar em um Intérprete HipHop [2] assim como em uma Máquina Virtual HipHop que traduz o código PHP para o HipHop ByteCode [3].Lógica empresarial é exposta como serviços usando Thrift [4]. Alguns desses serviços são implementados em PHP, C++ ou Java, dependendo dos requisitos do serviço (algumas outras linguagens são provavelmente usadas...)>li>Serviços implementados em Java don'não use qualquer servidor de aplicação empresarial usual, mas use o Facebook's servidor de aplicação personalizado. A princípio isto pode parecer como uma roda reinventada, mas como estes serviços são expostos e consumidos apenas (ou principalmente) usando Thrift, o overhead do Tomcat, ou mesmo Jetty, foi provavelmente muito alto, sem nenhum valor agregado significativo para a sua necessidade.Persistence é feito usando MySQL, Memcached [5], Hadoop's HBase [6]. Memcached é usado como cache para MySQL, assim como cache de propósito geral. O processamento off-line é feito usando Hadoop e Hive. Dados como log, cliques e trânsito de feeds usando Scribe [7] e são agregados e armazenados em HDFS usando Scribe-HDFS [8], permitindo assim uma análise estendida usando MapReduceBigPipe [9] é a sua tecnologia personalizada para acelerar a renderização de páginas usando uma lógica de pipeliningVarnish Cache [10] é usado para proxy HTTP. Eles'preferiram-no por seu alto desempenho e eficiência [11].>li>li>li> O armazenamento dos bilhões de fotos postadas pelos usuários é feito pelo Haystack, uma solução de armazenamento ad-hoc desenvolvida pelo Facebook que traz otimizações de baixo nível e escreve apenas anexos [12].li>li>Facebook Messages está usando sua própria arquitetura que é notavelmente baseada em fragmentação de infraestrutura e gerenciamento dinâmico de clusters. A lógica e persistência do negócio é encapsulada nos chamados 'Cell'. Cada Célula lida com uma parte dos usuários; novas Células podem ser adicionadas à medida que a popularidade cresce [13]. A persistência é alcançada usando o HBase [14].>li>Facebook Messages' o motor de busca é construído com um índice invertido armazenado no HBase [15]li>li>Facebook Search Engine' os detalhes da implementação do HBase são desconhecidos até onde eu seili>li> A busca typeahead usa uma lógica de armazenamento e recuperação personalizada [16]li>li>Chat é baseado em um servidor Epoll desenvolvido em Erlang e acessado usando Thrift [17]li>li>They'construiu um sistema automatizado que responde aos alertas de monitoramento lançando o fluxo de trabalho de reparo apropriado, ou escalando para humanos se a falta de energia não pudesse ser superada [18].

sobre os recursos provisionados para cada um desses componentes, algumas informações e números são conhecidos:

>ul>>li>Facebook estima-se possuir mais de 60.000 servidores [18]. Seu recente datacenter em Prineville, Oregon é baseado em hardware inteiramente auto-desenhado [19] que foi recentemente revelado como Open Compute Project [20].>li>300 TB de dados são armazenados em processos Memcached [21]li>li> O seu cluster Hadoop e Hive é feito de 3000 servidores com 8 núcleos, 32 GB de RAM, discos de 12 TB que é um total de 24k núcleos, 96 TB de RAM e 36 discos PB [22]<100 bilhões de acessos por dia, 50 bilhões de fotos, 3 trilhões de objetos em cache, 130 TB de logs por dia a partir de julho de 2010 [22]


[1] HipHop para PHP: http://developers.facebook.com/blog/post/358
[2] Making HPHPi Faster: http://www.facebook.com/note.php?note_id=10150336948348920
[3] A Máquina Virtual do HipHop: http://www.facebook.com/note.php?note_id=10150415177928920
[4] Thrift: http://thrift.apache.org/
[5] Memcached: http://memcached.org/
[6] HBase: http://hbase.apache.org/
[7] Scribe: https://github.com/facebook/scribe
[8] Scribe-HDFS: http://hadoopblog.blogspot.com/2009/06/hdfs-scribe-integration.html
[9] BigPipe: http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919
[10] Verniz Cache: http://www.varnish-cache.org/
[11] Facebook vai para Verniz: http://www.varnish-software.com/customers/facebook
[12] Needle in a haytack: armazenamento eficiente de bilhões de fotos: http://www.facebook.com/note.php?note_id=76191543919
[13] Scaling the Messages Application Back End: http://www.facebook.com/note.php?note_id=10150148835363920
[14] The Underlying Technology of Messages: https://www.facebook.com/note.php?note_id=454991608919
[15] The Underlying Technology of Messages Tech Talk: http://www.facebook.com/video/video.php?v=690851516105
[16] Facebook's typeahead search architecture: http://www.facebook.com/video/video.php?v=432864835468
[17] Facebook Chat: http://www.facebook.com/note.php?note_id=14218138919
[18] Quem tem mais Servidores Web: http://www.datacenterknowledge.com/archives/2009/05/14/whos-got-the-most-web-servers/
[19] Construindo Centros de Dados Eficientes com o Projeto Open Compute: http://www.facebook.com/note.php?note_id=10150144039563920
[20] Projeto Open Compute: http://opencompute.org/
[21] Apresentação da arquitetura do Facebook's no Devoxx 2010: http://www.devoxx.com
[22] Escalando o Facebook para 500 milhões de usuários e mais: http://www.facebook.com/note.php?note_id=409881258919

De Orth Staup

Qual é o custo médio de revisão por palavra que eu deveria esperar pagar por artigos básicos na web ou no blog? :: O que devo fazer se dei o meu e-mail a um vigarista?