Cómo determinar la escalabilidad de mi aplicación web

Cuando habla de la escalabilidad de la aplicación web, siempre se trata de la escalabilidad de la solución completa: su aplicación + hardware que admite el rendimiento de su aplicación.

configuración del servidor : en primer lugar, para evitar “que el servidor se caiga en cualquier momento” independientemente de la potencia del servidor que ejecuta la aplicación web, debe configurarse para que permanezca en línea en cualquier carga. Los pasos para hacerlo dependen del entorno en el que se ejecute su solución: VPS / VDS / Servidor dedicado / Nube / etc.

Para probar el rendimiento actual de su solución y comprender qué carga puede procesar permanecer en línea y servir adecuadamente las conexiones, puede hacer lo siguiente:

registros y monitoreo : los primeros registros de configuración en su servidor para recopilar toda la información sobre su rendimiento. También es bueno configurar algún software que pueda brindarle información en tiempo real sobre la carga en su servidor y procese la “mayoría” de sus recursos.

haga DDoS : para comprender a qué carga puede servir adecuadamente su solución, necesita crear esta carga y cuidar las estadísticas para comprender cómo impacta esta carga en el rendimiento de su aplicación web y servidor. Al hacer esto, obtendrá una imagen de cuáles son los lugares “más delgados” en su solución: algunas partes de la aplicación, falta de RAM, intercambio lento de datos entre el servidor web y el servidor de base de datos, etc.

Básicamente hay 3 tipos principales de DDoS:
– Ataques DDoS de la capa de aplicación: los que atacan las vulnerabilidades de Apache, Windows, etc. para bloquear el servidor;
– Ataques de protocolo DDoS: este tipo de ataque apunta al nivel de protocolo;
– Ataques DDoS basados ​​en volumen: este tipo de ataque incluye UDP, ICMP y otros tipos de inundación;

Existen numerosas herramientas gratuitas disponibles para realizar tales ataques de prueba: LOIC, XOIC, HULK, RU-Dead-Yet, PyLoris, DAVOSET, GoldenEye HTTP Denial Of Service Tool, y muchas otras que puede encontrar en Internet.

Por lo tanto, los resultados de las pruebas y las estadísticas del servidor le mostrarán la capacidad de rendimiento de su solución actual y los puntos débiles.

PageSpeed : otro tipo de pruebas que se pueden hacer rápidamente y le dan un poco de imaginación sobre los recursos necesarios para cargar sus páginas de aplicaciones web es probar la velocidad de las cargas de páginas. Hay muchas herramientas disponibles en Internet, una de las más populares es Google PageSpeed: como resultado verá cuánto tiempo se requiere para cargar sus páginas, qué contenido de la página se puede optimizar, etc. Esto no le dará una comprensión exacta de cuántos usuarios pueden visitar simultáneamente su sitio, pero si los puntajes son demasiado malos, es obvio que la aplicación web no está optimizada y habrá problemas cuando aumente el tráfico.

Después de obtener resultados de tales pruebas generales, a veces es necesario hacer pruebas adicionales para ciertos módulos de aplicaciones web para ver qué lo ralentiza y, a menudo, la optimización local puede extender la capacidad de rendimiento de la solución en ocasiones, incluso en el mismo hardware.

No dude en preguntarme en privado si necesita alguna otra ayuda, ya que tengo una vasta experiencia en esta área.

Inunde con solicitudes.

Cree un script que envíe una solicitud HTTP personalizada, por ejemplo, en Python. Luego ejecútelo y monitoree los recursos en su servidor (Memoria, CPU).

Esto te dará una idea más o menos. Debería intentar hacer que el servidor se bloquee o volverse más lento (anote la secuencia de comandos en el momento de la respuesta). Este es el número máximo de conexiones que el servidor puede manejar sin comenzar a funcionar mal.

Las aplicaciones web escalables solo consumen los recursos necesarios para satisfacer la demanda.

la escalabilidad a menudo significa decidir entre un gasto excesivo en la capacidad del servidor para manejar el uso máximo o comprar solo en función de la necesidad promedio, con el riesgo de un bajo rendimiento de la aplicación o la experiencia del usuario cuando aumenta el tráfico.

Entonces, ¿ahora sus recursos son rentables? ¿Cómo se almacenan los datos con estado? Estas son las dos formas importantes de descubrirlo.