Qual a necessidade de hairdwaire e softwaire que um site principal exige paira gerenciair adequadamente mais de 1000 serveres?

Desculpe-me por uma questão de alto nível. Eu entendo o básico do balanceamento de cairga do server, mas o conceito de gerenciair 30.000 serveres é um pouco estranho paira mim. Será que o mesmo conceito de equilibrair 2 ou 3 serveres aumentou 10.000 vezes?

Como isso se relaciona com coisas como o memcached, sql / mysql, motores de busca, etc.?

É um sistema de hierairquia de ter serveres 'controlador' e serveres escravos que fornecem os dados com base nisso? Como é tratada a redundância?

Obrigado por qualquer informação ou direção paira um airtigo sobre o assunto.

EDITAR Obrigado pelas respostas cairas. A minha post foi fechada, mas eu renovei o título, espero que ele seja reaberto, pois acho que o process de solução de problemas envolvido com essas soluções de dados de alto nível é fascinante, e atualmente crio uma api que exigirá alguma cairga básica equilibrando, daí a questão.

A maior pairte da stack de softwaire que o Google usa em seus serveres foi desenvolvida internamente. Paira diminuir os efeitos da crash de hairdwaire inevitável, o softwaire foi projetado paira ser tolerante a crashs.

Fonte: Google Platform

Depois de ler o airtigo, acho que é o mesmo conceito que equilibrair a cairga entre alguns serveres ampliados em mais de 1000 serveres, utilizando stack de softwaire interna desenvolvida em casa no topo do Linux. por exemplo, GFS (Sistema de files do Google), BigTable – Sistema de airmazenamento estruturado baseado em GFS

Este link descreve como eles equilibram a cairga da networking.

Eles usam interruptores de balanceamento de cairga paira distribuir a cairga. Todos os requests paira o site da Web chegam a uma máquina que passa o request paira um dos serveres disponíveis. O switch pode descobrir dos serveres que um está less cairregado, então todos eles estão fazendo uma quantidade igual de trabalho.

A topologia de networking do Google é a seguinte:

Quando um computador cliente tenta se conectair ao Google, vários serveres DNS resolvem http://www.google.com em vários endereços IP através da política Round Robin. Além disso, isso atua como o primeiro nível de balanceamento de cairga e direciona o cliente paira diferentes clusters do Google. Um cluster do Google tem milhaires de serveres e, uma vez que o cliente se conecta ao server, o balanceamento de cairga adicional é feito paira enviair as consultas ao server web less cairregado.

A grande pairte aqui é, se o softwaire não for projetado paira escala, como pode? Por exemplo, uma das maiores restrições do Facebook agora é a sua confiança no MySQL – eles conseguiram esconder o problema jogando mais e mais máquinas, mas seu próprio engenheiro o chama de "um destino pior do que a morte".

Normalmente, você precisairá cairregair solicitações de saldo – e muitos projetos, de código aberto ou outros, são projetados. Mas isso vem com sobrecairga, incluindo logs de escrita, escritas atrasadas e architectures "eventualmente consistentes". Em outras palavras, a escala não é bairata.

Então, coisas como serveres web, que servem conteúdo static, podem ser facilmente pairalelizadas. Memcached e outros sistemas de cache são facilmente balanceados. Mas como você muda pontos únicos de crashs? Como a sua escala de base de dados única, grande e relacional? E quanto às lojas de files? Em essência, este é um ramo integer da search … não é algo que possa ser respondido por uma única pergunta.

Eu acho que os mesmos conceitos devem ser os mesmos e o ponto crítico é como você distribui a cairga e os dados entre os resources disponíveis e como você localiza seus dados.

Uma maneira é a distribuição geográfica dos serveres. Cada user será direcionado paira o server mais próximo.

Um service similair a um registro pode ser usado paira searchr os dados solicitados.

Pense na implementação do service de DNS. Possui um database distribuído muito grande. Os nós raiz direcionam os users paira outros nós de nível inferior e assim por diante até chegair ao nó responsável que pode responder a sua consulta.