Soy propietario y opero visualwebsiteoptimizer.com /. La aplicación proporciona un fragmento de código que mis clientes insertan en sus sitios web para rastrear ciertas métricas. Dado que el fragmento de código es JavaScript externo (en la parte superior del código del sitio), antes de mostrar el sitio web de un cliente, el navegador de un visitante se pone en contacto con nuestro servidor de aplicaciones. En caso de que nuestro servidor de aplicaciones se caiga, el navegador seguirá intentando establecer la conexión antes de que se agote el tiempo de espera (generalmente 60 segundos). Como puede imaginar, no podemos permitirnos tener nuestro servidor de aplicaciones inactivo en cualquier escenario porque afectará negativamente la experiencia no solo de los visitantes de nuestro sitio web, sino también de los visitantes de nuestros clientes.
Actualmente estamos utilizando un mecanismo de conmutación por error de DNS con un servidor de respaldo ubicado en un centro de datos diferente (en realidad, en un continente diferente). Es decir, monitoreamos nuestro servidor de aplicaciones desde 3 ubicaciones separadas y tan pronto como se detecta que está inactivo, cambiamos un registro A para apuntar a la IP del servidor de respaldo. Esto funciona bien para la mayoría de los navegadores (ya que nuestro TTL es de 2 minutos), pero IE almacena en caché el DNS durante 30 minutos, lo que podría ser un factor decisivo. Vea esta reciente publicación nuestra visualwebsiteoptimizer.com/split-testing-blog/maximum-theoretical-downtime-for-a-website-30-minutes/
Entonces, ¿qué tipo de configuración podemos usar para garantizar una conmutación por error casi instantánea en caso de que el centro de datos de la aplicación sufra una interrupción importante? Leí aquí www.tenereillo.com/GSLBPageOfShame.htm que tener múltiples registros A es una solución, pero no podemos permitirnos la sincronización de sesiones (todavía). Otra estrategia que estamos explorando es tener dos registros A, uno que apunta al servidor de aplicaciones y el segundo a un proxy inverso (ubicado en un centro de datos diferente) que resuelve al servidor de aplicaciones principal si está activo y al servidor de respaldo si está activo. ¿Crees que esta estrategia es razonable?
Solo para estar seguros de nuestras prioridades, podemos permitirnos mantener nuestro propio sitio web o aplicación inactiva, pero no podemos permitir que el sitio web de los clientes se desacelere debido a nuestro tiempo de inactividad. Entonces, en caso de que nuestros servidores de aplicaciones estén caídos, no tenemos la intención de responder con la respuesta predeterminada de la aplicación. Incluso una respuesta en blanco será suficiente, solo necesitamos que el navegador complete esa conexión HTTP (y nada más).
Referencia: leí este hilo que fue útil serverfault.com/questions/69870/multiple-data-centers-and-http-traffic-dns-round-robin-is-the-only-way-to-assure