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
fonte
OK, isso foi perguntado há um tempo atrás, mas eu estou vendo isso agora.
Você deve:
Fazer qualquer outra coisa é irresponsável, realmente. Eu suponho que você já tem isso no lugar.
Você não deve basear seu serviço em truques de roteamento BGP, a menos que tenha ou obtenha o know-how para fazê-lo. Cenários complexos de roteamento BGP são decididamente não triviais de implementar; não faça isso você mesmo se não tiver o conhecimento específico do domínio.
Sua pergunta em si é um pouco confusa. A análise de como criar um serviço altamente disponível começa com os dados do aplicativo , porque esse é o seu "estado". As partes sem estado são fáceis de tornar altamente disponíveis, as partes com estado total não são. Portanto, em vez de focar nos servidores e no DNS, observe onde o aplicativo mantém o estado . Comece otimizando lá e, possivelmente, solicitando conselhos sobre algoritmos no Stack Overflow. Você poderia implementar uma noção de transações e tentar novamente o servidor inteligente no seu arquivo Javascript fx?
fonte
Na verdade, o que você deseja pode ser atualizado para ajudar também suas atividades de teste de divisão se você combinar failover de geodns e dns.
O envio do grupo A para o ip 1 e do grupo B para o ip 2, mesmo se eles estivessem no mesmo servidor, permitiria a separação dos grupos de teste. O grupo A e o grupo B são de diferentes regiões geográficas. Para ser justo, no dia seguinte / semana / mês, você vira os grupos para garantir diferenças geográficas. Apenas para ser rigoroso em sua metodologia.
O serviço dns geodns / failover em http://edgedirector.com pode fazer isso
divulgação: estou associado ao link acima, deparei-me aqui pesquisando um artigo sobre a aplicação de truques estúpidos de DNS para dividir testes.
fonte