# Escalabilidad

> Qué tan bien sigue andando un sistema cuando tiene que aguantar mucho más.

- Nivel: Básico
- Temas: Cloud
- URL: https://tidbit.legios.com.ar/es/scalability/
- En inglés: [Scalability](https://tidbit.legios.com.ar/scalability/)

La **escalabilidad** es la capacidad de un sistema de atender más trabajo (más usuarios, más datos, más pedidos) sumando recursos, sin tener que rediseñarlo de cero. Una tienda online que anda bien con cien visitas y también con cien mil, con solo agregar máquinas, es escalable. Una que se arrastra y necesita reescribirse, no.

Hay dos formas básicas de crecer. El **escalado vertical** (scale up) es poner una máquina más grande: más CPU, más RAM. Es simple, pero tiene techo y deja un único punto de falla. El **escalado horizontal** (scale out) es sumar más máquinas del mismo tamaño trabajando en paralelo, con un balanceador de carga que reparte el tráfico. Casi no tiene techo, pero el software tiene que estar armado para que cualquier copia pueda responder cualquier pedido.

La nube hizo que escalar horizontalmente fuera barato y rápido: podés alquilar diez servidores más en minutos y devolverlos mañana. Por eso hoy la escalabilidad es más una cuestión de diseño que de hardware. Lo que peor escala suele ser lo que comparte estado, como una única base de datos donde escriben todos.

## Una analogía

Una panadería que se pone de moda. Puede comprar un horno más grande (vertical) o abrir más sucursales con el mismo horno (horizontal). El horno grande es más fácil, pero un horno no puede crecer para siempre.

## Para quedarse

- Escalable quiere decir que se aguanta más carga sumando recursos, no rehaciendo todo.
- Vertical: una máquina más grande. Horizontal: más máquinas.
- Escalar horizontalmente pide apps donde cualquier copia atienda cualquier pedido.
- El estado compartido, muchas veces la base de datos, es el cuello de botella típico.

## Para seguir leyendo

- [Escalabilidad en Wikipedia](https://es.wikipedia.org/wiki/Escalabilidad)

## Términos relacionados

- [CPU](https://tidbit.legios.com.ar/es/cpu/): El chip que ejecuta tus programas, una instrucción tras otra, muy rápido.
- [RAM](https://tidbit.legios.com.ar/es/ram/): La memoria de corto plazo de la computadora: rápida, chica y se borra al apagar.
- [Balanceador de carga](https://tidbit.legios.com.ar/es/load-balancer/): El agente de tránsito que reparte los pedidos que llegan entre muchos servidores.
- [Computación en la nube](https://tidbit.legios.com.ar/es/cloud-computing/): Alquilar computadoras por internet en vez de comprar las tuyas.
- [Servidor](https://tidbit.legios.com.ar/es/server/): Una computadora cuyo trabajo es responder pedidos de otras computadoras, todo el día.
- [Base de datos](https://tidbit.legios.com.ar/es/database/): Un depósito ordenado de datos que los programas consultan y actualizan sin riesgo.
