Escalabilidad en la Nube: Vertical vs Horizontal y Alta Disponibilidad

Clase 22 de 27Curso de Introducción a la Nube

Contenido del curso

Resumen

Diseñar aplicaciones que soporten millones de usuarios en momentos pico y reduzcan costos cuando la demanda baja es uno de los pilares fundamentales de la computación en la nube. La escalabilidad permite exactamente eso: ajustar los recursos de forma dinámica para que tu aplicación nunca se caiga cuando más la necesitas, y tampoco pagues de más cuando el tráfico disminuye.

¿Qué es la escalabilidad y por qué es crítica para tu aplicación?

La escalabilidad es la capacidad de incrementar o decrementar los recursos necesarios para cumplir con la demanda de un servicio [0:13]. Imagina una aplicación como Platzi Wallet que lanza una promoción en Black Friday: los usuarios que paguen con ella obtienen descuentos increíbles. En ese momento, las transacciones pueden pasar de miles a millones en cuestión de horas.

  • Los servicios deben crecer rápidamente para soportar la carga.
  • Una vez que pasa el pico, deben decrecer a su estado original.
  • Dejar recursos encendidos sin necesidad va en contra del principio de pago por uso de la nube.

El ejemplo es claro: si durante el momento de mayor movimiento de dinero la aplicación se cae, el impacto es enorme. Por eso, la escalabilidad no es opcional, es una necesidad de diseño [1:40].

¿Cómo funciona un balanceador de carga en un escenario escalable?

En una arquitectura distribuida, un balanceador de aplicaciones recibe las peticiones de los usuarios y las distribuye entre los microservicios disponibles en distintas zonas de disponibilidad [1:05]. Cuando llegan pocos usuarios, el balanceador reparte la carga entre los nodos existentes. Pero cuando el tráfico crece exponencialmente, esos pocos nodos no son suficientes y necesitan multiplicarse.

¿Cuál es la diferencia entre escalabilidad vertical y horizontal?

Existen dos tipos fundamentales de escalabilidad, y entender sus diferencias es clave para tomar decisiones de arquitectura acertadas.

¿Qué implica la escalabilidad vertical?

La escalabilidad vertical consiste en añadir más recursos al mismo nodo: más CPU, más RAM o más disco [2:42]. El proceso funciona así:

  • Tienes un servidor corriendo tu aplicación.
  • Sabes que viene un pico de demanda, así que necesitas un servidor más potente.
  • Apagas el servidor, aumentas sus recursos y lo vuelves a encender.

El problema principal es evidente: hay caída del servicio (downtime) durante el proceso [3:18]. La cantidad de servidores no cambia, sigue siendo uno solo pero más grande. Y cuando pasa el pico, debes repetir el proceso a la inversa: apagar, reducir recursos y encender de nuevo. Esto genera otra interrupción.

¿Por qué la escalabilidad horizontal es la opción preferida?

La escalabilidad horizontal agrega más nodos para soportar una demanda creciente [3:42]. En lugar de hacer más grande un solo servidor, se replican los microservicios o servidores existentes.

  • La cantidad de nodos crece según la carga: de cuatro microservicios puedes pasar a ocho, doce o más.
  • No hay downtime: el crecimiento es casi inmediato.
  • Al decrecer, tampoco hay interrupción del servicio.
  • Funciona tanto con microservicios como con servidores tradicionales.

Esta es la razón por la que la escalabilidad horizontal es la favorita en arquitecturas modernas en la nube [3:55].

¿Por qué la escalabilidad necesita alta disponibilidad?

Hay una relación indirecta pero fundamental entre ambos conceptos [4:28]. Puedes ser muy escalable, pero si solo escalas en una zona de disponibilidad, pierdes alta disponibilidad. Si esa única zona falla, toda tu aplicación cae sin importar cuántos nodos tengas.

Las mejores prácticas indican que tu aplicación debe ser:

  • Escalable en todas las capas, no solo en una.
  • Capaz de ajustar su capacidad automáticamente según la demanda.
  • Resiliente a cambios y picos de tráfico.
  • Distribuida en múltiples zonas para garantizar disponibilidad continua.

Diseñar con escalabilidad y alta disponibilidad desde el inicio permite construir aplicaciones que resisten los momentos más críticos sin interrupciones y sin costos innecesarios. ¿Has tenido que decidir entre escalabilidad vertical u horizontal en algún proyecto? Comparte tu experiencia.

      Escalabilidad en la Nube: Vertical vs Horizontal y Alta Disponibilidad