Présentation

Le test de charges distribuées sur AWS automatise les tests de performance à grande échelle, en montrant comment vos applications se comporteront dans différentes conditions de charge et en identifiant les problèmes de performances potentiels tout au long du cycle de vie de vos applications (y compris le développement, le transit, la production et la postproduction). Cette solution AWS simule des utilisateurs et des transactions allant de centaines à des millions, générant des transactions cohérentes sans qu’il soit nécessaire de provisionner les utilisateurs ou les serveurs.
La solution fournit des informations sur des domaines cruciaux, tels que l’évolutivité et la fiabilité des instances Amazon Elastic Compute Cloud (Amazon E2), Amazon Elastic Container Service (Amazon ECS) ou Amazon Elastic Kubernetes Service (Amazon EKS), les temps de démarrage à froid et d’exécution des fonctions AWS Lambda, les performances des requêtes de base de données Amazon Relational Database Service (Amazon RDS) et les temps de réponse d’Amazon CloudFront. En simulant des scénarios de charge réalistes, vous pouvez optimiser votre infrastructure en matière de performances et de rentabilité.
Avantages

Dimensionnez correctement votre infrastructure en obtenant des informations précises sur les performances de vos applications dans des conditions de charge variables, ce qui permet une allocation rentable des ressources.
Automatisez vos tests de charge en les planifiant ou en intégrant cette solution à votre pipeline d’intégration continue et de livraison continue (CI/CD), rationalisant ainsi votre processus de test.
Simulez le trafic réel provenant de plusieurs régions AWS pour évaluer le comportement de votre application sous diverses charges géographiques, optimisant ainsi les performances globales.
Concevez et intégrez des tests de charges distribuées de manière fluide avec les scripts JMeter, ce qui vous permet de personnaliser les tests en fonction des besoins uniques de votre application.
Détails techniques

Vous pouvez déployer automatiquement cette architecture à l’aide du guide d’implémentation et du modèle AWS CloudFormation qui l’accompagne pour les régions AWS.
Étape 1
Une API Amazon API Gateway pour invoquer les microservices de la solution (fonctions AWS Lambda).
Étape 2
Les microservices fournissent la logique métier nécessaire pour gérer les données de test et exécuter les tests.
Étape 3
Ces microservices interagissent avec Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB et AWS Step Functions pour exécuter les scénarios de test et stocker leurs détails.
Étape 4
Une topologie réseau Amazon Virtual Private Cloud (Amazon VPC) contient les conteneurs Amazon Elastic Container Service (Amazon ECS) de la solution qui s'exécutent sur AWS Fargate.
Étape 5
Les conteneurs incluent une image de conteneurs conforme OCI (Open Container Initiative) pour le test de charges Taurus, utilisé pour générer un test de charges des performances de votre application. Taurus est un cadre d'automatisation des tests open source. L'image de conteneurs est hébergée par AWS dans un référentiel public Amazon Elastic Container Registry (Amazon ECR).
Étape 6
Une console web à technologie AWS Amplify est déployée dans un compartiment S3 configuré pour l'hébergement web statique.
Étape 7
Amazon CloudFront fournit un accès public sécurisé au contenu du compartiment de site web de la solution.
Étape 8
Durant la configuration initiale, la solution crée également un rôle d'administrateur par défaut de la solution et envoie une demande d'accès à l'adresse électronique de l'utilisateur spécifiée par le client.
Étape 9
Un groupe d'utilisateurs Amazon Cognito gère l'accès des utilisateurs à la console et à l'API API Gateway.
Étape 10
Vous pouvez utiliser la console web, après le déploiement de la solution, pour créer un scénario de test qui se compose d'une série de tâches.
Étape 11
Les microservices utilisent les scénarios de test pour exécuter Amazon ECS sur les tâches Fargate dans les régions AWS spécifiées.
Étape 12
Outre le stockage des résultats dans Amazon S3 et DynamoDB, la sortie est consignée dans Amazon CloudWatch à la fin du test.
Étape 13
Si vous sélectionnez l'option de données en direct, lors du test, la solution envoie les journaux CloudWatch pour les tâches Fargate à une fonction Lambda, pour chaque région dans laquelle le test a été exécuté.
Étape 14
Ensuite, la fonction Lambda, publie les données dans la rubrique AWS IoT Core correspondante, dans la région où la pile principale a été déployée. La console web s'abonne à la rubrique et vous pouvez voir les données pendant que le test s'exécute dans la console web.
- Date de publication

« Chez Calabrio, notre mission est d'aider les centres de contact à travailler plus intelligemment, plus rapidement et plus efficacement. Nous avions besoin de concevoir rapidement une nouvelle fonctionnalité hautement performante pour un client important. Nous avons utilisé les tests de charge distribués sur AWS pour tester les performances de notre système à grande échelle, sans avoir besoin de licences de test coûteuses pour les entreprises ou d'écrire du code d'orchestration personnalisé pour les outils open source. Grâce à cette solution AWS, nous avons conçu et exécuté des tests pour un volume de trafic six fois supérieur à celui attendu, et nous avons lancé la nouvelle fonctionnalité avec succès et en avance sur le calendrier. »
Contenu connexe

Que vous soyez une entreprise privée ou un service public, vous voulez être sûr que votre application pourra évoluer au fur et à mesure de l'augmentation des charges d'utilisateurs. Le test des charges distribuées dans AWS vous permet d'automatiser le test d'applications, de comprendre comment il fonctionne à l’échelle et de corriger les goulets d'étranglement avant de publier votre application.