Considérations relatives au test des charges de travail durables sur Azure
Les organisations qui développent et déploient des solutions dans le cloud ont également besoin de tests fiables. Découvrez les considérations et recommandations relatives à l’exécution de tests de charge de travail et comment optimiser un modèle de test plus durable.
Important
Cet article fait partie de la série de charges de travail durables Azure Well-Architected . Si vous n’êtes pas familiarisé avec cette série, nous vous recommandons de commencer par qu’est-ce qu’une charge de travail durable ?
Efficacité des tests
Exécuter l’intégration, les performances, la charge ou tout autre test intense pendant les périodes à faible émission de carbone
L’exécution de l’intégration, des performances, de la charge ou de toute autre fonctionnalité de test intense peut entraîner un traitement très élevé. Une conception bien conçue pour tester les charges de travail déployées peut aider à garantir une utilisation complète des ressources disponibles, ce qui réduit les émissions de carbone.
Alignement de Green Software Foundation : Sensibilisation au carbone
Recommandation :
- Lorsque vous avez les données à votre disposition, prévoyez d’exécuter des tests lorsque le mix énergétique du centre de données utilise principalement de l’énergie renouvelable. Par exemple, il peut être plus avantageux d’effectuer des tests pendant la nuit dans certaines régions.
Automatiser ci/CD pour mettre à l’échelle les agents worker en fonction des besoins
L’exécution d’agents CI/CD sous-utilisés ou inactifs entraîne davantage d’émissions.
Alignement de Green Software Foundation : efficacité matérielle
Recommandation :
- Maintient l’utilisation du calcul élevée, en fonction de la demande actuelle, en évitant l’allocation de capacité inutile.
- Effectuez un scale-out uniquement si nécessaire, et lorsque vous ne testez pas, effectuez un scale-in. Au final, cela garantit qu’il n’y a pas de ressources de calcul inactives dans les environnements de test.
- Envisagez des services de plateforme optimisés comme les conteneurs plutôt que les tests dans une machine virtuelle, en utilisant la plateforme pour réduire la maintenance.
Envisager la mise en cache lors de l’utilisation d’agents CI/CD
L’utilisation de mécanismes de mise en cache pendant ci/CD peut réduire le temps de calcul et, par conséquent, les émissions de carbone.
Alignement de Green Software Foundation : Efficacité énergétique
Recommandation :
- Stocker les résultats des étapes dans un cache et les réutiliser entre différentes exécutions CI/CD lorsque cela est possible : quand des étapes prennent du temps processeur pour produire un artefact qui ne change pas souvent entre différentes exécutions, il est judicieux de l’enregistrer pour une utilisation ultérieure afin que le temps processeur ne soit pas perdu sur chaque exécution produisant le même artefact, encore et encore.
- Si l’agent CI/CD est auto-hébergé, utilisez un cache local pour l’agent pour réduire davantage les transferts de données et les émissions. Cela garantit que le cache n’est pas transféré sur le réseau, ce qui peut être une source importante d’émissions.
Fractionner des dépôts de code volumineux
Le fractionnement de dépôts volumineux peut aider les phases CI/CD, où seules les parties du code qui ont été modifiées sont compilées. Cela réduit le temps de calcul, ce qui réduit les émissions de carbone.
Alignement de Green Software Foundation : Efficacité énergétique
Recommandation :
- Fractionnez les dépôts de code volumineux, en séparant main code des bibliothèques et des dépendances.
- Publiez et réutilisez des artefacts et des bibliothèques de code qui sont communs à plusieurs référentiels.
Recommandation :
- Fractionnez les grands référentiels de code en plus petits, en séparant main code des bibliothèques et des dépendances.
- Publiez et réutilisez des artefacts et des bibliothèques de code qui sont communs à plusieurs référentiels.
Profilage et mesure
La mesure, le profilage et le test des charges de travail sont impératifs pour comprendre comment utiliser au mieux les ressources allouées.
Évaluer où la parallélisation est possible
Sans profilage et test corrects des charges de travail, il est difficile de savoir si elle utilise au mieux la plateforme sous-jacente et les ressources déployées.
Alignement de Green Software Foundation : mesure de la durabilité
Recommandation :
- Testez vos applications pour comprendre les demandes simultanées, le traitement simultané, etc.
- Si vous exécutez Machine Learning (ML) pour des tests, envisagez les machines avec gpu pour de meilleurs gains d’efficacité.
- Identifiez si la charge de travail est gourmande en performances et travaillez à l’optimisation.
- Considérez ce compromis : L’exécution de machines basées sur GPU pour les tests ML peut augmenter le coût.
Évaluer avec l’ingénierie du chaos
L’exécution de tests d’intégration, de performances et de charge augmente la fiabilité d’une charge de travail. Toutefois, l’introduction de l’ingénierie du chaos peut considérablement améliorer la fiabilité et la résilience et la façon dont les applications réagissent aux défaillances. Ce faisant, la charge de travail peut être optimisée pour gérer les défaillances de manière appropriée et avec moins de ressources gaspiller.
Alignement de Green Software Foundation : mesure de la durabilité
Recommandation :
- Utilisez les tests de charge ou l’ingénierie du chaos pour évaluer la façon dont la charge de travail gère les pannes de plateforme et les pics ou baisses de trafic. Cela permet d’augmenter la résilience du service et la capacité à réagir aux défaillances, ce qui permet une gestion des erreurs plus optimisée.
- Considérez ce compromis : L’injection de pannes pendant l’ingénierie du chaos et l’augmentation de la charge sur n’importe quel système augmente également les émissions utilisées pour les ressources de test. Évaluez comment et quand vous pouvez utiliser l’ingénierie du chaos pour augmenter la fiabilité de la charge de travail tout en tenant compte de l’impact climatique de l’exécution de sessions de test inutiles.
- Un autre angle à cela est l’utilisation de l’ingénierie du chaos pour tester les pannes d’énergie ou les moments avec des émissions de carbone plus élevées : envisagez de mettre en place des tests qui mettent votre application au défi de consommer le moins d’énergie possible. Définissez la façon dont l’application réagira à de telles conditions avec une version « éco » spécifique informant les utilisateurs qu’ils émettent le moins de carbone possible en sacrifiant certaines fonctionnalités et éventuellement certaines performances. Il peut également s’agir de votre application de référence pour évaluer sa durabilité.
Établir des seuils de processeur et de mémoire dans les tests
Aidez à créer des tests pour tester la durabilité dans votre application. Envisagez d’avoir une mesure de référence de l’utilisation du processeur et de détecter les modifications anormales apportées à la base de référence d’utilisation du processeur lors de l’exécution des tests. Avec une base de référence, les décisions non optimales prises dans les modifications récentes du code peuvent être découvertes plus tôt.
L’ajout de tests et de portes qualité dans le pipeline de déploiement et de test permet d’éviter de déployer des solutions non durables, ce qui contribue à réduire les émissions.
Alignement de Green Software Foundation : Efficacité énergétique
Recommandation :
- Surveillez les allocations de processeur et de mémoire lors de l’exécution de tests d’intégration ou de tests unitaires.
- Recherchez des zones de consommation de ressources anormalement élevées dans le code de l’application et concentrez-vous sur l’atténuation de celles-ci en premier.
- Configurez des alertes ou des échecs de test si vous dépassez les valeurs de base établies, ce qui évite de déployer des charges de travail non durables.
- Considérez ce compromis : à mesure que les applications augmentent, la base de référence peut avoir besoin de changer en conséquence pour éviter d’échouer aux tests lors de l’introduction de nouvelles fonctionnalités.
Étape suivante
Passez en revue les considérations relatives à la conception pour les procédures opérationnelles.