
Suponha que eu tenha alguns aplicativos da web e também alguns aplicativos de desktop em execução em um servidor em ambiente de produção.
No ambiente de produção, mesmo um único minuto de inatividade não é tolerado. Atualmente só sei HA Cluster system
qual é usado para esse fim. Gostaria de saber se esta é a única maneira de evitar o desligamento do sistema ou, além disso, existem outras formas usadas?
O que grandes empresas como o Google usam para alta disponibilidade, já que também não toleram nem um único segundo de inatividade?
Obrigado
Responder1
Basicamente, você deseja ter um failover automático para cada serviço necessário para executar seu aplicativo.
Uma solução poderia ser a seguinte abordagem descrita:
- Keepalived instalado em ambos os sistemas.
- HAProxy como Loadbalancer com failover para HAP LB 2. Monitorado por keepalived
- Apache/NGINX por trás do HAP. Se um falhar, o HAP terá isso monitorado e redirecionado para Apache/NGINX no outro servidor
- Replicação MySQL Master/Master, carga balanceada e monitorada via HAP
Basicamente, o HAProxy distribui a carga no seu sistema e só encaminha para um dos serviços se ele estiver instalado e funcionando.
A arquitetura que você está procurando pode ser assim:
Responder2
Depende - para cada aplicação e cada nível do modelo OSI deve ser criado seu próprio sistema HA
Mas para começar você pode aprender sobre ha-proxy, keepalived e nginx com backend
Responder3
O sistema é tão forte quanto o elo mais fraco.
Num ambiente de produção típico haveria múltiplos de tudo. Um pequeno cluster web pode consistir em um balanceador de carga, vários proxies reversos, vários servidores http, nós de banco de dados mestre/escravo ou mestre/mestre. Nesta configuração, o balanceador de carga único seria o elo mais fraco; se morrer, nada funciona. Ambientes maiores replicam isso, mas em maior escala.
Em última análise, o design da rede dependerá do uso pretendido.