Redundância do servidor de sites distribuídos [fechada]

1

Suponha que a infraestrutura de um site seja muito complicada e esteja totalmente distribuída (provavelmente como a maioria das grandes empresas da Web).

Estou certo em pensar que, embora existam todos esses servidores web extras para lidar com várias solicitações de clientes, ainda existe uma única "máquina" na qual os usuários devem entrar? Eu estou supondo que esta máquina será aquela fisicamente associada ao endereço IP?

Eu pergunto porque preciso saber se, em locais onde existem sistemas distribuídos, ainda há um único ponto de falha - geralmente o nó de controle ou, neste exemplo, a máquina conectada à internet pública? Certamente não pode haver duas máquinas conectadas à internet, já que elas teriam endereços IP diferentes?

Esta "máquina" pode não ser um servidor em si, mas talvez seja uma peça de equipamento cisco. Eu só preciso saber se, no mundo real, esses sistemas distribuídos ainda têm uma seção específica em que eles dependem da integridade de um dispositivo eletrônico?

    
por Keith Lion 29.06.2012 / 21:25

4 respostas

1

Pode haver, mas não precisa ser, uma única máquina para a qual todas as solicitações são enviadas. Geralmente, essa máquina é chamada de carga balanceador . No entanto, se cada solicitação feita por um cliente for independente, ou se o front end distribuído puder falar com um back-end distribuído que esteja em sincronia, um cliente poderá falar com uma máquina diferente para cada solicitação feita.

Tudo o que precisa acontecer é que o cliente fornece à máquina independente todas as informações necessárias para concluir a solicitação na solicitação, ou o servidor faz uma consulta a um banco de dados distribuído de backend contra um token (geralmente um cookie para sites) e o servidor pode continuar de onde a outra máquina parou.

    
por 29.06.2012 / 21:30
1

Para responder à sua pergunta, não, você pode criar uma infraestrutura de website sem pontos únicos de falha.

O round-robin de DNS permite que vários IPs sejam associados a um único nome de domínio; Cada um desses front-ends pode, por sua vez, falar com sistemas backend clusterizados , onde existem várias cópias independentes dos bancos de dados, que são continuamente sincronizadas.

Jeff Atwood realmente blogou sobre o trabalho da Netflix em fazer seu sistema impermeável a pontos únicos de falha, incluindo um daemon que substitui aleatoriamente os serviços / instâncias que eles usam para testes.

    
por 29.06.2012 / 21:46
1

Alguns exemplos:

Torne um site altamente disponível com failover de IP, Heartbeat e Pacemaker no Ubuntu 9.10 (Kármico)

O Microsoft Cluster Server (MSCS) fornece a capacidade de definir um recurso de endereço IP em um cluster e, para ele, fazer failover de um nó para outro.

Os mesmos princípios podem ser aplicados a qualquer sistema front-end, como um balanceador de carga cujo trabalho é distribuir solicitações HTTP recebidas para nós do servidor da Web em um farm de servidores.

    
por 29.06.2012 / 21:50
0

Pode haver (e muitas vezes são) vários endereços IP diferentes associados a um único nome de domínio. Por exemplo, o google.com atualmente resolve (para mim):

Name:   google.com
Address: 173.194.34.129
Name:   google.com
Address: 173.194.34.130
Name:   google.com
Address: 173.194.34.131
Name:   google.com
Address: 173.194.34.132
Name:   google.com
Address: 173.194.34.133
Name:   google.com
Address: 173.194.34.134
Name:   google.com
Address: 173.194.34.135
Name:   google.com
Address: 173.194.34.136
Name:   google.com
Address: 173.194.34.137
Name:   google.com
Address: 173.194.34.142
Name:   google.com
Address: 173.194.34.128

O comportamento do navegador da Web varia, mas geralmente ele tenta um endereço IP aleatoriamente e passa para outro se não receber resposta do primeiro. Portanto, não há um único ponto de falha aqui.

    
por 29.06.2012 / 21:40