Como o Facebook funciona? As porcas e parafusos [tecnologia explicada]

Propaganda

Propaganda
Propaganda

A rede social é a arte de se conectar com aqueles que compartilham interesses comuns. Sua “rede” é uma comunidade que ajuda a manter você unido aos outros e oferece muitos benefícios. Networking através de sites de mídia social revolucionou a forma como usamos a Internet e está na vanguarda do que hoje chamamos de Web 2.0.

Facebook é uma rede social. As pessoas têm se "facebooking" umas às outras há cerca de 6 anos, tornando o Facebook a rede social mais usada com mais de 350 milhões de usuários em todo o mundo. Mas como funciona o Facebook?

Neste artigo, discutirei o funcionamento interno do Facebook, cobrindo sua arquitetura e infraestrutura frontend / backend - as porcas e parafusos que mantêm o Facebook unidos.

Como o Facebook funciona? ”” O Front End

O Facebook usa uma variedade de serviços, ferramentas e linguagens de programação para criar sua infra-estrutura básica. No front end, seus servidores executam uma pilha LAMP (Linux, Apache, MySQL e PHP) com o Memcache. Não é um especialista em ciência da computação? Vamos dar uma olhada exatamente no que isso significa.

Linux e Apache

como funciona o facebook

Esta parte é bastante autoexplicativa. O Linux é um kernel do sistema operacional do computador semelhante ao Unix. É open source, muito personalizável e bom para segurança. O Facebook executa o sistema operacional Linux em servidores HTTP Apache. O Apache também é gratuito e é o servidor web de código aberto mais popular em uso.

MySQL

como funciona o facebook

Para o banco de dados, o Facebook utiliza o MySQL por causa de sua velocidade e confiabilidade. O MySQL é usado principalmente como um armazenamento de valor-chave, pois os dados são distribuídos aleatoriamente entre um grande conjunto de instâncias lógicas. Essas instâncias lógicas estão espalhadas pelos nós físicos e o balanceamento de carga é feito no nível do nó físico.

No que diz respeito às personalizações, o Facebook desenvolveu um esquema de particionamento personalizado no qual uma ID global é atribuída a todos os dados. Eles também têm um esquema de arquivamento personalizado que se baseia em como os dados recentes e frequentes ocorrem por usuário. A maioria dos dados é distribuída aleatoriamente.

PHP

como funciona o facebook

O Facebook usa o PHP porque é uma boa linguagem de programação web com suporte extensivo e uma comunidade ativa de desenvolvedores e é bom para uma iteração rápida. PHP é uma linguagem de script digitada / interpretada dinamicamente.

Memcache

como funciona o facebook

O Memcache é um sistema de cache de memória que é usado para acelerar sites dinâmicos direcionados a banco de dados (como o Facebook) armazenando dados e objetos em cache na RAM para reduzir o tempo de leitura. O Memcache é a forma primária de armazenamento em cache do Facebook e ajuda a aliviar a carga do banco de dados.

Ter um sistema de cache permite que o Facebook seja tão rápido quanto recuperar seus dados. Se não precisar ir ao banco de dados, ele só buscará os dados do cache com base no seu ID de usuário.

Desvantagens para usar LAMP

O Facebook percebeu que há desvantagens em usar a pilha LAMP. Notavelmente, o PHP não é necessariamente otimizado para grandes sites e, portanto, difícil de escalar. Além disso, não é a linguagem de execução mais rápida e a estrutura de extensão é difícil de usar.

como funciona o facebook

Mike Schroepfer, vice-presidente de engenharia do Facebook, recentemente fez uma entrevista no EmTech @ MIT sobre isso. “Escalar qualquer site é um desafio”, disse Schroepfer, “mas escalar uma rede social tem desafios únicos”.

Ele passou a dizer que, ao contrário de outros sites, você não pode simplesmente adicionar mais servidores para resolver o problema por causa do "enorme conjunto de dados interconectados" do Facebook. Novas conexões são criadas o tempo todo devido à atividade do usuário.

O Facebook cresceu tão rapidamente que muitas vezes enfrentam problemas relacionados a consultas de banco de dados, armazenamento em cache e armazenamento de dados. Seu banco de dados é enorme e muito complexo. Para dar conta disso, o Facebook iniciou muitos projetos de código aberto e serviços de back-end.

Como o Facebook funciona? ”” O Back End

Os serviços de back-end do Facebook são escritos em uma variedade de linguagens de programação diferentes, incluindo C ++, Java, Python e Erlang. Sua filosofia para a criação de serviços é a seguinte:

1. Crie um serviço, se necessário

2. Criar um framework / conjunto de ferramentas para facilitar a criação de serviços

3. Use a linguagem de programação correta para a tarefa

Uma lista de todos os desenvolvimentos de código aberto do Facebook pode ser encontrada aqui. Vou discutir algumas das ferramentas essenciais que o Facebook desenvolveu.

Thrift (protocolo)

Como o Facebook funciona? As porcas e parafusos [tecnologia explicada] 7 fb thrift O Thrift é uma estrutura leve de chamada de procedimento remoto para desenvolvimento escalonável de serviços entre linguagens. O Thrift suporta C ++, PHP, Python, Perl, Java, Ruby, Erlang e outros. É rápido, economiza tempo de desenvolvimento e fornece uma divisão do trabalho de trabalho em servidores e aplicativos de alto desempenho.

Scribe (log server)

Scribe é um servidor para agregar dados de log transmitidos em tempo real a partir de muitos outros servidores. É uma estrutura escalável útil para registrar uma ampla variedade de dados. Ele é construído no topo do Thrift.

Cassandra (banco de dados)

como funciona o facebook

O Cassandra é um sistema de gerenciamento de banco de dados projetado para manipular grandes quantidades de dados espalhados por vários servidores. Ele aciona o recurso Pesquisa na Caixa de Entrada do Facebook e fornece um armazenamento de valor-chave estruturado com consistência eventual.

Hiphop para PHP

O HipHop para PHP é um transformador de código-fonte para código de script PHP e foi criado para salvar recursos do servidor. O HipHop transforma o código fonte do PHP em C ++ otimizado. Depois de fazer isso, ele usa o g ++ para compilá-lo para código de máquina.

Conclusão

Em poucas palavras, isso é o Facebook. Este artigo poderia facilmente ter 37 páginas a mais se eu fosse para mais detalhes, mas para responder à pergunta “Como funciona o Facebook?” Eu acho que isso será suficiente. Se você olhar além de todos os recursos e inovações, a idéia principal por trás do Facebook é realmente muito básica ”, mantendo as pessoas conectadas. O Facebook percebe o poder das redes sociais e está constantemente inovando para manter seus serviços os melhores do mercado.

Você achou este artigo útil? Deixe seus pensamentos, comentários e ideias abaixo!

In this article