La escalabilidad es la propiedad de un sistema para manejar una cantidad creciente de trabajo. Una definición para sistemas de software especifica que esto se puede lograr agregando recursos al sistema. [ 1 ]
En un contexto económico , un modelo de negocio escalable implica que una empresa puede aumentar sus ventas con mayores recursos. Por ejemplo, un sistema de entrega de paquetes es escalable porque se pueden entregar más paquetes añadiendo más vehículos de reparto. Sin embargo, si todos los paquetes tuvieran que pasar primero por un único almacén para su clasificación, el sistema no sería tan escalable, ya que un almacén solo puede gestionar un número limitado de paquetes. [ 2 ]
En informática, la escalabilidad es una característica de las computadoras, redes, algoritmos , protocolos de red , programas y aplicaciones. Un ejemplo es un motor de búsqueda , que debe soportar un número creciente de usuarios y de temas que indexa . [ 3 ] Webscale es un enfoque de arquitectura informática que traslada las capacidades de las grandes empresas de computación en la nube a los centros de datos empresariales. [ 4 ]
En los sistemas distribuidos , existen varias definiciones según los autores; algunos consideran la escalabilidad como un subconcepto de elasticidad , mientras que otros la definen como un concepto distinto. Según Marc Brooker: «un sistema es escalable en el rango donde el costo marginal de la carga de trabajo adicional es prácticamente constante». Las tecnologías sin servidor se ajustan a esta definición, pero es necesario considerar el costo total de propiedad, no solo el costo de la infraestructura. [ 5 ]
En matemáticas, la escalabilidad se refiere principalmente al cierre bajo la multiplicación escalar .
En ingeniería industrial y manufactura, la escalabilidad se refiere a la capacidad de un proceso, sistema u organización para manejar una carga de trabajo creciente, adaptarse a demandas cada vez mayores y mantener la eficiencia operativa. Un sistema escalable puede gestionar eficazmente mayores volúmenes de producción, nuevas líneas de productos o mercados en expansión sin comprometer la calidad ni el rendimiento. En este contexto, la escalabilidad es un factor vital para las empresas que buscan satisfacer las expectativas de los clientes, mantenerse competitivas y lograr un crecimiento sostenible. Entre los factores que influyen en la escalabilidad se incluyen la flexibilidad del proceso de producción, la adaptabilidad de la fuerza laboral y la integración de tecnologías avanzadas. Al implementar soluciones escalables, las empresas pueden optimizar la utilización de recursos, reducir costos y agilizar sus operaciones. La escalabilidad en ingeniería industrial y manufactura permite a las empresas responder a las fluctuaciones del mercado, aprovechar las oportunidades emergentes y prosperar en un entorno global en constante evolución.
Ejemplos
El Sistema de Comando de Incidentes (SCI) es utilizado por las agencias de respuesta a emergencias en los Estados Unidos. El SCI puede escalar la coordinación de recursos desde un incendio forestal en la carretera con un solo vehículo hasta un incendio forestal interestatal. El primer recurso en llegar al lugar establece el mando, con autoridad para solicitar recursos y delegar responsabilidades (gestionando de cinco a siete oficiales, quienes a su vez delegarán hasta siete, y así sucesivamente a medida que el incidente se agrava). A medida que el incidente se expande, los oficiales de mayor rango asumen el mando. [ 6 ]
Dimensiones
La escalabilidad se puede medir en múltiples dimensiones, como por ejemplo: [ 7 ]
- Escalabilidad administrativa : La capacidad de un número creciente de organizaciones o usuarios para acceder a un sistema.
- Escalabilidad funcional : La capacidad de mejorar el sistema añadiendo nuevas funcionalidades sin interrumpir las actividades existentes.
- Escalabilidad geográfica : La capacidad de mantener la eficacia durante la expansión desde un área local a una región más amplia.
- Escalabilidad de carga : La capacidad de un sistema distribuido para expandirse y contraerse para adaptarse a cargas más pesadas o más ligeras, incluyendo la facilidad con la que un sistema o componente puede modificarse, agregarse o eliminarse para adaptarse a cargas cambiantes.
- Escalabilidad generacional : La capacidad de un sistema para escalar mediante la adopción de nuevas generaciones de componentes.
- La escalabilidad heterogénea es la capacidad de adoptar componentes de diferentes proveedores.
Dominios
- Un protocolo de enrutamiento se considera escalable con respecto al tamaño de la red si el tamaño de la tabla de enrutamiento necesaria en cada nodo crece como O (log N ), donde N es el número de nodos en la red. Algunas implementaciones iniciales de Gnutella , basadas en redes peer-to-peer (P2P) , presentaban problemas de escalabilidad. Cada consulta de un nodo inundaba a todos los demás nodos con sus solicitudes. La demanda en cada nodo aumentaba proporcionalmente al número total de nodos, superando rápidamente su capacidad. Otros sistemas P2P, como BitTorrent, escalan bien porque la demanda en cada nodo es independiente del número de nodos. No hay nada centralizado, por lo que el sistema puede expandirse indefinidamente sin más recursos que los propios nodos.
- Un sistema de procesamiento de transacciones en línea o un sistema de gestión de bases de datos escalable es aquel que se puede actualizar para procesar más transacciones mediante la adición de nuevos procesadores, dispositivos y almacenamiento, y que se puede actualizar de forma fácil y transparente sin necesidad de apagarlo.
- La naturaleza distribuida del Sistema de Nombres de Dominio (DNS) le permite funcionar de manera eficiente, dando servicio a miles de millones de hosts en Internet a nivel mundial .
Escalado horizontal (aumento de escala) y escalado vertical (aumento de escala)

Los recursos se dividen en dos grandes categorías: horizontales y verticales. [ 8 ]
Horizontal o escalable
El escalado horizontal (de expansión/expansión) implica añadir o eliminar nodos, como agregar un nuevo ordenador a una aplicación de software distribuida. Un ejemplo podría ser el escalado horizontal de un servidor web a tres. Las aplicaciones de computación de alto rendimiento , como el análisis sísmico y la biotecnología , escalan las cargas de trabajo horizontalmente para soportar tareas que antes requerían superordenadores costosos . Otras cargas de trabajo, como las grandes redes sociales, superan la capacidad del superordenador más grande y solo pueden ser gestionadas por sistemas escalables. Aprovechar esta escalabilidad requiere software para la gestión y el mantenimiento eficientes de los recursos. [ 7 ]
Vertical o escalable
El escalado vertical (hacia arriba/hacia abajo) significa agregar recursos a (o eliminar recursos de) un solo nodo, lo que generalmente implica la adición de CPU, memoria o almacenamiento a una sola computadora. [ 7 ]
Entre las ventajas de la escalabilidad se incluyen evitar una mayor complejidad de gestión, una programación más sofisticada para asignar tareas entre los recursos y la gestión de problemas como el rendimiento, la latencia y la sincronización entre nodos. Además, algunas aplicaciones no escalan horizontalmente .
Escalabilidad de la red
La virtualización de funciones de red define estos términos de manera diferente: el escalado horizontal/vertical es la capacidad de escalar agregando/eliminando instancias de recursos (por ejemplo, máquinas virtuales), mientras que el escalado vertical/vertical es la capacidad de escalar cambiando los recursos asignados (por ejemplo, memoria/CPU/capacidad de almacenamiento). [ 9 ]
Escalabilidad de la base de datos
La escalabilidad de las bases de datos requiere que el sistema pueda realizar tareas adicionales con mayores recursos de hardware, como servidores, procesadores, memoria y almacenamiento adicionales. Las cargas de trabajo han seguido aumentando y, con ellas, las exigencias sobre las bases de datos.
Las innovaciones algorítmicas incluyen el bloqueo a nivel de fila y la partición de tablas e índices. Las innovaciones arquitectónicas incluyen arquitecturas sin recursos compartidos y con recursos compartidos para la gestión de configuraciones de múltiples servidores.
Consistencia fuerte versus consistencia eventual (almacenamiento)
En el contexto del almacenamiento de datos escalable horizontalmente , la escalabilidad se define como el tamaño máximo del clúster de almacenamiento que garantiza la consistencia total de los datos, lo que significa que solo existe una versión válida de los datos almacenados en todo el clúster, independientemente del número de copias físicas redundantes. Los clústeres que proporcionan redundancia "perezosa" mediante la actualización asíncrona de las copias se denominan "eventualmente consistentes" . Este tipo de diseño escalable horizontalmente es adecuado cuando la disponibilidad y la capacidad de respuesta se valoran más que la consistencia, lo cual es cierto para muchos servicios de alojamiento de archivos web o cachés web ( si se desea la última versión, hay que esperar unos segundos a que se propague ). Para todas las aplicaciones clásicas orientadas a transacciones, este diseño debe evitarse. [ 10 ]
Muchos clústeres de almacenamiento escalables, tanto de código abierto como comerciales, especialmente aquellos construidos sobre hardware y redes de PC estándar, solo ofrecen consistencia eventual, como algunas bases de datos NoSQL como CouchDB y otras mencionadas anteriormente. Las operaciones de escritura invalidan otras copias, pero a menudo no esperan sus confirmaciones. Las operaciones de lectura normalmente no verifican todas las copias redundantes antes de responder, lo que podría provocar que se pierda la operación de escritura anterior. El gran volumen de tráfico de señales de metadatos requeriría hardware especializado y distancias cortas para gestionarse con un rendimiento aceptable (es decir, comportarse como un dispositivo de almacenamiento o base de datos no agrupado).
Siempre que se espere una gran coherencia de los datos, busque estos indicadores:
- El uso de InfiniBand, Fibrechannel o redes similares de baja latencia para evitar la degradación del rendimiento con el aumento del tamaño del clúster y el número de copias redundantes.
- Cables de corta longitud y alcance físico limitado, lo que evita la degradación del rendimiento de la señal durante su transmisión.
- Mecanismos de mayoría/quórum para garantizar la coherencia de los datos cuando partes del clúster se vuelven inaccesibles.
Los indicadores para diseños eventualmente consistentes (¡no aptos para aplicaciones transaccionales!) son:
- El rendimiento de escritura aumenta linealmente con el número de dispositivos conectados en el clúster.
- Si bien el clúster de almacenamiento está particionado, todas las partes permanecen operativas. Existe el riesgo de que se produzcan actualizaciones conflictivas.
Optimización del rendimiento frente a escalabilidad del hardware
A menudo se recomienda centrar el diseño del sistema en la escalabilidad del hardware en lugar de en la capacidad. Por lo general, es más económico agregar un nuevo nodo a un sistema para lograr un mejor rendimiento que realizar ajustes de rendimiento para mejorar la capacidad que cada nodo puede manejar. Pero este enfoque puede tener rendimientos decrecientes (como se analiza en la ingeniería de rendimiento ). Por ejemplo: supongamos que el 70% de un programa se puede acelerar si se paraleliza y se ejecuta en múltiples CPU en lugar de una. Sies la fracción de un cálculo que es secuencial, yes la fracción que se puede paralelizar, la aceleración máxima que se puede lograr utilizando P procesadores viene dada por la Ley de Amdahl :
Sustituyendo el valor para este ejemplo, usando 4 procesadores se obtiene
Duplicar la potencia de cálculo a 8 procesadores proporciona
Duplicar la capacidad de procesamiento solo ha acelerado el proceso en aproximadamente una quinta parte. Si todo el problema fuera paralelizable, la velocidad también se duplicaría. Por lo tanto, añadir más hardware no es necesariamente la solución óptima.
Ley de escalabilidad universal
En sistemas distribuidos , se puede utilizar la Ley de Escalabilidad Universal (USL) para modelar y optimizar la escalabilidad del sistema. La USL, acuñada por Neil J. Gunther , cuantifica la escalabilidad en función de parámetros como la contención y la coherencia. La contención se refiere al retraso debido a la espera o la formación de colas para acceder a recursos compartidos. La coherencia se refiere al tiempo que tardan los datos en volverse consistentes. Por ejemplo, una alta contención indica un procesamiento secuencial que podría paralelizarse, mientras que una alta coherencia sugiere dependencias excesivas entre procesos, lo que requiere minimizar las interacciones. Además, con la ayuda de la USL, se puede calcular de antemano la capacidad efectiva máxima del sistema: escalarlo más allá de ese punto supone un desperdicio. [ 11 ]
Escalado débil versus escalado fuerte
La computación de alto rendimiento tiene dos nociones comunes de escalabilidad:
- La escalabilidad fuerte se define como la forma en que el tiempo de solución varía con el número de procesadores para un tamaño total del problema fijo.
- El escalado débil se define como la forma en que el tiempo de solución varía con el número de procesadores para un tamaño de problema fijo por procesador . [ 12 ]
Véase también
Referencias
- ↑ Bondi, André B. (2000). Características de la escalabilidad y su impacto en el rendimiento . Actas del segundo taller internacional sobre software y rendimiento – WOSP '00. p. 195. doi : 10.1145/350391.350432 . ISBN 158113195X.
- ↑ Hill, Mark D. (1990). "¿Qué es la escalabilidad?" (PDF) . ACM SIGARCH Computer Architecture News . 18 (4): 18. doi : 10.1145/121973.121975 . S2CID 1232925 . y Duboc, Leticia; Rosenblum, David S.; Wicks, Tony (2006). Un marco para el modelado y análisis de la escalabilidad de sistemas de software (PDF) . Actas de la 28.ª conferencia internacional sobre ingeniería de software – ICSE '06. pág. 949. doi : 10.1145/1134285.1134460 . ISBN 1595933751.
- ↑ Laudon, Kenneth Craig; Traver, Carol Guercio (2008). Comercio electrónico: Negocios, tecnología, sociedad . Pearson Prentice Hall/Pearson Education. ISBN 9780136006459.
- ↑ "Por qué la escala web es el futuro" . Network World . 13 de febrero de 2020. Consultado el 1 de junio de 2017 .
- ↑ Creación de aplicaciones sin servidor en Knative . O'Reilly Media. ISBN 9781098142049.
- ↑ Bigley, Gregory A.; Roberts, Karlene H. (1 de diciembre de 2001). "El sistema de mando de incidentes: organización de alta fiabilidad para entornos de tareas complejos y volátiles". Academy of Management Journal . 44 (6): 1281– 1299. doi : 10.5465/3069401 (inactivo el 12 de julio de 2025). ISSN 0001-4273 .
{{cite journal}}: CS1 maint: DOI inactivo desde julio de 2025 ( enlace ) - 1 2 3 Hesham El-Rewini y Mostafa Abd-El-Barr (abril de 2005). Arquitectura informática avanzada y procesamiento paralelo . John Wiley & Sons . pág. 66. ISBN 978-0-471-47839-3.
- ↑ Michael, Maged; Moreira, Jose E.; Shiloach, Doron; Wisniewski, Robert W. (26 de marzo de 2007). Escalado vertical y horizontal: un estudio de caso con Nutch/Lucene . Simposio Internacional de Procesamiento Paralelo y Distribuido de la IEEE de 2007. pág. 1. doi : 10.1109/IPDPS.2007.370631 . ISBN 978-1-4244-0909-9.
- ↑ "Virtualización de funciones de red (NFV); Terminología de los conceptos principales en NFV" . Archivado del original (PDF) el 11 de mayo de 2020. Consultado el 12 de enero de 2016 .
- ↑ Sadek Drobi (11 de enero de 2008). "Coherencia eventual por Werner Vogels" . InfoQ . Consultado el 8 de abril de 2017 .
- ↑ Gunther, Neil (2007). Planificación de capacidad guerrillera: un enfoque táctico para la planificación de aplicaciones y servicios altamente escalables . ISBN 978-3540261384.
- ↑ "La débil escalabilidad de DL_POLY 3" . Departamento de Ciencias e Ingeniería Computacional de STFC. Archivado del original el 7 de marzo de 2014. Recuperado el 8 de marzo de 2014 .
Enlaces externos
- Enlaces a diversos recursos de aprendizaje : página seleccionada por el proyecto memcached .
- Definición escalable – por The Linux Information Project (LINFO)
- Escala en sistemas distribuidos B. Clifford Neuman, En: Lecturas sobre sistemas de computación distribuida , IEEE Computer Society Press, 1994
- Arquitectura de computadoras
- Recursos computacionales
- Sistemas informáticos
- conceptos de ingeniería
- Calidad del software