Como conseguir um servidor de aplicativos ativo-ativo de alta disponibilidade?

1

Eu preciso configurar o meu aplicativo de tal forma que me dá quase 0 downtime. Um dos meus data centers está lá no TX e outro está em Vegas. Agora, se o meu servidor no TX, que é considerado como sendo o PR, todo o tráfego será desviado para o servidor Vegas, que é o DR (Disaster Recovery) no meu caso.

Se usarmos balanceador de carga de software como HAProxy ou NginX, usando Keepalived (para verificar a pulsação entre o balanceador de carga de site de DR e o balanceador de carga de site PR), concluiremos a configuração de balanceamento de carga ativo-passivo para superar o failover. Aqui nosso aplicativo estará no modo ativo-ativo.

O diagrama acima mostra que todos os tráfegos de entrada alcançarão o IP virtual dos balanceadores de carga (balanceador de carga de PR ativo e balanceador de carga de DR passiva, pulsação ativada entre eles). Se o balanceador de carga do site PR estiver ativo, ele roteará a carga para as instâncias do aplicativo do Portal do site PR, bem como para as instâncias do Portal do site DR (como o site está ativo). Nesse momento, o balanceador de carga do site DR estará monitorando constantemente o desempenho de o balanceador de carga ativo. Se o site de RP ficar inativo, o site de DR se tornará ativo e apontará automaticamente para as instâncias do aplicativo do Portal de DR.

Mas ouvi dizer que o problema com a configuração do balanceador de carga ativo-passivo com o Keepalived é que ele funciona na LAN, mas não funciona na configuração da WAN. Como no nosso caso, o balanceador de carga Active PR estará no TX e o balanceador de carga DR passivo estará em Vegas.

Portanto, para obter alta disponibilidade com configuração de failover, como posso usar o balanceador de carga de software?

    
por Swarup Saha 22.10.2017 / 13:16

2 respostas

4

Você não poderá fazer isso. O motivo pelo qual ele funciona na mesma LAN é devido ao IP compartilhado que flutua entre os dois. Você precisaria fazer um roteamento BPG complicado e possuir seu espaço IP.

Você está tentando complicar demais as coisas. É melhor fazer as coisas da maneira mais simples possível e falhar rapidamente, sem se preocupar com 0 tempo de inatividade.

O que você deve fazer é usar um serviço DNS para gerenciar o tráfego. Você tem um serviço DNS como o route53 da AWS ou das verificações de integridade da configuração do dyn.com. Por isso, eles estão sempre verificando os dois sites por meio de uma verificação de integridade para se certificar de que estão funcionando. Ele envia todo o tráfego para o primário. Depois que a verificação de integridade no primário falhar, ela começará a fornecer respostas de DNS para o site de failover.

Isso também não é algo muito fácil, pois você precisa manter o site de failover ativo até poder verificar se o principal está totalmente sincronizado com o failover.

    
por 22.10.2017 / 13:50
0

Possível usar o Nginx Plus com seu módulo de verificação de integridade. Ter um pool de endereços por trás dele como um balanceador de proxy / carga, e ele irá verificar se eles estão ativos e devem rotear os usuários finais para. Você também pode usar determinadas APIs do DNS que a AWS ou o Azure fornecem, por exemplo, que funcionam com o Keepalived - portanto, no caso de um failover, ele atualizará o registro DNS para o novo servidor LB.

    
por 07.09.2018 / 16:27