Escalabilidad: Granjas web con ASP.NET e IIS

Aunque hayamos diseñado nuestra aplicación web con el máximo cuidado y tratando de que esté lo más optimizada posible, si tiene éxito y acaba creciendo mucho en cuanto a necesidades de atender usuarios y peticiones, llegará un momento en el que no de más de si y sea necesario hacerla crecer.

Una aplicación que reciba simplemente unas pocas peticiones por segundo va a funcionar sin problema en cualquier servidor barato, pero si el número de peticiones crece y necesitamos atender a decenas, cientos o miles de peticiones por segundo es el momento de pensar en la escalabilidad y el crecimiento.

La escalabilidad de un sistema informático se define como la capacidad de éste para expandirse según las necesidades que se deriven del uso que se le va a dar. De este modo decimos que una aplicación web es escalable si es capaz atender a un número cada vez mayor de usuarios sin necesidad de cambiar el código de la aplicación.

Fundamentalmente existen dos maneras de escalar:

  • Escalado vertical: implica añadir más recursos físicos al sistema actual para que pueda atender más solicitudes. Así, por ejemplo, se le añaden más procesadores o más memoria a un servidor. El escalado vertical presenta un límite claro y llega un punto en el que la aplicación necesita ser rediseñada para poder escalar más. En inglés a este tipo de escalado se le denomina "Scale Up".
  • Escalado horizontal: en este caso el escalado se consigue simplemente añadiendo más nodos al conjunto del sistema, por ejemplo, poniendo otra máquina en paralelo a funcionar. Este tipo de escalado es más sencillo y no tiene límite, pero implica que las aplicaciones deben estar adaptadas para poder hacerlo, pues implican coordinación, replicación, etc… Se denomina comúnmente como "Scale Out".

El escalado vertical tiene un límite, mientras que el horizontal no.

Evidentemente el escalado que debiéramos buscar siempre es el horizontal. Al menos tener la posibilidad de hacerlo cuando sea necesario. Si nos limitamos a añadir más memoria y procesador al servidor, cuando llegue el momento (y si tenemos suerte llegará) de que la máquina no soporte más, será necesario que pasemos a escalar de manera horizontal. Y si nuestra aplicación no está preparada lo pasaremos muy mal.

SIGUE LEYENDO para aprender:

  • Qué es una Web Farm o Granja de Servidores
  • Cómo funciona el mantenimiento de sesión en estas infraestructuras
  • Cómo podemos configurar ASP.NET para usar un servidor de estado o una base de datos remota para mantener la sesión
  • Otros detalles importantes
Sin categoría

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *