Eu possuo e opero visualwebsiteoptimizer.com /. O aplicativo fornece um snippet de código que meus clientes inserem em seus sites para rastrear determinadas métricas. Como o snippet de código é JavaScript externo (na parte superior do código do site), antes de mostrar o site de um cliente, o navegador de um visitante entra em contato com o servidor de aplicativos. Caso nosso servidor de aplicativos fique inativo, o navegador continuará tentando estabelecer a conexão antes que o tempo limite se esgote (normalmente 60 segundos). Como você pode imaginar, não podemos permitir que o servidor de aplicativos fique inativo em nenhum cenário, pois isso afetará negativamente a experiência não apenas dos visitantes do nosso site, mas também dos visitantes dos nossos clientes!
Atualmente, estamos usando o mecanismo de failover de DNS com um servidor de backup localizado em um data center diferente (na verdade, continente diferente). Ou seja, monitoramos nosso servidor de aplicativos a partir de 3 locais separados e, assim que for detectado como inativo, alteramos o registro A para apontar para o IP do servidor de backup. Isso funciona bem para a maioria dos navegadores (como nosso TTL é de 2 minutos), mas o IE armazena em cache o DNS por 30 minutos, o que pode ser um grande negócio. Consulte esta publicação recente visualwebsiteoptimizer.com/split-testing-blog/maximum-theoretical-downtime-for-a-website-30-minutes/
Portanto, que tipo de configuração podemos usar para garantir um failover quase instantâneo, caso o data center do aplicativo sofra uma grande interrupção? Li aqui www.tenereillo.com/GSLBPageOfShame.htm que ter vários registros A é uma solução, mas ainda não podemos permitir a sincronização de sessões. Outra estratégia que estamos explorando é ter dois registros A, um apontando para o servidor de aplicativos e o segundo para um proxy reverso (localizado em um data center diferente) que resolve o servidor de aplicativos principal se estiver ativo e o servidor de backup, se estiver ativo. Você acha que essa estratégia é razoável?
Apenas para ter certeza de nossas prioridades, podemos manter nosso próprio site ou aplicativo inativo, mas não podemos deixar o site dos clientes desacelerar devido ao nosso tempo de inatividade. Portanto, caso nossos servidores de aplicativos estejam inoperantes, não pretendemos responder com a resposta padrão do aplicativo. Mesmo uma resposta em branco será suficiente, basta que o navegador conclua a conexão HTTP (e nada mais).
Referência: eu li este tópico que foi útil serverfault.com/questions/69870/multiple-data-centers-e-http-traffic-dns-round-robin-is-the-only-way-to-assure