Como posso criar uma “falha de baleia” para o meu site?

3

Eu tenho um site que balançamos a carga em algumas máquinas. O balanceador de carga (um Brocade ServerIron ADX) está na rede local. Eu sei que tem a capacidade de configurar um endereço IP de "backup" para usar como "real", mas precisaria estar em uma rede local. Como posso fornecer uma "falha de baleia" aos meus usuários e uma mensagem de atualização de status quando todo o meu ambiente pode estar off-line devido a uma falha de FW, LB ou de vários servidores? Como o DNS não tem a capacidade de fornecer um backup ponderado do Registro A (como registros SRV), quais são minhas opções?

Idealmente, a solução deve ser capaz de entrar automaticamente assim que meu site se tornar inacessível e informar aos meus usuários que nossas equipes de resposta estão trabalhando no problema.

    
por Eric Falsken 02.03.2013 / 00:22

4 respostas

7

A Whale Fail do Twitter é mais complicada do que parece. As pilhas de aplicativos do Twitter (Stacks - existem muitas camadas na infraestrutura do Twitter) são bastante complicadas. O Twitter tem milhares de máquinas, anos de código escrito em vários idiomas, cola em uma dúzia de diferentes sabores e centenas (se não milhares) de lugares onde o aplicativo pode quebrar. Seus requisitos (dois servidores e uma página de falha) são muito mais simples.

Por acaso estou olhando para um recurso semelhante - eu quero usar um servidor da Web de backup se todos os servidores da web primários falharem. Observe que isso só ajudará em alguns cenários de falha e não ajudará se a rede pública para o balanceador de carga tiver problemas.

Guia de Balanceamento de Carga do ServerIron ADX Server , Capítulo 2: seção "Primary and backup servidores "diz:

Primary and backup servers

The real server is either a primary server or a backup server based on how you added it:

• A primary server is used by the ServerIron ADX when load balancing client requests for an application. It is a locally attached server added using the server real-name-or-ip command or Web equivalent.

• A backup server is used by the ServerIron ADX only if all the primary servers are unavailable for the requested application. It is remotely attached added using the server remote-name command or Web equivalent

    
por 02.03.2013 / 00:53
6

Você recebe um web designer para produzir um documento com a aparência que você deseja.

Em seguida, você configura o balanceador de carga para veicular este documento para erros HTTP 500, 502, 503 e 504. Exatamente como você faz isso varia; verifique sua documentação.

Alguns balanceadores de carga são apenas balanceadores TCP "burros" que encaminham conexões TCP e não fazem nada na camada 7. Outros podem atuar como proxies reversos completos (por exemplo, nginx) e são capazes de fazer o que você precisa.

A partir de uma verificação rápida da documentação do Brocade ServerIron ADX , ela não é parece capaz de servir documentos de erro em solicitações HTTP. Embora seja definitivamente mais inteligente que o típico forwarder TCP "idiota", provavelmente não vai fazer o que você quer aqui.

Um proxy reverso, como o nginx, seria capaz disso, mas se você configurá-lo, poderá substituir o balanceador de carga (já que o nginx também pode fazer o balanceamento de carga HTTP / HTTPS).

    
por 02.03.2013 / 00:24
3

A 'falha da baleia' do Twitter não indica nenhuma dessas falhas catastróficas, e não seria trivial criar nada. O melhor que posso pensar é ter um TTL de DNS baixo para o seu domínio, uma conexão extra à Internet com espaço IP separado que serve apenas a falha da baleia e algum tipo de ferramenta de monitoramento que atualiza seus registros A em caso de falha.

Agora, a menos que você planeje ter falhas catastróficas com muita freqüência, isso seria um exagero. E se você planeja tê-los freqüentemente, provavelmente você está fazendo errado :)

    
por 02.03.2013 / 00:59
0

CDNs como o CloudFront ou o Akamai podem substituir respostas de erro por uma falha na baleia, ou você pode ter uma camada de proxy leve no local que faz a mesma coisa. A solução local não o ajudará se sua conexão de rede morrer, somente um CDN ou servidor de DNS hospedado remotamente + healthchecker pode lidar com isso.

    
por 20.03.2016 / 21:04