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.
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:
DLT utiliza los siguientes servicios de AWS:
- Amazon API Gateway para administrar las API
- AWS Lambda para administrar microservicios con lógica empresarial
- Amazon Simple Storage Service (Amazon S3) para alojar el sitio estático, almacenar escenarios de pruebas y almacenar los resultados de las pruebas de carga
- Amazon DynamoDB para almacenar escenarios de pruebas y resultados de pruebas correspondientes
- Amazon Elastic Container Registry para almacenar la imagen de Docker con el marco de pruebas de carga de Taurus
- Tareas de Amazon Elastic Container Service con AWS Fargate para ejecutar pruebas de carga
- AWS CodePipeline y AWS CodeBuild para recuperar y crear la imagen de Taurus
- AWS Amplify para administrar la interfaz de usuario web utilizada en la solución
- Amazon Cognito para autenticación y administración de usuarios
- Eventos de Amazon CloudWatch para administrar las pruebas programadas y mostrar los resultados de las pruebas
- AWS Secrets Manager (opcional) utiliza las credenciales de Docker Hub para superar los límites de velocidad de Docker Hub.
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.
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.
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.