Escalabilidad

Es un término usado en tecnología para hacer referencia a la propiedad de aumentar la capacidad de trabajo de un programa sin alterar la capacidad de trabajo o tamaño de un sistema sin poner en riesgo el buen funcionamiento y la calidad del mismo. Cuando esto sucede, dicha propiedad recibe el nombre de «sistema escalable» o escalable.

Esta propiedad tiene ciertas medidas de éxito en cuanto a contexto se refiere. En programas de computadora «escalable” es cuando puede aumentarse en número de usuarios, datos que se procesan o solicitudes sin que la velocidad en esa respuesta se vea afectada directamente. Esta definición también aplica para la funcionalidad de un sistema en específico, en caso de poder agregársele funciones nuevas sin esfuerzo mínimo también es considerado un sistema escalable. Geográficamente se le pueden agregar nuevos puntos de acceso en diversas localidades dispersas.
Un ejemplo simple de escalabilidad es el sistema que maneja los dominios de internet, son infinitas la páginas que se crean diariamente, no obstante cada vez que marcas una URL para visitar un página en cuestión, el usuario está esperando la misma rapidez en respuesta. Se puede decir que el DNS es escalable, ya que a pesar del aumento continuo del número de dominios, el sistema no cambia de manera notable. Las bases de datos son otro ejemplo, una de las características de las bases de datos es que son utilizadas en sistemas de cómputos grandes, con gran capacidad para responder a las búsquedas de información dependiendo de los datos que almacenen. Existen dos tipos de escalabilidad para aumentar la capacidad de un sistema:

  • Escalabilidad vertical, que se refiere a actualizaciones o modernización de componentes existentes, por ejemplo, aumentar el número de CPUs que tiene el servidor de un sitio web. Si un programa mejora al aumentar los recursos que puede utilizar, se dice que es escalable, a lo que se conoce también como escalabilidad de aplicación.
  • Escalabilidad horizontal, que se refiere a aumentar el número de componentes, para usar el mismo ejemplo, en lugar de aumentar el número de CPUs, se aumenta el número de computadoras que sirven un sitio web. Es común que un sistema tenga definido un número máximo de computadoras a las que se puede escalar, a lo que se conoce como escalabilidad de tamaño.

La escalabilidad incluso puede ser medida en diferentes dimensiones que pueden ser tres:

  1. Escalabilidad en carga: es un sistema distribuido que nos hace fácil el ampliar y reducir sus recursos para acomodar (cuando le conviene) cargas más pesadas o más ligeras según se requiera.
  2. Escalabilidad geográfica: no es más que un sistema geográficamente escalable, el cual, es aquel que mantiene su utilidad y usabilidad, sin importar que tan lejos estén sus usuarios o recursos.
  3. Escalabilidad administrativa: no importa cuantas organizaciones diferentes necesiten compartir un solo sistema distribuido, debe ser fácil de usar y manejar.