Escalabilidad en la Nube: Vertical vs Horizontal y Alta Disponibilidad
Clase 22 de 27 • Curso de Introducción a la Nube
Resumen
¿Qué es la escalabilidad y por qué es importante?
La escalabilidad es un concepto fundamental en el mundo de la nube, permitiendo a las aplicaciones manejar variaciones en la demanda del servicio. Imagina que un servicio como Platts & Wallen lanza una promoción en Black Friday, atrayendo millones de transacciones. La clave está en escalar adecuadamente la aplicación para soportar tal carga sin caerse, y luego reducir los recursos cuando la demanda disminuya, manteniendo bajo control los costos.
La escalabilidad no solo asegura que las aplicaciones respondan flexiblemente a la demanda, sino que también optimiza el uso de recursos de manera eficiente. Esto es vital para cualquier empresa que busque aprovechar el máximo de sus servicios en la nube.
¿Qué tipos de escalabilidad existen?
¿Cómo funciona la escalabilidad vertical?
La escalabilidad vertical implica añadir más recursos a un solo servidor o nodo para gestionar un aumento en la demanda. En términos prácticos, si un servidor necesita manejar más usuarios de los que puede soportar, se aumentan capacidades como la CPU, RAM y almacenamiento.
- Proceso:
- Apagar el servidor.
- Aumentar sus recursos.
- Encenderlo nuevamente.
La desventaja aquí es el downtime (o tiempo de inactividad), ya que es necesario reiniciar el servidor cada vez que se ajustan los recursos. Este tipo de escalabilidad tiene sus limitaciones, ya que eventualmente se alcanzará el límite físico de lo que un solo servidor puede manejar.
¿Qué es la escalabilidad horizontal?
Por otro lado, la escalabilidad horizontal se refiere a agregar más nodos o servidores para distribuir la carga de trabajo. Esto no solo soporta una mayor demanda, sino que lo hace con una interrupción mínima o inexistente del servicio.
- Ventajas:
- No hay downtime al escalar.
- Permite un crecimiento casi instantáneo de recursos.
- Ofrece redundancia, ayudando a mantener la alta disponibilidad.
Este método es más flexible, permitiendo añadir y quitar nodos según la fluctuación de usuarios, y es el preferido cuando se busca mantener el servicio siempre disponible.
¿La escalabilidad sin alta disponibilidad es suficiente?
La escalabilidad en sí misma no es suficiente sin un diseño que también considere la alta disponibilidad. Aunque se manejen grandes volúmenes de usuarios y transacciones, si este crecimiento ocurre en una sola zona de disponibilidad, se corre el riesgo de perder acceso al servicio si esa zona falla.
Para asegurarse de que una aplicación esté realmente preparada para el tráfico y los picos inesperados sin sacrificar el rendimiento, debe:
- Diseñarse para operar a través de múltiples zonas de disponibilidad.
- Escalar horizontalmente para repartir la carga.
- Responder dinámicamente a la demanda de los usuarios con un soporte integral en todas sus capas.
Al unir escalabilidad con alta disponibilidad, se mejora tanto la resiliencia como la capacidad de la aplicación para sostener cambios y demandas continuas, dotando al servicio de la robustez necesaria en el entorno competitivo actual de la tecnología.