Información general

Las pruebas de carga distribuidas en AWS automatizan las pruebas de rendimiento a escala, lo que muestra cómo se comportarán las aplicaciones en diferentes condiciones de carga e identifica los posibles problemas de rendimiento a lo largo del ciclo de vida de las aplicaciones (incluidos el desarrollo, la puesta en escena, la producción y la posproducción). Esta solución de AWS simula usuarios y transacciones de cientos a millones, lo que genera transacciones consistentes sin necesidad de aprovisionar usuarios o servidores.
La solución proporciona información sobre áreas cruciales, como la escalabilidad y fiabilidad de las instancias de Amazon Elastic Compute Cloud (Amazon E2), Amazon Elastic Container Service (Amazon ECS) o Amazon Elastic Kubernetes Service (Amazon EKS), los tiempos de arranque y ejecución en frío de las funciones de AWS Lambda, el rendimiento de las consultas a las bases de datos de Amazon Relational Database Service (Amazon RDS) y los tiempos de respuesta de Amazon CloudFront. Al simular escenarios de carga realistas, puede optimizar su infraestructura tanto en términos de rendimiento como de rentabilidad.
Beneficios

Ajuste el tamaño de su infraestructura al obtener información precisa sobre el rendimiento de sus aplicaciones en diferentes condiciones de carga, lo que resulta en una asignación de recursos rentable.
Automatice sus pruebas de carga programándolas o incorporando esta solución en su proceso de integración continua y entrega continua (CI/CD), lo que agiliza su proceso de pruebas.
Simule el tráfico real de varias regiones de AWS para evaluar el comportamiento de su aplicación en diversas cargas geográficas y optimizar el rendimiento global.
Diseñe e integre las pruebas de carga distribuidas sin problemas con los scripts de JMeter, lo que le permite personalizar las pruebas según las necesidades únicas de su aplicación.
Detalles técnicos

Puede desplegar automáticamente esta arquitectura con la guía de despliegue y la plantilla de AWS CloudFormation asociada para las regiones de AWS.
Paso 1
Una API de Amazon API Gateway invoca los microservicios de la solución (funciones de AWS Lambda).
Paso 2
Los microservicios proporcionan la lógica empresarial para administrar los datos de las pruebas y ejecutar las pruebas.
Paso 3
Estos microservicios interactúan con Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB y AWS Step Functions para ejecutar escenarios de prueba y proporcionar almacenamiento para los detalles de los escenarios de prueba.
Paso 4
Se implementa una topología de red de Amazon Virtual Private Cloud (Amazon VPC) con los contenedores de Amazon Elastic Container Service (Amazon ECS) de la solución ejecutándose en AWS Fargate.
Paso 5
Los contenedores incluyen una prueba de carga de Taurus con una imagen de contenedor conforme con Open Container Initiative (OCI) que se utiliza para generar carga con el fin de evaluar el rendimiento de su aplicación. Taurus es un marco de automatización de pruebas de código abierto. AWS aloja la imagen del contenedor en un repositorio público de Amazon Elastic Container Registry (Amazon ECR).
Paso 6
Se implementa una consola web con la tecnología de AWS Amplify en un bucket de S3 configurado para el alojamiento web estático.
Paso 7
Amazon CloudFront proporciona el acceso público y seguro al contenido del bucket del sitio web de la solución.
Paso 8
Durante la configuración inicial, la solución también crea un rol de administrador de solución predeterminado y envía una invitación de acceso a una dirección de correo electrónico de usuario especificada por el cliente.
Paso 9
Un grupo de usuarios de Amazon Cognito administra el acceso de los usuarios a la consola y a la API de API Gateway.
Paso 10
Después de implementar esta solución, puede utilizar la consola web para crear un escenario de prueba que defina una serie de tareas.
Paso 11
Los microservicios utilizan este escenario de prueba para ejecutar Amazon ECS en las tareas de Fargate en las regiones de AWS especificadas.
Paso 12
Además de almacenar los resultados en Amazon S3 y DynamoDB, una vez finalizada la prueba, la salida se registra en Amazon CloudWatch.
Paso 13
Si selecciona la opción de datos en directo, la solución envía los registros de CloudWatch para las tareas de Fargate a una función de Lambda durante la prueba para cada región en la que se ejecutó la prueba.
Paso 14
La función de Lambda luego publica los datos en el tema correspondiente en AWS IoT Core en la región en la que se implementó la pila principal. La consola web se suscribe al tema, y puede consultar los datos mientras la prueba se ejecuta en la consola web.
- Fecha de publicación

«En Calabrio, nuestra misión es ayudar a los centros de contacto a trabajar de manera más inteligente, rápida y mejor. Necesitábamos diseñar rápidamente una nueva característica de alto rendimiento para un cliente importante. Utilizamos las pruebas de carga distribuidas en AWS para probar el rendimiento de nuestro sistema a escala, sin necesidad de costosas licencias de pruebas empresariales ni de escribir código de orquestación personalizado para herramientas de código abierto. Con esta solución de AWS, diseñamos y ejecutamos pruebas con un volumen de tráfico seis veces superior al esperado y lanzamos la nueva característica correctamente y antes de lo previsto».
Contenido relacionado

Tanto si se trata de una empresa privada como de un servicio del sector público, necesita confiar en que su aplicación puede escalar con el aumento de las cargas de usuarios. Las pruebas de carga distribuidas en AWS le permiten automatizar las pruebas de la aplicación, comprender su rendimiento a escala y solucionar los cuellos de botella antes de lanzar su aplicación.