Kyle acertou na cabeça referenciando o post que identifica o Teorema do CAP .
Em última análise, isso vai se resumir a orçamento e recursos. A melhor maneira de lidar com a disponibilidade na fronteira será com protocolos de rede, como o BGP . Tornar a rede altamente disponível é mais fácil, pois você não tem a preocupação com a integridade dos dados na maioria dos casos.
Usar DNS round robin é uma solução de compromisso e menos robusta, mas certamente viável também.
Na parte inferior da pilha, você tem os servidores da Web, que são mais fáceis de fazer failover dinamicamente, como com qualquer coisa que não envolva armazenamento de dados.
No backend, você pode replicar o MySQL pela Internet ou de preferência por um link privado. Se pela Internet, pelo menos, use SSL . Uma VPN seria melhor. Esta é a parte mais complicada e algo que eu estou trabalhando ainda agora. Se você não se importa com a integridade dos dados, é simples. Se seu produto é focado em leitura, você tem mais opções, pois é menos complicado.
O que eu continuo voltando é o seguinte ...
Alta disponibilidade e continuidade de negócios são duas coisas distintas. Um ambiente de alta disponibilidade é melhor estabelecido dentro da mesma instalação na mesma rede interna, pois os melhores cenários possíveis podem ser aplicados com riscos mínimos aos dados. O cérebro dividido é substancialmente menos provável com um cabo serial de 3 'para monitorar o status do servidor, além do link Ethernet. Com um desastre, muitas vezes haverá etapas manuais envolvidas e um SLA ditando os impactos e os termos. Se o data center principal foi queimado, 30 minutos para fazer o backup da produção não parece muito ruim.
Eu provavelmente poderia escrever um livro sobre o assunto, já que há muito a fazer. Você provavelmente terá que comprometer os requisitos com base em seus recursos, que deverão ser comunicados à empresa. Este não é um pedido simples.
Uma solução mais simples pode ter dois provedores de DNS externos, onde um escapa de seu servidor em um site e outro externo de um DNS em outro site. Dessa forma, se o provedor falhar, você poderá alterar o caminho de entrada usando o DNS.
Um caminho da Web em um site, um no outro. Mestre duplo no backend com failover manual no topo. Isso seria simples e não arriscaria a integridade dos dados, mas teria que ser manual para fazer isso.