Alejandro Corro.
¿Qué se entiende como infraestructura de alta disponibilidad?
En el sector productivo, puede haber situaciones en las que se produzca una caída en el rendimiento de sus servidores debido a eventos que van desde un aumento repentino en el tráfico de datos o algo que pueda ocasionar un corte repentino de energía. O puede ser mucho peor y los servidores pueden dañarse, independientemente de si las aplicaciones corporativas se encuentren alojadas en la nube o en una máquina física. Tales situaciones son inevitables. Sin embargo, en lugar de esperar que alguno de estos eventos llegue a ocurrir, lo que realmente se debe hacer es prepararse para que nuestros sistemas no experimenten fallas.
Lograr la continuidad del negocio es una de las principales preocupaciones de las organizaciones modernas. El tiempo de inactividad puede causar un impacto financiero significativo y, en algunos casos, una pérdida de datos irrecuperable. Dado que todas las empresas dependen en gran medida de Internet, cada minuto cuenta. Es por eso que los servidores de la empresa deben permanecer operativos en todo momento.
La solución para evitar la interrupción del servicio y el tiempo de inactividad no planificado es emplear una configuración o arquitectura de alta disponibilidad (HA – High Availability). Alta disponibilidad significa que un sistema, componente o aplicación de TI puede funcionar a un alto nivel, de forma continua, sin intervención, durante un período de tiempo determinado. La infraestructura de alta disponibilidad está configurada para ofrecer un rendimiento de calidad y manejar diferentes cargas y fallas con un tiempo de inactividad mínimo o casi nulo.
Ya sea que elija albergar su propia infraestructura de TI, o bien opte por una solución alojada en un centro de datos o en un proveedor de nube, la alta disponibilidad debe ser un punto que se debe considerar al configurar su entorno de TI.
¿Qué se necesita implementar para lograrla?
La arquitectura de alta disponibilidad se puede definir como un enfoque que busca establecer la definición de los componentes, módulos o la implementación de servicios que sean necesarios para que un sistema asegure un rendimiento operacional óptimo, incluyendo los momentos en que se generen cargas de utilización elevadas. Pero, esta alta disponibilidad solo se puede lograr con una planificación minuciosa y una supervisión constante.
Un buen punto de partida para la plani- ficación de alta disponibilidad implica la identificación de los servicios que deben estar disponibles para la continuidad del negocio. Para cada nivel de servicio, vale la pena decidir hasta dónde se encuentra dispuesta la organización a garantizar la disponibilidad. Esto debe basarse en el presupuesto, la experiencia del personal y la tolerancia general a las interrupciones del servicio.
A continuación, se identifican los sistemas o componentes que son parte de cada servicio y se enumeran los posibles puntos de falla para estos sistemas. Cada punto debe verificarse inicialmente, establecerse una línea base de tolerancia a fallas y definir la frecuencia del monitoreo continuo. Por ejemplo, algunas preguntas clave a considerar sobre los puntos comunes de falla incluyen:
• Disponibilidad de la red: ¿Qué tan disponible está la red, en comparación con el SLA de su proveedor de servicios de Internet (ISP)?
• Uso de ancho de banda: ¿Cuánto ancho de banda consume su sistema, tanto en horas peak como inactivas?
• Disponibilidad y visibilidad de HTTP: ¿Está monitoreando las solicitudes HTTP del sistema, internamente, por ISP y por ubicación geográfica?
• Disponibilidad del sistema: ¿Realiza un seguimiento de los cierres anormales y normales del sistema operativo, la base de datos y el sistema del servidor empresarial?
• Métricas de rendimiento: ¿Supervisa la cantidad de usuarios que visitan su sitio o utilizan aplicaciones empresariales y compara estas cifras con la latencia de las solicitudes y el uso histórico de la CPU? ¿Ha agrupado los servidores por función y supervisa la capacidad del disco y el rendimiento de E/S? ¿Verifica y vigila el uso general de la memoria del sistema? Aunque no existen reglas fijas para la implementación de sistemas de alta disponibilidad, generalmente hay algunas buenas prácticas que se deben seguir para aprovechar al máximo la menor cantidad de recursos.
¿Cuál es la diferencia entre infraestructura de “alta disponibilidad” y “tolerante a fallas”?
Estos dos conceptos son bastante similares entre sí y, a veces, las personas usan estos dos términos indistintamente. Tanto la alta disponibilidad como la tolerancia a fallas persiguen el objetivo de garantizar que una aplicación o servicio se ejecute todo el tiempo sin degradación del sistema. Sin embargo, estos conceptos tienen atributos únicos que los diferencian entre sí. Por lo que difieren en costo, diseño, nivel de redundancia y comportamiento ante fallas o fallas de componentes.
Por un lado, la alta disponibilidad tiene como objetivo que una aplicación se ejecute el 99,999% del tiempo. Su diseño asegura que todo el sistema pueda recuperarse rápidamente si uno de sus componentes falla. Fault Tolerance, por otro lado, tiene el objetivo de mantener una aplicación en funcionamiento sin tiempo de inactividad. Tiene un diseño más complejo y mayor redundancia para sostener cualquier falla en uno de sus componentes.
En resumen, la diferencia entre tolerancia a fallas y alta disponibilidad es la siguiente: un entorno tolerante a fallas no tiene interrupción del servicio, pero tiene un costo significativamente mayor, mientras que un entorno de alta disponibilidad tiene una interrupción mínima del servicio.
La tolerancia a fallas se basa en hardware especializado para detectar una falla de hardware y cambiar instantáneamente a un componente de hardware redundante, ya sea que el componente fallado sea un procesador, tarjeta de memoria, fuente de alimentación, subsistema de E/S o subsistema de almacenamiento. Aunque esta transición aparentemente es perfecta y ofrece un servicio continuo, se paga un alto costo tanto por el hardware como por el rendimiento debido a que los componentes redundantes no procesan. Más importante aún, el modelo tolerante a fallas no aborda fallas de software, por mucho la razón más común para esos tiempos de inactividad.
La alta disponibilidad ve la disponibilidad no como una serie de componentes físicos replicados, sino como un conjunto de recursos compartidos en todo el sistema que cooperan para garantizar servicios esenciales. Combina software con hardware estándar de la industria para minimizar el tiempo de inactividad al restaurar rápidamente los servicios esenciales cuando falla un sistema, componente o aplicación. Si bien no es instantáneo, los servicios se restablecen rápidamente, a menudo en menos de un minuto.
Muchos sitios están dispuestos a absorber una pequeña cantidad de tiempo de inactividad con alta disponibilidad en lugar de pagar el costo mucho más alto de proporcionar tolerancia a fallas. Además, en la mayoría de las configuraciones de alta disponibilidad, los procesadores de respaldo están disponibles para su uso durante el funcionamiento normal.
Los sistemas de alta disponibilidad son una excelente solución para aplicaciones que deben restaurarse rápidamente y pueden soportar una breve interrupción en caso de que ocurra una falla. Algunas industrias tienen aplicaciones en las que el tiempo es tan crítico que no pueden soportar ni siquiera unos segundos de tiempo de inactividad. Sin embargo, muchas otras industrias pueden soportar pequeños períodos de tiempo cuando su base de datos no está disponible.
¿Qué aplicaciones demanda este tipo de infraestructura?
Esta pregunta nos lleva a la interrogante: ¿qué significa la alta disponibilidad para una organización? Para la infraestructura crítica, como las salas de emergencia de los hospitales o plantas de suministro de energía, la minería u otras industrias que requieren de un funcionamiento 24x7x365, incluso con los seis nueves de disponibilidad se podrían poner en riesgo vidas humanas. Para estos casos de uso específicos, se implementan varias capas redundantes de sistema de TI e infraestructura de energía de servicios públicos para alcanzar cifras de alta disponibilidad cercanas al 100%, como pueden ser los nueve nueves (99,9999999%) o tal vez, incluso mejores.
En términos simples, todo lleva hacia a la redundancia. La redundancia se refiere al principio de diseño del sistema que implica la duplicación de componentes que constituyen los sistemas de TI para lograr este objetivo. La duplicación, entonces, se refiere a la confiabilidad del sistema. El modelo de redundancia puede seguir varios principios de diseño, generalmente descritos como redundancia N-Modular. Esta duplicación puede aplicarse al hardware, la información, el software, así como al tiempo que rige el funcionamiento de un sistema de TI. Se pueden utilizar varias configuraciones de diseño de sistema redundante en función del riesgo asociado, el costo, el rendimiento y el impacto de la complejidad de la gestión. Estas configuraciones adoptan diversas formas, como N, N + 1, N + 2, 2N, 2N + 1, 2N + 2, y 3N / 2, entre otras. Estos múltiples niveles de topologías de redundancia se describen como N-Modular Redundancy (NMR).
Según el informe de investigación de 2016 del Ponemon Institute, el costo promedio de la interrupción del centro de datos aumentó en un 38% de US$500.000 a US$740.000 entre los años 2010 a 2016. Los data centers analizados incluyen el costo directo, indirecto y de oportunidad. Sin embargo, el costo de oportunidad varía significativamente entre los clientes, lo que obliga a algunos de ellos a buscar servicios de alta disponibilidad a un costo asequible, por lo que el servicio de TI general se considera confiable en función de todos los factores de decisión. Para los proveedores de servicios, se utiliza una gama de topologías de redundancia N, N + 1, N + 2, 2N, 2N + 1, 2N + 2, 3N / 2 y similares para cumplir con estos requisitos de confiabilidad.
¿Qué criterios considerar para una arquitectura adecuada?
Desde una perspectiva de TI empresarial, el tiempo de inactividad se asigna directamente a los flujos de ingresos perdidos y a los usuarios insatisfechos. Si bien los cálculos precisos varían enormemente entre las organizaciones, el promedio puede costar US$9.000 por minuto según una investigación reciente del Ponemon Institute. Para organizaciones tan grandes como Amazon, el costo del tiempo de inactividad es tan alto como US$13,22 millones por hora.
Entonces, ¿cómo puede maximizar la disponibilidad de sus servicios de TI para lograr el menor riesgo financiero y comercial? Puede seguir algunas de estas mejores prácticas probadas en la industria:
• Evalúe los requisitos de su negocio: Evalúe las TI desde una perspectiva empresarial y de usuario.
• Conozca el verdadero costo del tiempo de inactividad: Tome en cuenta a los clientes insatisfechos y la base de usuarios perdida.
• Comprenda sus SLA: ¿La disponibilidad corresponde a las métricas deseadas?
• Establezca el Objetivo de Punto de Recuperación (RPO) y el Objetivo de Tiempo de Recuperación (RTO) según su porcentaje de disponibilidad esperado: El sistema debe poder recuperarse a un estado anterior al período de inactividad más largo esperado. Por ejemplo, para cinco nueves, el RTO debe ser inferior a 30 segundos.
• Prepare un programa completo de recuperación ante desastres: Incluso con los SLA implementados, los proveedores solo reembolsan el costo del servicio de TI durante el período de inactividad. La oportunidad comercial perdida y los ingresos no se calculan.
• Introduzca la redundancia de forma estratégica: Las cargas de trabajo de TI de misión crítica necesitan más redundancia que otras cargas de trabajo de TI operativas a las que no se accede con frecuencia. Es posible que el costo de hacer que cada carga de trabajo sea redundante no proporcione ROI.
• Comprenda las métricas: Asegúrese de que usted y las partes interesadas pertinentes comprendan las diferencias y los propósitos de confiabilidad, disponibilidad y tiempo de actividad.