Significado de Escalabilidad
Sustantivo femenino. Derivado de «escalable», y este de «escala» (del latín scala, «escalera»). En informática calca el uso del inglés scalability.
La escalabilidad es la capacidad de un sistema informático para atender una carga de trabajo mayor sin perder rendimiento, añadiendo recursos de forma proporcional al crecimiento de esa carga.
Un sistema poco escalable puede funcionar bien con pocos usuarios y volverse lento o inestable en cuanto la demanda aumenta, aunque se le añadan más recursos.
Qué es la escalabilidad
Un sistema escalable responde a un aumento de trabajo —más usuarios, más datos, más peticiones por segundo— añadiendo recursos y manteniendo un rendimiento razonable, en lugar de degradarse o dejar de funcionar. La escalabilidad no es lo mismo que el rendimiento en un momento dado: un sistema puede ser muy rápido con la carga actual y, aun así, escalar mal si ese rendimiento se derrumba en cuanto la carga se multiplica.
Evaluar la escalabilidad de un sistema implica pensar por adelantado en su crecimiento: qué parte se saturará primero, qué recursos hace falta añadir para aliviarla y si esos recursos se pueden sumar sin rediseñar el sistema entero. Un diseño pensado desde el principio para escalar suele ser más sencillo de ampliar que uno al que se le añade esa capacidad después.
La estudia la ingeniería de software y de sistemas, dentro del diseño de arquitecturas capaces de sostener un crecimiento sin que el coste de mantenerlas crezca todavía más rápido que la propia carga de trabajo.
Origen de la palabra escalabilidad
Deriva de «escalable», adjetivo formado sobre «escala», del latín scala, «escalera, serie de peldaños». La idea de «subir de escala» —de un tamaño pequeño a uno mayor, conservando la misma estructura— se trasladó a la informática para describir sistemas capaces de crecer de forma ordenada. En inglés, la voz equivalente es scalability.
El concepto ganó relevancia a medida que los sistemas informáticos pasaron de atender a un número reducido y predecible de usuarios a tener que soportar picos de demanda muy variables. Diseñar pensando en la escalabilidad se convirtió entonces en un criterio habitual al planificar la arquitectura de cualquier sistema que pudiera crecer con el tiempo.
Tipos de escalabilidad
| Tipo | En qué consiste | Ejemplo |
|---|---|---|
| Vertical | Aumenta la capacidad de un mismo componente, dándole más potencia de procesamiento o memoria. | Ampliar la memoria del servidor que aloja una aplicación. |
| Horizontal | Añade más componentes iguales que se reparten la carga de trabajo entre sí. | Sumar varios servidores que atienden peticiones en paralelo. |
La escalabilidad vertical tiene un límite físico claro, porque un único componente solo puede ampliarse hasta cierto punto; la escalabilidad horizontal, en cambio, permite seguir añadiendo componentes casi sin límite teórico, aunque exige que el sistema esté diseñado para repartir el trabajo entre varios de ellos de forma coordinada.
Ejemplos de uso de escalabilidad
Los responsables del proyecto priorizaron la escalabilidad del sistema desde el diseño inicial, previendo que el número de usuarios crecería con rapidez.
La aplicación dejó de responder cuando aumentó el tráfico, señal de que su escalabilidad no estaba bien planificada.
El equipo optó por escalabilidad horizontal, añadiendo más servidores en lugar de sustituir el existente por uno más potente.
Durante la entrevista, le preguntaron cómo diseñaría la escalabilidad de un sistema que debe atender picos de demanda muy variables.
Sinónimos y palabras relacionadas
Sinónimos: capacidad de crecimiento (uso descriptivo, no técnico).
Antónimos: rigidez, saturación; por contraste, un sistema «poco escalable» es aquel que se degrada al crecer la carga.
No es lo mismo que:
- Rendimiento: describe la velocidad de un sistema en un momento dado; la escalabilidad describe cómo se comporta ese rendimiento cuando aumenta la carga de trabajo.
- Disponibilidad: mide si un sistema sigue accesible a pesar de fallos; la escalabilidad mide si sigue funcionando bien a pesar de un aumento de la demanda.
- Tolerancia a fallos: se ocupa de que el sistema siga operando aunque falle una parte; la escalabilidad se ocupa de que siga operando bien aunque crezca la carga.
Preguntas frecuentes sobre escalabilidad
¿Qué diferencia hay entre escalabilidad vertical y horizontal?
La vertical aumenta la capacidad de un único componente, dándole más potencia; la horizontal añade más componentes que se reparten la carga entre sí. La vertical tiene un límite físico más cercano; la horizontal escala mejor a largo plazo, pero exige un diseño más complejo.
¿Por qué un sistema rápido puede tener mala escalabilidad?
Porque la velocidad actual no garantiza que el sistema se comporte igual con una carga mucho mayor: puede funcionar bien con pocos usuarios y colapsar cuando esa cifra se multiplica, si no fue diseñado pensando en ese crecimiento.
¿Se puede añadir escalabilidad a un sistema ya construido?
Es posible, pero suele requerir cambios importantes en su arquitectura, porque muchas decisiones de diseño iniciales condicionan cómo de fácil resulta después repartir la carga entre más recursos.