Blog de Amazon Web Services (AWS)

Garantice un rendimiento óptimo de las aplicaciones con las pruebas de carga distribuidas

Por Ajay Swamy, Senior Product Lead en AWS y
George Lenz, Solution Developer en AWS

 

Como empresa que utiliza soluciones modernas, sus clientes esperan una disponibilidad del 100% de sus aplicaciones críticas, tanto web como móviles. Los eventos impredecibles como el COVID-19 han convertido los compromisos en algo virtual. Esto hizo que las aplicaciones web y móviles sean aún más críticas.

Las pruebas de carga distribuidas en AWS (DLT) le ayudan a automatizar las pruebas de rendimiento de sus aplicaciones a escala. De esta forma, puedes identificar los cuellos de botella antes de lanzar tu aplicación. La solución admite pruebas simultáneas y programadas, y gestiona un gran número de usuarios simultáneos que pueden generar muchas solicitudes por segundo. También se proporciona un informe en tiempo real. Con DLT, puedes simular miles de usuarios conectándote a tu aplicación para que puedas entender mejor su perfil de rendimiento.

Las empresas que prueban el rendimiento de su sitio web pueden obtener grandes beneficios de la solución. Pueden usar patrones, como solicitudes GET simples, o usar scripts de JMETER para crear pruebas personalizadas. DLT utiliza una plantilla de AWS CloudFormation para implementar la aplicación en cuestión de minutos. La solución utiliza Taurus, un marco de pruebas de carga de código abierto para automatizar las pruebas.

 

Figura 1. Página de inicio de DLT

 

DLT proporciona una consola web intuitiva en la que puede crear y actualizar pruebas o programar pruebas futuras. Como parte de los parámetros de prueba, puede establecer el número de tareas iniciadas y el número de usuarios simultáneos que acceden al endpoint por tarea. También puede establecer el intervalo de incremento y el tiempo de ejecución simultáneo activo. Puede optar por crear una prueba sencilla en un endpoint HTTP o utilizar un script personalizado de JMeter. Cuando se crea la prueba, puedes enviar tu trabajo para ejecutar las pruebas.

 

Arquitectura DLT

La implementación de esta solución con los parámetros predeterminados crea el siguiente entorno en la nube de AWS:

 

Figura 2. Diagrama de arquitectura DLT

 

DLT utiliza los siguientes servicios de AWS:

 

Figura 3. Crear pruebas de carga, programar pruebas y enviar trabajos

Ejecución de pruebas y supervisión con DLT

Tras iniciar el trabajo, Esto invoca funciones de AWS Lambda que administran y almacenan datos de prueba en Amazon S3 y Amazon DynamoDB. Las funciones de AWS Lambda también lanzan la máquina de estado en AWS Step Functions, que luego comienza a implementar tareas de AWS Fargate. Las tareas recuperan un archivo que contiene una imagen de Docker de Amazon S3 y crean una imagen en Amazon ECR que contiene el software Taurus. Cada tarea ejecuta la prueba en función de los parámetros configurados en el trabajo y en el escenario de prueba.

 

Figura 4: Vista de prueba en ejecución

 

El DLT permite que todas las pruebas comiencen simultáneamente. El punto final de prueba recibe tráfico al mismo tiempo, lo que simula escenarios reales.

 

Figura 5 – Visualización de los resultados de las pruebas

 

La solución también incluye funcionalidad de programación mediante una regla de Amazon CloudWatch Events (también conocida como Amazon EventBridge) que se pueden ejecutar pruebas diarias, semanales, quincenales o mensuales. La solución DLT también le permite visualizar el progreso de sus pruebas en tiempo real a través de un panel de control de Amazon CloudWatch. Este panel muestra el tiempo medio de respuesta, el número de usuarios simultáneos, el número de solicitudes correctas y las solicitudes con error. A medida que se completan las pruebas individuales, los resultados se almacenan en Amazon S3. Cuando finaliza el trabajo, los resultados agregados se calculan y almacenan en una tabla de Amazon DynamoDB. Los resultados se visualizarán en la consola web de la solución.

 

Conclusión

Ya sea que represente a una empresa privada que ofrece telemedicina o un servicio del sector público, como un tribunal virtual, debe estar seguro de que su aplicación se puede escalar para satisfacer la creciente demanda de los usuarios. Las pruebas de carga distribuidas, conocidas como pruebas de carga distribuidas (DLT) en AWS, le permiten automatizar las pruebas de aplicaciones, comprender cómo se ejecutarán a escala y corregir los cuellos de botella antes del lanzamiento. Comience con las pruebas de carga distribuidas en AWS.

 

Este artículo fue traducido del Blog de AWS en Inglés.

 

____________________________________________________________________________________

Sobre los autores

Ajay Swamy es líder de productos sénior del equipo de soluciones de AWS. Es responsable de administrar una cartera de soluciones de AWS que proporcionan soluciones rápidas, fáciles de implementar y basadas en la nube para abordar escenarios complejos y desafíos técnicos y empresariales. Actualmente se encuentra en Nueva York.

 

 

 

 

George Lenz es desarrollador de soluciones en el equipo de soluciones de AWS. Ha contribuido a las actualizaciones de pruebas de carga distribuidas de la cartera de AWS. Actualmente reside en Nueva York.

 

 

 

 

Sobre los traductores

Bruno Lopes es formador técnico sénior del equipo de AWS LATAM. Ha trabajado con soluciones de TI durante más de 12 años, y tiene en su cartera numerosas experiencias en cargas de trabajo de Microsoft, entornos híbridos y habilitación técnica de clientes. Como formador, lleva más de 6 años dedicando sus días a enseñar tecnologías de vanguardia a clientes de América Latina.

 

 

 

 

Marina Medeiros es formadora técnica del equipo de AWS LATAM. Ha sido formador durante más de un año y ha enseñado servicios de AWS a diversos clientes. Tiene más de 5 años en el área de TI, con experiencia en pruebas de aplicaciones y automatización de entornos.