Escalabilidad
Qué tan bien sigue andando un sistema cuando tiene que aguantar mucho más.
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.
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.