stringtranslate.com

Escalabilidad

La escalabilidad es la propiedad de un sistema para manejar una cantidad creciente de trabajo. Una definición de sistemas de software especifica que esto se puede hacer agregando recursos al sistema. [1]

En un contexto económico , un modelo de negocio escalable implica que una empresa puede aumentar las ventas si aumenta los recursos. Por ejemplo, un sistema de entrega de paquetes es escalable porque se pueden entregar más paquetes agregando más vehículos de entrega. 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, porque un almacén sólo puede manejar 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 cada vez mayor de usuarios, y el número de temas que indexa . [3] Webscale es un enfoque de arquitectura informática que lleva las capacidades de las empresas de computación en la nube a gran escala a los centros de datos empresariales. [4]

En los sistemas distribuidos , existen varias definiciones según los autores, algunas consideran los conceptos de escalabilidad una subparte de la elasticidad , otras como algo distinto.

En matemáticas, la escalabilidad se refiere principalmente al cierre bajo multiplicación escalar .

En ingeniería y fabricación industrial , la escalabilidad se refiere a la capacidad de un proceso, sistema u organización para manejar una carga de trabajo creciente, adaptarse a demandas crecientes 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 o el rendimiento. En este contexto, la escalabilidad es una consideración vital para las empresas que buscan satisfacer las expectativas de los clientes, seguir siendo competitivas y lograr un crecimiento sostenible. Los factores que influyen en la escalabilidad 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 optimizar sus operaciones. La escalabilidad en ingeniería y fabricación industrial permite a las empresas responder a las condiciones fluctuantes del mercado, capitalizar las oportunidades emergentes y prosperar en un panorama global en constante evolución. [ cita necesaria ]

Ejemplos

El Sistema de Comando de Incidentes (ICS) es utilizado por las agencias de respuesta a emergencias en los Estados Unidos. ICS puede escalar la coordinación de recursos desde un incendio forestal con un solo motor en la carretera hasta un incendio forestal interestatal. El primer recurso en la escena establece el mando, con autoridad para ordenar recursos y delegar responsabilidades (dirigiendo de cinco a siete oficiales, quienes nuevamente delegarán en hasta siete, y así sucesivamente a medida que crezca el incidente). A medida que el incidente se expande, más oficiales de alto rango asumen el mando. [5]

Dimensiones

La escalabilidad se puede medir en múltiples dimensiones, como por ejemplo: [6]

Dominios

Escalado horizontal (reducir) y vertical (aumentar)

Los recursos se dividen en dos grandes categorías: horizontales y verticales. [7]

Horizontal o escalado

Escalar horizontalmente (hacia afuera/hacia adentro) significa agregar más nodos a (o eliminar nodos de) un sistema, como agregar una nueva computadora a una aplicación de software distribuida. Un ejemplo podría implicar la ampliación de un servidor web a tres. Las aplicaciones informáticas de alto rendimiento , como el análisis sísmico y la biotecnología , escalan las cargas de trabajo horizontalmente para soportar tareas que alguna vez habrían requerido costosas supercomputadoras . Otras cargas de trabajo, como las grandes redes sociales, exceden la capacidad de la supercomputadora más grande y sólo pueden ser manejadas por sistemas escalables. Explotar esta escalabilidad requiere software para una gestión y mantenimiento eficientes de los recursos. [6]

Vertical o ampliado

Escalar verticalmente (arriba/abajo) significa agregar recursos (o eliminar recursos de) un solo nodo, lo que generalmente implica agregar CPU, memoria o almacenamiento a una sola computadora. [6]

Una mayor cantidad de elementos aumenta la complejidad de la administración, una programación más sofisticada para asignar tareas entre recursos y manejar problemas como el rendimiento y la latencia entre nodos, mientras que algunas aplicaciones no se escalan horizontalmente .

Escalabilidad de la red

La virtualización de funciones de red define estos términos de manera diferente: ampliación/incremento es la capacidad de escalar agregando o eliminando instancias de recursos (p. ej., máquina virtual), mientras que ampliación/reducción es la capacidad de escalar cambiando los recursos asignados (p. ej., memoria/CPU). /capacidad de almacenamiento). [8]

Escalabilidad de la base de datos

La escalabilidad de las bases de datos requiere que el sistema de base de datos pueda realizar trabajo adicional dados mayores recursos de hardware, como servidores, procesadores, memoria y almacenamiento adicionales. Las cargas de trabajo han seguido creciendo y las demandas sobre las bases de datos han seguido su ejemplo.

Las innovaciones algorítmicas incluyen bloqueo a nivel de fila y partición de tablas e índices. Las innovaciones arquitectónicas incluyen arquitecturas de nada compartido y de todo compartido para gestionar configuraciones de múltiples servidores.

Consistencia fuerte versus eventual (almacenamiento)

En el contexto del almacenamiento de datos escalable , la escalabilidad se define como el tamaño máximo del clúster de almacenamiento que garantiza la coherencia total de los datos, lo que significa que solo hay una versión válida de los datos almacenados en todo el clúster, independientemente del número de copias de datos físicos redundantes. . Los clústeres que proporcionan redundancia "diez" al actualizar las copias de forma asincrónica se denominan "eventualmente consistentes" . Este tipo de diseño escalable es adecuado cuando la disponibilidad y la capacidad de respuesta se consideran más altas que la coherencia, lo cual es cierto para muchos servicios de alojamiento de archivos web o cachés web ( si desea la última versión, espere unos segundos hasta que se propague ). Para todas las aplicaciones clásicas orientadas a transacciones, se debe evitar este diseño. [9]

Muchos clústeres de almacenamiento escalables de código abierto e incluso comerciales, especialmente aquellos construidos sobre redes y hardware de PC estándar, solo brindan 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 reconocimientos. Las operaciones de lectura normalmente no verifican todas las copias redundantes antes de responder, lo que podría perder la operación de escritura anterior. La gran cantidad de tráfico de señales de metadatos requeriría hardware especializado y distancias cortas para manejarse con un rendimiento aceptable (es decir, actuar como un dispositivo de almacenamiento o base de datos no agrupado). [ cita necesaria ]

Siempre que se espere una gran coherencia de los datos, busque estos indicadores: [ cita necesaria ]

Los indicadores para diseños eventualmente consistentes (¡no adecuados para aplicaciones transaccionales!) son: [ cita necesaria ]

Ajuste 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. Normalmente es más barato agregar un nuevo nodo a un sistema para lograr un mejor rendimiento que participar en el ajuste del rendimiento para mejorar la capacidad que cada nodo puede manejar. Pero este enfoque puede tener rendimientos decrecientes (como se analiza en ingeniería del rendimiento ). Por ejemplo: supongamos que el 70% de un programa se puede acelerar si se paraleliza y se ejecuta en varias CPU en lugar de una. Si es la fracción de un cálculo que es secuencial y es la fracción que se puede paralelizar, la aceleración máxima que se puede lograr usando procesadores P viene dada de acuerdo con la Ley de Amdahl :

Sustituyendo el valor de este ejemplo, usando 4 procesadores se obtiene

Duplicar la potencia informática a 8 procesadores da

Duplicar la potencia de procesamiento sólo 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, incorporar más hardware no es necesariamente el enfoque óptimo.

Escalamiento débil versus fuerte

La informática de alto rendimiento tiene dos nociones comunes de escalabilidad:

Ver también

Referencias

  1. ^ 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. pag. 195. doi : 10.1145/350391.350432. ISBN 158113195X.
  2. ^ Colina, Mark D. (1990). "¿Qué es la escalabilidad?" (PDF) . Noticias de arquitectura informática de ACM SIGARCH . 18 (4): 18. doi :10.1145/121973.121975. S2CID  1232925.y Duboc, Leticia; Rosenblum, David S.; Mechas, 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. pag. 949. doi :10.1145/1134285.1134460. ISBN
     1595933751.
  3. ^ Laudon, Kenneth Craig; Traver, Carol Guercio (2008). Comercio electrónico: Negocios, Tecnología, Sociedad. Pearson Prentice Hall/Educación Pearson. ISBN 9780136006459.
  4. ^ "Por qué la escala web es el futuro". Mundo de la Red . 2020-02-13 . Consultado el 1 de junio de 2017 .
  5. ^ Bigley, Gregorio A.; Roberts, Karlene H. (1 de diciembre de 2001). "El sistema de comando de incidentes: organización de alta confiabilidad para entornos de tareas complejos y volátiles". Revista de la Academia de Gestión . 44 (6): 1281-1299. doi :10.5465/3069401. ISSN  0001-4273.
  6. ^ abc Hesham El-Rewini y Mostafa Abd-El-Barr (abril de 2005). Arquitectura de Computadores Avanzada y Procesamiento Paralelo. John Wiley e hijos . pag. 66.ISBN _ 978-0-471-47839-3.
  7. ^ Michael, mago; Moreira, José E.; Siloaj, Dorón; Wisniewski, Robert W. (26 de marzo de 2007). Ampliación x ampliación: un estudio de caso utilizando Nutch/Lucene . 2007 Simposio internacional de procesamiento distribuido y paralelo del IEEE. pag. 1. doi :10.1109/IPDPS.2007.370631. ISBN 978-1-4244-0909-9.
  8. ^ "Virtualización de funciones de red (NFV); terminología de los conceptos principales de NFV". Archivado desde el original (PDF) el 11 de mayo de 2020 . Consultado el 12 de enero de 2016 .
  9. ^ Sadek Drobi (11 de enero de 2008). "Consistencia final de Werner Vogels". InfoQ . Consultado el 8 de abril de 2017 .
  10. ^ "La escala débil de DL_POLY 3". Departamento de Ingeniería y Ciencias Computacionales de la STFC. Archivado desde el original el 7 de marzo de 2014 . Consultado el 8 de marzo de 2014 .

enlaces externos