Site único em vários servidores

Site único em vários servidores

Por favor, perdoe-me se estou usando terminologia incorreta. Tentei pesquisar minha pergunta, mas não tenho certeza de como formulá-la em termos simples o suficiente para uma pesquisa. eu encontreiesta postagemeesta postagemque são relevantes, mas não respondem exatamente às minhas perguntas.

Para sites que exigem um grande número de servidores para serem executados, como o código do aplicativo é armazenado e gerenciado (deixando o banco de dados de fora por enquanto)? Para simplificar, digamos que serverfault.com tenha 10 servidores alimentando-o. Todos os 10 servidores possuem exatamente o mesmo código ou certas partes do código seriam divididas em servidores diferentes? Se todos eles tiverem exatamente o mesmo código, quais ferramentas os administradores usam para garantir que os servidores contenham exatamente o mesmo código? Posso imaginar que se um servidor contiver código diferente, coisas ruins poderão acontecer.

Agora, para o banco de dados...Se você tem uma grande quantidade de dados em um sistema de armazenamento baseado em SQL, como isso é gerenciado? As próprias tabelas são divididas em vários servidores ou geralmente seria algo como os usuários da tabela obtêm este servidor, as postagens da tabela obtêm este servidor, etc ...? Como um gigante tão grande como o Facebook ou o Twitter lida com isso?

Configurei meu primeiro servidor rodando Apache no Ubuntu em uma microinstância AWS. Existe alguma ferramenta gratuita que eu possa verificar para tentar fazer isso? Encontrei balanceadores de carga na AWS, mas as descrições são mais sobre como executá-los, não sobre como os dados em si são armazenados e/ou recuperados.

Obrigado

Responder1

Isso é algo chamado balanceamento de carga. Um balanceador de carga redireciona solicitações para vários servidores, que possuem exatamente o mesmo código carregado.

Quanto ao banco de dados, isso geralmente é feito com a replicação do banco de dados para vários servidores e a divisão dos dados em vários bancos de dados. (por exemplo, as "coisas do Facebook" do usuário A são armazenadas no servidor de banco de dados A, o usuário B obtém seus dados armazenados no servidor B e assim por diante)

Se você quiser saber mais, aqui está uma coleção de coisas para o Facebook e sua arquitetura: https://stackoverflow.com/questions/3533948/facebook-architecture

Então, para o seu cenário:

  • Carregue o mesmo código em vários servidores
  • Configurar um balanceador de carga

informação relacionada