La escalabilidad se mide en términos de rendimiento en función de alguna variable. Por ejemplo, número de solicitudes / segundo con usuarios X. La forma más sencilla de describir la escalabilidad es:
Una medida de eficiencia a medida que aumenta la carga.
Lo primero que debe comprender al diseñar la escalabilidad es qué medida es más importante para su aplicación. Hay varias formas de medir la eficiencia, que es un componente clave de la escalabilidad:
- Solicitudes concurrentes por segundo
- Tiempo promedio de respuesta por solicitud
- Número de registros procesados por segundo / minuto
Hay más mediciones de eficiencia que se pueden usar, pero estas son comunes para sistemas basados en web o sistemas de procesamiento por lotes.
El siguiente aspecto de la escalabilidad es medir lo que sucede con su eficiencia a medida que aumenta la carga. Las formas comunes para aumentar la carga son:
- Más usuarios llegan al servidor (es decir, más tráfico web)
- Más datos en la base de datos (es decir, las consultas tardan más o el procesamiento tarda más)
- Falla del disco duro en un RAID (el rendimiento / confiabilidad del almacenamiento se ve afectado)
- Saturación de red
El objetivo de una aplicación escalable es mantener o mejorar la eficiencia mientras lidiamos con el problema de carga. En resumen, si el tiempo de respuesta tarda demasiado, ¿podemos agregar otro servidor para distribuir la carga de manera uniforme? Este enfoque reduce la cantidad de trabajo que debe realizar un servidor y mantiene a los servidores operando en ese "punto óptimo" para mayor eficiencia.
Su aplicación deberá estar diseñada específicamente para escalar. Eso significa que debe tener cuidado con los datos de la sesión, las solicitudes de enrutamiento al servidor correcto, reduciendo los cuellos de botella que limitan la capacidad de escalar la aplicación.