Quizás el mayor impacto en las operaciones sea la disponibilidad, y esto se debe a la abrupta migración de consumidores y empleados hacia experiencias digitales. Un porcentaje significativo de organizaciones luchó con el acceso remoto mientras los empleados se mudaban de la oficina al hogar.
Y es que lograr una alta disponibilidad no es sólo una cuestión de insertar un balanceador de carga en la ruta de datos. Ese es uno de los pasos necesarios para garantizar que una aplicación o sitio web permanezca disponible.
Por ello, y de acuerdo con lo que sugiere F5 Networks, primero hay que responder dos preguntas: ¿Cómo distribuir el tráfico entre servidores para una alta disponibilidad? ¿Y qué nivel de comprobación de estado se requiere para validar adecuadamente la disponibilidad de un servidor?
¿Cómo distribuir el tráfico entre servidores para alta disponibilidad?
Si deseamos hacer que una aplicación tradicional (cliente-servidor, web de tres niveles) sea muy disponible, debemos comprender los patrones de uso desde una perspectiva completamente diferente. Esto se debe a que un “servidor” es el responsable de ejecutar toda la lógica empresarial, como iniciar sesión u ordenar un producto, todo en el mismo “servidor”.
Como cada función empresarial tiene diferentes requisitos de cómputo, memoria, red y datos, eso significa que cada función pone una carga diferente en el “servidor”. Una sola instancia de “servidor” puede verse sobrecargada rápidamente al dirigirle demasiadas solicitudes con muchos recursos.
La mejor manera de optimizar la distribución de solicitudes para garantizar la disponibilidad de las aplicaciones tradicionales es utilizar un algoritmo basado en menos conexiones. Esto distribuirá la carga entre varias instancias de “servidores” y mantendrá estas solicitudes disponibles.
Ahora bien, para las aplicaciones modernas (basadas en microservicios), sigue siendo una buena idea utilizar un algoritmo basado en menos conexiones porque algunas solicitudes de la misma función pueden consumir más recursos que otras. Sin embargo, el tráfico está naturalmente equilibrado, por lo que casi cualquier algoritmo servirá para mantener todos los “servidores” disponibles.
¿Qué nivel de comprobación de estado se requiere para validar adecuadamente la disponibilidad de un servidor?
De acuerdo con F5, se requieren las siguientes medidas de observación:
- Conectividad de red.
- Capacidad de transporte.
- Plataforma HTTP.
- Disponibilidad de la aplicación.
Estos componentes de la observación son importantes. Si se pierde la conectividad de la red, el resto pierde importancia. Por lo tanto, es necesario vigilar y verificar tales componentes.
No importa cuál sea la arquitectura de la aplicación. Todas las aplicaciones dependen de la red, el transporte y las capas de la plataforma.
Donde la arquitectura hace la diferencia es en la capa de la aplicación, porque la arquitectura puede restringir la forma en que se determina si la aplicación funciona o no.
Usted siempre debe pedir la forma de “verificar el estado” de la aplicación durante el desarrollo. La “verificación de estado” ofrece a los desarrolladores una forma fácil de verificar que la aplicación funciona correctamente. Esto puede incluir una funcionalidad que verifique la conectividad a recursos externos como datos o APIs de socios.
Debido a que la falla de cualquiera de estos componentes puede hacer que la aplicación no esté disponible o no responda, es importante verificar la disponibilidad de todos los componentes.
La alta disponibilidad es más difícil de lo que parece
A menudo se cree que la alta disponibilidad es tan simple como clonar un servidor y colocar un balanceador de carga frente a él. Pero la realidad es que existen consideraciones serias, así como medidas y preparación necesarias para garantizar que una aplicación esté altamente disponible.
No se trata sólo de asegurarse de que haya instancias disponibles, señala F5. Se trata de asegurarse que todas sus aplicaciones dependientes estén disponibles y distribuir las solicitudes de una manera que no sobrecargue a ninguna instancia determinada.