O Twitter usa uma infraestrutura complexa e distribuída, mas aqui está uma quebra de algumas das principais tecnologias do servidor em que se baseiam:
*
back -end: Eles usam principalmente a pilha baseada em JVM.
*
Java, Scala e Kotlin: Estas são as principais linguagens de programação.
*
finagle: Um sistema RPC de protocolo-agnóstico tolerante a falhas para a criação de servidores de alta concorrência.
*
mesos: Um gerente de cluster de código aberto usado para abstrair CPU, memória, armazenamento e outros recursos de computação longe das máquinas.
* Thrift: Uma estrutura para o desenvolvimento de serviços escaláveis em linguagem cruzada.
*
armazenamento de dados: *
mysql: Usado para muitos principais armazenamentos de dados. No entanto, devido à escala do Twitter, eles fortemente seus bancos de dados MySQL.
*
Cassandra: Um banco de dados NoSQL usado para armazenamento e recuperação de dados de alto volume e alta velocidade.
*
hadoop/hdfs: Usado para processamento e análise de dados em larga escala.
*
memcached: Um sistema de cache de objeto de memória distribuído usado para acelerar o acesso a dados solicitados com frequência.
*
redis: Um armazenamento de estrutura de dados na memória, usado como um banco de dados, cache e corretor de mensagens.
* servidores da Web:
*
nginx: Um servidor Web popular e de alto desempenho e proxy reverso usado para lidar com o tráfego da Web recebido.
*
Filas de mensagem: *
kafka: Uma plataforma de streaming distribuída para criar pipelines de dados em tempo real e aplicativos de streaming. Usado para lidar com o enorme fluxo de tweets e outros eventos.
*
Pesquise: *
Lucene/Elasticsearch: Ponha a funcionalidade de pesquisa do Twitter.
Considerações importantes:
*
Arquitetura de microsserviços: O Twitter é construído como uma coleção de microsserviços, o que significa que eles têm muitas aplicações independentes e menores que funcionam juntas. Cada microsserviço pode usar tecnologias diferentes mais adequadas para sua finalidade específica.
*
Soluções personalizadas: Em sua escala, o Twitter provavelmente desenvolveu e personalizou muitas de suas próprias ferramentas e sistemas internos para atender às suas necessidades específicas.
*
Infraestrutura em nuvem: Enquanto o Twitter historicamente executou muitas de sua própria infraestrutura, eles estão cada vez mais alavancando provedores de nuvem como o Google Cloud Platform (GCP) e a Amazon Web Services (AWS) para alguns de seus serviços.
Em resumo, o Twitter não depende de um tipo de servidor, mas usa uma combinação de tecnologias para apoiar as necessidades de funcionalidade, processamento de dados e escalabilidade do site.