Contenido del curso

Escalabilidad vertical vs horizontal en la nube

Resumen

La escalabilidad en la nube es la capacidad de aumentar o disminuir recursos según la demanda de tu aplicación. Si manejas un servicio como Platzi Wallet y se viene Black Friday, necesitas que tu infraestructura crezca para soportar millones de transacciones y luego vuelva a su tamaño original cuando pase el pico. Aquí te explico cómo funciona y por qué importa para construir aplicaciones resilientes.

¿Por qué la escalabilidad es clave en aplicaciones cloud?

Piensa en Platzi Wallet lanzando una promoción de mes de las madres con 10% de descuento. Las transacciones se disparan. Si tu aplicación no escala, se cae justo en el momento de mayor movimiento de dinero. Y eso, simplemente, no puede pasar.

La escalabilidad te permite responder a esos picos sin sacrificar la experiencia del usuario. Pero también funciona al revés: cuando termina Black Friday, los recursos deben decrecer porque en la nube pagas por uso. Dejar servidores prendidos sin necesidad va en contra de todos los principios cloud.

¿Qué es la escalabilidad en cloud computing? Es la capacidad de incrementar o decrementar los recursos de tu infraestructura para cumplir con la demanda del servicio en cada momento.

¿Cómo se ve la escalabilidad con un ejemplo real?

Imagina Platzi Wallet distribuida en dos zonas de disponibilidad, con un balanceador de aplicaciones y dos microservicios de pagos en cada zona [01:30]. Cuando un usuario hace una petición, el balanceador la dirige a uno de los servicios disponibles.

Ahora llega Black Friday y aparecen 100.000, un millón, 10 millones de usuarios comprando. Esos cuatro microservicios no aguantan. Lo ideal es que los servicios crezcan rápidamente, soporten la carga y, al pasar el pico, vuelvan a su estado original.

¿Cuáles son los tipos de escalabilidad en la nube?

Existen dos formas de escalar tu infraestructura, y cada una tiene implicaciones muy distintas en cuanto a tiempo, costo y disponibilidad del servicio.

¿Qué es la escalabilidad vertical y cuándo evitarla?

La escalabilidad vertical es la capacidad de añadir más recursos al mismo nodo para que crezca y soporte una demanda mayor [03:30]. En la práctica, tomas tu servidor con Platzi Wallet, lo apagas, le aumentas CPU, RAM y disco, y lo vuelves a prender.

Aquí pasan tres cosas que debes tener claras:

  • La cantidad de servidores no cambia, sigue siendo el mismo nodo.
  • Hay caída del servicio porque tienes que apagarlo para modificarlo.
  • Cuando termina el pico, repites el proceso para reducir tamaño y vuelve a haber downtime.

Por eso conviene evitarla al máximo: siempre hay caída del servicio.

¿Qué es la escalabilidad horizontal y por qué es la favorita?

La escalabilidad horizontal es la capacidad de agregar más nodos para soportar una demanda creciente [04:50]. En lugar de hacer un servidor más grande, replicas microservicios o servidores adicionales que comparten la carga.

¿Cuál es la diferencia entre escalabilidad horizontal y vertical? La vertical agrega recursos al mismo servidor y genera downtime. La horizontal agrega más servidores o nodos sin caída del servicio y permite crecer y decrecer de forma casi inmediata.

Las ventajas son claras:

  • No hay downtime al escalar hacia arriba.
  • Tampoco hay downtime al decrecer cuando pasa la demanda.
  • El crecimiento es prácticamente inmediato cuando trabajas con microservicios.

Si escalas con servidores completos en lugar de microservicios, el crecimiento es un poco más lento, pero sigue siendo horizontal y sin interrupciones.

¿Sirve la escalabilidad sin alta disponibilidad?

Aquí está el detalle que muchos pasan por alto. Puedes diseñar una aplicación muy escalable, pero si solo escalas dentro de una sola zona de disponibilidad, pierdes alta disponibilidad. Si esa zona falla, todo cae sin importar cuántos nodos tengas replicados.

Por eso en los diagramas la escalabilidad siempre aparece distribuida en más de una zona. Escalabilidad y alta disponibilidad son conceptos que se complementan, no se reemplazan.

¿Por qué la escalabilidad debe combinarse con alta disponibilidad? Porque escalar en una sola zona no protege ante fallos regionales. Distribuir nodos en varias zonas asegura que tu aplicación siga operando aunque una zona falle.

¿Cómo diseñar una aplicación escalable en todas sus capas?

La meta es que tu arquitectura ajuste su capacidad de forma automática, crezca o decrezca según la demanda real y esté distribuida para resistir fallos. Eso te permite construir aplicaciones resilientes a los cambios de tráfico y al comportamiento impredecible de los usuarios.

Cuéntame en los comentarios cómo aplicarías escalabilidad horizontal en un proyecto que estés trabajando.