Como criar um servidor de aplicativos de alta disponibilidade?

5

Estou trabalhando com algumas unidades de hardware que usam a Internet móvel para se comunicar com meu servidor de aplicativos.

Inicialmente, o hardware tinha um endereço IP embutido (balanceador de carga) no hardware para comunicação que era usado para rotear o tráfego para o meu servidor de aplicativos; agora isso cria um único ponto de falha se o balanceador de carga desce por toda a infraestrutura redundante atrás dele se torna inútil, já que seu objetivo é compartilhar a carga e não manter a disponibilidade.

Agora pedi ao criador do hardware que o alterasse para usar o DNS e ao usar vários registros A que recebi melhores resultados. Neste caso, posso ter servidores de aplicativos trabalhando diretamente com o hardware; mas se um servidor ficar inativo, algumas unidades de hardware não conseguem se comunicar por algum tempo, mas ele vai para o outro servidor em 20 a 30 minutos; porque o failover de DNS não funciona sempre.

Então, como posso superar esse problema e manter meu servidor de aplicativos funcionando de alguma forma o tempo todo?

    
por anand 02.11.2015 / 04:33

2 respostas

7

Como sua pergunta é bastante genérica e não fornece detalhes sobre o software envolvido, minha resposta também é curta: basta usar um conjunto de dois loadbalancers, que compartilham um 'IP virtual' entre eles por meio do uso de, por exemplo. vrrp (o "Protocolo de Redundância do Roteador Virtual") ou marcapasso (há mais opções disponíveis também). Use duas máquinas para isso, que são bare-metal ou executadas em dois hosts diferentes. Se uma das máquinas cair, a outra assumirá o IP. Aponte seu registro para este IP (e lembre-se: o DNS não foi feito para atingir alta disponibilidade).

Editar 1: Como @Ondra Sniper Flidr mencionado nos comentários: Outra solução é keepalived .

Editar 2: Você também pode dar uma olhada em CARP , o "Endereço comum" Protocolo de redundância ". Uma solução de software usando esse protocolo seria UCARP , por exemplo.

    
por 02.11.2015 / 08:30
7

Seu balanceador de carga deve estar altamente disponível, pelo simples expediente de ter dois dispositivos agindo de forma cooperativa. A qualquer momento, um dos dois dispositivos é configurado para ter o endereço IP do balanceador de carga, e os dois dispositivos conversam constantemente entre si para que o dispositivo em espera saiba que o dispositivo ativo ainda está em operação.

No caso de o balanceador de carga ativo ficar inativo por algum motivo, o dispositivo em espera se reconfigura automaticamente para ter o endereço IP do balanceador de carga e continua a equilibrar o tráfego para o cluster de back-end.

    
por 02.11.2015 / 08:25