Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Activités préalables au déploiement
Conception de l'environnement
L'environnement dans lequel vous testez et évaluez votre application influe sur la précision avec laquelle vous pouvez la tester et sur votre degré de confiance dans le fait que ces résultats reflètent fidèlement ce qui se passera en production. Vous pouvez peut-être effectuer des tests d'intégration localement sur les machines des développeurs en utilisant des services tels qu'Amazon DynamoDB (voir Configuration de DynamoDB en local dans la documentation DynamoDB). Cependant, à un moment donné, vous devez effectuer des tests dans un environnement qui reproduit votre environnement de production afin d'obtenir des résultats aussi fiables que possible. Cet environnement étant coûteux, nous vous recommandons d'adopter une approche progressive, ou en pipeline, dans le cadre de laquelle les environnements de type production apparaîtront plus tard dans le pipeline.
Tests d'intégration
Les tests d'intégration sont le processus qui consiste à vérifier qu'un composant bien défini d'une application exécute correctement ses fonctions lorsqu'il fonctionne avec des dépendances externes. Ces dépendances externes peuvent être d'autres composants développés sur mesure, AWS des services que vous utilisez pour votre application, des dépendances tierces et des dépendances sur site. Ce guide se concentre sur les tests d'intégration qui démontrent la résilience de votre application. Cela suppose qu'il existe déjà des tests unitaires et d'intégration qui démontrent la précision fonctionnelle de votre logiciel.
Nous vous recommandons de concevoir des tests d'intégration qui testent spécifiquement les modèles de résilience que vous avez mis en œuvre, tels que les modèles de disjoncteurs ou le délestage (voir Étape 2 : Conception et mise en œuvre). Les tests d'intégration axés sur la résilience impliquent souvent d'appliquer une charge spécifique à l'application ou d'introduire intentionnellement des perturbations dans l'environnement en utilisant des fonctionnalités telles que AWS Fault Injection Service ().AWS FIS
Pipelines de déploiement automatisés
Le déploiement et les tests dans vos environnements de pré-production sont des tâches répétitives et complexes qu'il est préférable de laisser à l'automatisation. L'automatisation de ce processus permet de libérer des ressources humaines et de réduire les risques d'erreur. Le mécanisme d'automatisation de ce processus est souvent appelé pipeline. Lorsque vous créez votre pipeline, nous vous recommandons de configurer une série d'environnements de test qui se rapprochent de plus en plus de votre configuration de production. Vous utilisez cette série d'environnements pour tester votre application à plusieurs reprises. Le premier environnement fournit un ensemble de fonctionnalités plus limité que l'environnement de production, mais son coût est nettement inférieur. Les environnements suivants devraient ajouter des services et évoluer pour mieux refléter l'environnement de production.
Commencez par tester dans le premier environnement. Une fois que vos déploiements ont réussi tous vos tests dans le premier environnement de test, laissez l'application s'exécuter sous une certaine charge pendant un certain temps pour voir si des problèmes surviennent au fil du temps. Vérifiez que vous avez correctement configuré l'observabilité (voir Précision des alarmes plus loin dans ce guide) afin de pouvoir détecter tout problème éventuel. Lorsque cette période d'observation s'est terminée avec succès, déployez votre application dans votre environnement de test suivant et répétez le processus en ajoutant des tests ou une charge supplémentaires selon les besoins de l'environnement. Après avoir suffisamment testé votre application de cette manière, vous pouvez utiliser les méthodes de déploiement que vous avez précédemment configurées pour déployer l'application en production (voir Définir les stratégies CI/CD plus haut dans ce guide). L'article Automating safe and handoff deployments
Test de charge
À première vue, les tests de charge ressemblent à des tests d'intégration. Vous testez une fonction discrète de votre application et ses dépendances externes pour vérifier qu'elle fonctionne comme prévu. Les tests de charge vont ensuite au-delà des tests d'intégration pour se concentrer sur le fonctionnement de l'application sous des charges bien définies. Les tests de charge nécessitent la vérification des fonctionnalités correctes. Ils doivent donc être effectués après un test d'intégration réussi. Il est important de comprendre dans quelle mesure l'application répond aux charges attendues et comment elle se comporte lorsque la charge dépasse les attentes. Cela vous permet de vérifier que vous avez mis en œuvre les mécanismes nécessaires pour garantir la résilience de votre application en cas de charge extrême. Pour un guide complet sur les tests de charge AWS, consultez la section Test de charge distribué sur AWS