Tudo depende um pouco da situação. Uma maneira padrão de obter maior disponibilidade é de fato o balanceador de carga. O problema é que você precisa de pelo menos dois loadbalancers
Um pequeno desenho para deixar claro:
+-----------+
+--->| Backend 1 |
+----------------+ | +-----------+
WAN --->| Loadbalancer 1 |---+
+----------------+ | +-----------+
| +--->| Backend 2 |
| Fallback +-----------+
v
+ - - - - - - - -+
| Loadbalancer 2 |
+ - - - - - - - -+
Explicação
O balanceador de carga está diante de todos os proxies de anúncios de servidores de backend que solicitam todos os servidores de back-end. Um balanceador de carga secundário também permanece on-line e verifica se o balanceador principal está acessível. Se, em qualquer caso, o balanceador de carga primário for desativado, o balanceador de carga secundário assumirá seu IP e iniciará a veiculação.
Vantagens (desta confguração)
- O balanceador de carga distribui o tráfego sem ter muita carga e pode, portanto, atender mais usuários do que os servidores de backend [1]
- O balanceador de carga pode detectar se um back-end não pode mais lidar com o tráfego e pode parar de enviar tráfego para lá [2]
- O balanceador de carga pode fazer o cache de arquivos estáticos para o backend
- O balanceador de carga pode finalizar o SSL [3] [4]
- Se o balanceador de carga falhar, ele poderá retornar ao balanceador secundário sem tempo de inatividade [5] [6]
Desvantagens
- Custa mais dinheiro
- Isso não ajuda se a rede na frente do balanceador cair.
Notas de rodapé
[1] É claro que o balanceador de carga precisa de mais largura de banda do que a soma da largura de banda máxima dos servidores back-end (isso não é necessariamente a largura de banda máxima da interface dependendo do aplicativo)
[2] Isso não é bom apenas. Se ambos os backends estiverem em sua capacidade máxima ou perto dela e o balanceador de carga reduzir um, o outro backend receberá todo o tráfego e a coisa toda se desmoronará. Isso requer bons ajustes
[3] Na verdade, o balanceador de carga deve fazer isso se ele não quiser rotear o tráfego cegamente por conexão.
[4] Talvez você precise restabelecer uma nova conexão ssl após o beckend se não confiar na rede backend
[5] Você precisa ter certeza de que, quando o primário for desativado, ele ficará inativo até que você o deseje novamente para evitar que coisas como toggeling e IPs sejam usados duas vezes
[6] Você deve garantir que a conexão entre os balanceadores de carga é muito, muito, muito estável