FlipServer implementa un verdadero esfuerzo de alta disponibilidad por cinco nueves para sistemas críticos en Public Cloud

Alta disponibilidad (HA) en nubes públicas

La alta disponibilidad (HA) es la capacidad de un sistema para operar continuamente sin fallar durante un período de tiempo designado. HA trabaja para garantizar que un sistema cumpla con un nivel de rendimiento operativo acordado. En tecnología de la información (TI), un estándar de disponibilidad ampliamente aceptado pero difícil de alcanzar se conoce como disponibilidad de cinco nueves, lo que significa que el sistema o producto está disponible el 99,999% del tiempo.

Los sistemas de alta disponibilidad deben estar bien diseñados y probados minuciosamente antes de su uso. La planificación de uno de estos sistemas requiere que todos los componentes cumplan con el estándar de disponibilidad deseado. Las capacidades de respaldo de datos y conmutación por error juegan un papel importante para garantizar que los sistemas de alta disponibilidad cumplan con sus objetivos de disponibilidad. Los diseñadores de sistemas también deben prestar mucha atención al almacenamiento de datos y a la tecnología de acceso que utilizan.

¿Cómo funciona la alta disponibilidad?

Es imposible que los sistemas estén disponibles el 100% del tiempo, por lo que los verdaderos sistemas de alta disponibilidad generalmente luchan por cinco nueves como estándar de rendimiento operativo.

Los siguientes tres principios se utilizan al diseñar sistemas HA para garantizar una alta disponibilidad:

  • Puntos únicos de falla. Un solo punto de falla es un componente que haría que todo el sistema fallara si fallara. Si una empresa tiene un servidor que ejecuta una aplicación, ese servidor es un único punto de falla. Si ese servidor falla, la aplicación no estará disponible.
  • Crossover confiable. También es importante incorporar redundancia en estos sistemas. La redundancia permite que un componente de respaldo sustituya a uno que falla. Cuando esto sucede, es necesario garantizar un cruce o una conmutación por error confiable, que es el acto de cambiar del componente X al componente Y sin perder datos ni afectar el rendimiento.
  • Detectabilidad de fallas. Las fallas deben ser visibles e, idealmente, los sistemas tienen automatización incorporada para manejar la falla por sí mismos. También debe haber mecanismos incorporados para evitar fallas por causas comunes, donde dos o más sistemas o componentes fallan simultáneamente, probablemente por la misma causa.

Para garantizar una alta disponibilidad cuando muchos usuarios acceden a un sistema, el equilibrio de carga se vuelve necesario. El equilibrio de carga distribuye automáticamente las cargas de trabajo a los recursos del sistema, como el envío de diferentes solicitudes de datos a diferentes servicios alojados en una arquitectura de nube híbrida. El equilibrador de carga decide qué recurso del sistema es más capaz de manejar de manera eficiente qué carga de trabajo. El uso de varios equilibradores de carga para hacer esto asegura que ningún recurso se vea abrumado.

Los servidores de un sistema HA están en clústeres y organizados en una arquitectura por niveles para responder a las solicitudes de los equilibradores de carga. Si falla un servidor en el clúster, un servidor replicado en otro clúster puede manejar la carga de trabajo designada para el servidor fallado. Este tipo de redundancia permite la conmutación por error cuando un componente secundario se hace cargo del trabajo de un componente principal cuando falla el primer componente, con un impacto mínimo en el rendimiento.

Cuanto más complejo es un sistema, más difícil es garantizar una alta disponibilidad porque simplemente hay más puntos de falla en un sistema complejo.

¿Por qué es importante la alta disponibilidad?

Los sistemas que deben estar en funcionamiento la mayor parte del tiempo son a menudo los que afectan la salud, el bienestar económico y el acceso a los alimentos, la vivienda y otros elementos fundamentales de la vida de las personas. En otras palabras, son sistemas o componentes que tendrán un impacto severo en una empresa o en la vida de las personas si caen por debajo de cierto nivel de desempeño operativo.

Ejemplo: como se mencionó anteriormente, los vehículos autónomos son candidatos claros para los sistemas HA. Por ejemplo, si el sensor que mira hacia el frente de un automóvil autónomo no funciona correctamente y confunde el costado de un camión de 18 ruedas con la carretera, el automóvil se estrellará. Aunque, en este escenario, el automóvil era funcional, la falla de uno de sus componentes para cumplir con el nivel necesario de desempeño operativo resultó en lo que probablemente sería un accidente grave.

Cómo se mide la disponibilidad

La disponibilidad se puede medir en relación con un sistema que está 100% operativo o que nunca falla, lo que significa que no tiene interrupciones. Normalmente, un porcentaje de disponibilidad se calcula de la siguiente manera:
Disponibilidad = (minutos en un mes - minutos de tiempo de inactividad) * 100 / minutos en un mes

Tres métricas utilizadas para medir la disponibilidad incluyen las siguientes:
Tiempo medio entre fallos (MTBF) es el tiempo esperado entre dos fallas para el sistema dado.
Tiempo de inactividad medio (MDT) es el tiempo promedio que un sistema no está operativo.
Objetivo de tiempo de recuperación (RTO), también conocido como tiempo estimado de reparación, es el tiempo total que llevará una interrupción planificada o la recuperación de una interrupción no planificada.

Estas métricas se pueden utilizar para sistemas internos o por proveedores de servicios para prometer a los clientes un cierto nivel de servicio según lo estipulado en un acuerdo de nivel de servicio (SLA). Los SLA son contratos que especifican el porcentaje de disponibilidad que los clientes pueden esperar de un sistema o servicio.

Las métricas de disponibilidad están sujetas a interpretación en cuanto a lo que constituye la disponibilidad del sistema o servicio para el usuario final. Incluso si los sistemas continúan funcionando parcialmente, los usuarios pueden considerarlo inutilizable debido a problemas de rendimiento. A pesar de este nivel de subjetividad, las métricas de disponibilidad se formalizan concretamente en SLAs, que el proveedor de servicios o sistema se encarga de satisfacer.

Si un sistema o SLA proporciona una disponibilidad del 99,999%, el usuario final puede esperar que el servicio no esté disponible durante los siguientes períodos de tiempo: Para proporcionar contexto, si una empresa se adhiere al estándar de los tres nueves (99,9%), habrá aproximadamente 8 horas y 45 minutos de inactividad del sistema en un año. El tiempo de inactividad con un estándar de dos nueves es aún más dramático; La disponibilidad del 99% equivale a poco más de tres días de inactividad al año.

Cómo lograr una alta disponibilidad

Los seis pasos para lograr una alta disponibilidad son los siguientes:

  • Diseñe el sistema teniendo en cuenta la HA. El objetivo de diseñar un sistema HA es crear uno que se adhiera a las convenciones de rendimiento al tiempo que minimiza el costo y la complejidad. Los puntos de falla deben eliminarse con redundancia, según sea necesario.
  • Defina las métricas de éxito. Es necesario determinar el nivel de disponibilidad que necesita el sistema y qué métricas se utilizarán para medirlo. Los proveedores de servicios involucran a los clientes en este proceso a través de un SLA.
  • Implemente el hardware. El hardware debe ser resistente y equilibrar la calidad con la rentabilidad. El hardware intercambiable y conectable en caliente es particularmente útil en los sistemas HA porque el hardware no tiene que apagarse cuando se cambia o cuando los componentes están conectados o desconectados.
  • Pruebe el sistema de conmutación por error. Una vez que el sistema está en funcionamiento, se debe verificar el sistema de conmutación por error para asegurarse de que esté listo para asumir el control en caso de falla. Las aplicaciones deben probarse y volver a probarse a medida que pasa el tiempo, y debe establecerse un programa de pruebas.
  • Supervise el sistema. Se debe realizar un seguimiento del rendimiento del sistema mediante métricas y observación. Cualquier variación de la norma debe registrarse y evaluarse para determinar cómo se vio afectado el sistema y qué ajustes se requieren.
  • Evaluar. Analice los datos recopilados a partir del monitoreo y luego encuentre formas de mejorar el sistema. Continúe garantizando la disponibilidad a medida que cambian las condiciones y el sistema evoluciona.

Alta disponibilidad y tolerancia a fallos

Al igual que la recuperación ante desastres, la tolerancia a fallos ayuda a garantizar una alta disponibilidad. La tolerancia a fallas es la capacidad de un sistema para soportar y anticipar errores en las funciones del sistema y responder automáticamente en caso de error. Un sistema tolerante a fallas requiere redundancia para minimizar las interrupciones en caso de falla del hardware.

Para obtener redundancia, las organizaciones de TI deben seguir una estrategia N + 1, N + 2, 2N o 2N + 1. N representa el número de, digamos, servidores necesarios para mantener el sistema en funcionamiento. Un modelo N + 1 requiere todos los servidores necesarios para ejecutar el sistema más uno adicional. Un modelo 2N requeriría el doble de servidores de los que normalmente necesita el sistema. Un enfoque 2N + 1 significa el doble de servidores de los que necesita más uno más. Estas estrategias garantizan que los componentes de misión crítica reciban al menos una copia de seguridad.

Es posible que un sistema tenga una alta disponibilidad pero no tolere fallas. Por ejemplo, si un sistema de alta disponibilidad experimenta un problema para alojar una máquina virtual en un servidor en un grupo de nodos, pero el sistema no es tolerante a fallas, el hipervisor puede intentar reiniciar la máquina virtual en el mismo grupo de hosts. Es probable que esto tenga éxito si el problema está basado en software. Sin embargo, si el problema está relacionado con el hardware del clúster, reiniciarlo en el mismo clúster no solucionará el problema, porque la máquina virtual está alojada en el mismo clúster roto.

Un enfoque tolerante a fallas en la misma situación probablemente tendría una estrategia N + 1 implementada y reiniciaría la VM en un servidor diferente en un clúster diferente. Es más probable que la tolerancia a fallas garantice un tiempo de inactividad cero. Una estrategia de DR iría un paso más allá para garantizar que haya una copia de todo el sistema en otro lugar para usar en caso de una catástrofe.

Mejores prácticas de alta disponibilidad

Un sistema de alta disponibilidad debería poder recuperarse rápidamente de cualquier tipo de estado de falla para minimizar las interrupciones para el usuario final. Las mejores prácticas de alta disponibilidad incluyen lo siguiente:

  • Elimine puntos únicos de falla o cualquier nodo que pueda afectar el sistema si se vuelve disfuncional.
  • Asegúrese de que todos los sistemas y datos estén respaldados para una recuperación rápida y fácil.
  • Utilice el equilibrio de carga para distribuir el tráfico de la red y las aplicaciones entre servidores u otro hardware. Un ejemplo de un equilibrador de carga redundante es HAProxy.
  • Supervise continuamente el estado de los servidores de bases de datos back-end.
  • Distribuir recursos en diferentes regiones geográficas en caso de cortes de energía o desastres naturales.
  • Implemente una conmutación por error confiable. En términos de almacenamiento, una matriz redundante de discos independientes (RAID) o una red de área de almacenamiento (SAN) son enfoques comunes.
  • Configure un sistema que detecte fallas tan pronto como ocurran.
  • Diseñe piezas del sistema para una alta disponibilidad y pruebe su funcionalidad antes de la implementación.

Alta disponibilidad y la nube

Como se mencionó anteriormente, existe un elemento subjetivo para la alta disponibilidad. Dependiendo del sistema, la cantidad de tiempo de actividad necesaria variará. En la computación en nube, el nivel de servicio es especialmente variable.

El servicio FlipServe Cloud proporciona al menos un 99,9% de disponibilidad para sus servicios de alta disponibilidad; más recientemente, y hay algunas aplicaciones en las que podemos lograr una disponibilidad del 99,99%. La pregunta sigue siendo, ¿qué aplicaciones necesitan este nivel de disponibilidad?

Cuéntenos sus requisitos.

Programe una llamada de descubrimiento con uno de nuestros expertos para analizar sus requisitos de transformación en la nube.

¡Hablemos!