¿Cuándo es el momento adecuado para introducir alta disponibilidad para el sitio web?
Hay muchos artículos sobre opciones de alta disponibilidad. Sin embargo, no es tan obvio CUANDO es el momento adecuado para cambiar de un solo servidor a una configuración de alta disponibilidad.
Tenga en cuenta mi situación:
http://www.postjobfree.com es un sitio web 24/7 con tráfico significativo:
http://www.similarweb.com/website/postjobfree.com
Actualmente lo ejecuto en un único servidor: tanto el servidor web IIS 7.0 como SQL Server 2008 se ejecutan en la misma caja de hardware.
Hay un tiempo de inactividad ocasional (~ uno por mes) ~ 5 minutos, generalmente causado por el reinicio requerido por alguna actualización de Windows Server. Por lo general, el tiempo de inactividad está programado y ocurre por la noche. Aún así es desagradable, porque Google Bot y algunos usuarios siguen activos durante la noche.
Los ingresos actuales del sitio web son de ~ $ 8K / mes.
Considero cambiar a la configuración de dos servidores (granja web de 2 servidores web y clúster de 2 servidores SQL alojados en dos servidores de hardware).
Pros:
1) Alta disponibilidad (teóricamente no hay tiempo de inactividad). Incluso si uno de los servidores se cae, otro servidor se haría cargo.
2) Sin pérdida de datos: sin el clúster SQL, se puede perder hasta un día de datos en caso de falla del hardware (hacemos copias de seguridad diarias).
Contras:
1) Más esfuerzo para configurar y mantener dicha configuración.
2) Mayor costo de alojamiento. En lugar de ~ $ 600 / mes sería alrededor de $ 1200 / mes.
¿Cuál sería tu recomendación?
fuente
Respuestas:
Respuesta corta: cuando el tiempo de inactividad o el riesgo de que le cueste le cuesta más de lo que le costaría tener alta disponibilidad.
Es fundamentalmente una decisión económica. Como ejemplo. $ 8k / mes implica que un corte de 2 horas le costará $ 22. Si puede configurar su sistema de manera que pueda pasar de cero a un sitio completamente funcional en 2 horas, la alta disponibilidad solo le otorgará $ 22 de funcionalidad por encima de eso.
Dicho de otra manera, puede ahorrar dinero a menos que tenga hasta 54 horas de tiempo de inactividad no evitable en un mes determinado.
fuente
Sus partes interesadas / gente de negocios (¡que podría ser usted!) Tienen que decidir
La pérdida de ingresos es fácil de cuantificar: el resto no se puede responder aquí, lo siento ...
fuente
Creo que la mayoría de los usuarios pueden manejar un poco de tiempo de inactividad programado. Tenga en cuenta que eBay tiene actualizaciones semanales los viernes por la noche, y las ofertas a veces no funcionan. La banca en línea de mi (principal banco australiano) ha programado interrupciones durante horas cada semana. Twitter se desconecta todo el tiempo. Heroku / EC2 estuvo inactivo durante días recientemente.
Lo mantendría en esa perspectiva, si realmente solo estás hablando 5 minutos al mes, estás haciendo un buen trabajo como administrador de sistemas.
fuente
Ya mencionó a Google como un factor en términos de indexación, pero también puede valer la pena considerar el impacto que la latencia / capacidad de respuesta del sitio puede tener en el SEO. Es una caja negra y todo eso, tan difícil de cuantificar, aunque por lo que vale, Matt Cutts reconoce que es un uno por ciento . Me preocuparía más la reputación, como han dicho otros.
fuente
Tenga en cuenta que HA, como la seguridad, no es un producto, sino un proceso.
Por ejemplo, la replicación de la base de datos solo lo llevará al punto donde cada espejo de la base de datos podrá continuar por sí solo, pero también necesitará una estrategia para la resincronización después de que se hayan reemplazado los componentes fallidos.
Considere un sistema de pedidos como ejemplo: el cliente envía un pedido y, durante el procesamiento, el sistema físico con el que estaba hablando falla después de almacenar la información del pedido en su copia local de la base de datos. Impaciente, el cliente presiona "enviar" nuevamente y es dirigido a otro servidor, que acepta el pedido. Si sus bases de datos se vuelven a sincronizar simplemente repitiendo las instrucciones INSERT que faltan en el otro lado, entonces el orden se duplicará, lo que puede no ser lo que desea.
Como sugirió @Slartibartfast, todo se reduce a una decisión económica, sin embargo, le recomiendo que también planee algunos años en el futuro aquí. Si espera necesitar una configuración de HA adecuada entonces, ahora sería un buen momento para reservar recursos para el trabajo preparatorio.
fuente
Mientras piensas en esto, creo que consideras configurar una página de "ballena falsa".
Hay muchas maneras de hacer esto, pero el combo aws de route53 y s3 funciona bien en mis sitios pequeños.
Configuré el dominio con comprobaciones de estado para que, en caso de error, el DNS envíe a los usuarios a los usuarios a una página html estática en s3; Cuesta casi nada.
En mi experiencia, hacer que su sitio diga "lo siento, las cosas están rotas pero estamos trabajando en ello" hace una gran diferencia para los usuarios. Una cuenta de Twitter donde puede comunicarse con los usuarios, incluso es aún mejor.
Esto lleva mucho tiempo para mitigar la "pérdida de reputación" que puede ser el impacto más significativo de una interrupción.
consulte: https://aws.amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting/ para obtener una guía sobre cómo configurarlo.
La conmutación por error social de DynDns http://dyn.com/managed-dns/social-failover/ es un tipo de cosa similar .
Puede rodar el suyo y hacer sus comprobaciones de estado y luego escribir los cambios de DNS, siempre que sus registros DNS tengan un TTL bajo y tenga alguna forma de manipularlos mediante programación.
fuente
¿Ha considerado usar algo como EC2 que le permitirá escalar de manera flexible y también negar sus desventajas? En última instancia, es una decisión económica si vale la pena usar EC2 o no, pero al menos es una opción a considerar.
fuente
Para evitar la pérdida de datos, debe buscar configuraciones de Raid antes de los clústeres. También debe configurar una IP de conmutación por error que pueda cambiar de un servidor a otro en caso de desastre sin tener que esperar la propagación del DNS.
fuente