

# Processus d’amélioration
<a name="improvement-process"></a>

 Le processus d’amélioration de l’architecture implique de comprendre ce dont vous disposez et ce que vous pouvez faire pour vous améliorer : choisir des cibles à améliorer, tester les améliorations, adopter celles portant leurs fruits, mesurer votre réussite et partager ce que vous avez appris afin de le reproduire ailleurs, puis répéter le cycle. 

 Les objectifs de vos améliorations peuvent être les suivants : 
+  Éliminer le gaspillage, la faible utilisation et les ressources inutilisées ou inactives. 
+  Maximiser la valeur des ressources que vous consommez. 

**Note**  
Utiliser toutes les ressources que vous allouez et effectuer le même travail avec le minimum de ressources possible. 

 Aux premiers stades de l’optimisation, se concentrer d’abord sur les domaines engendrant du gaspillage ou une faible utilisation, puis passer à des optimisations plus ciblées correspondant à votre charge de travail spécifique. 

 Contrôler les changements dans la consommation de vos ressources au fil du temps. Identifier où les changements cumulés entraînent des augmentations inefficaces ou importantes dans la consommation des ressources. Déterminer le besoin d’apporter des améliorations afin de répondre aux changements dans la consommation et intégrer les améliorations prioritaires. 

 Les étapes suivantes sont conçues pour être un processus itératif qui évalue, hiérarchise, teste et déploie des améliorations axées sur la durabilité pour les charges de travail cloud. 

1.  **Identifier les objectifs d’amélioration :** examinez vos charges de travail par rapport aux bonnes pratiques de durabilité identifiées dans ce document et identifiez les objectifs d’amélioration. 

1.  **Évaluer les améliorations spécifiques :** évaluez les modifications spécifiques en vue d’améliorations potentielles, pour les coûts projetés et les risques métiers. 

1.  **Établir des priorités et planifier les améliorations :** priorisez les modifications qui apporteront les améliorations les plus importantes à moindre coût et au moindre risque, et définissez une stratégie de test et de mise en œuvre. 

1.  **Tester et valider les améliorations :** mettez en œuvre les modifications dans les environnements de test pour valider leur potentiel d’amélioration. 

1.  **Déployer les modifications apportées à la production :** implémentez les modifications dans les environnements de production. 

1.  **Evaluez les résultats et reproduisez les succès :** recherchez des opportunités de reproduire les améliorations fructueuses sur toutes les charges de travail et annulez les modifications dont les résultats ne conviennent pas. 

## Exemple de scénario
<a name="example-scenario"></a>

 L’exemple de scénario suivant est référencé plus loin dans ce document pour illustrer chaque étape du processus d’amélioration. 

 Votre entreprise a une charge de travail qui effectue des manipulations d'images complexes sur des EC2 instances Amazon et stocke les fichiers modifiés et originaux pour que les utilisateurs puissent y accéder. Les activités de traitement sont CPU intensives et les fichiers de sortie sont extrêmement volumineux. 

# Identifier les objectifs d’amélioration
<a name="identify-targets-for-improvement"></a>

 Identifiez les bonnes pratiques qui peuvent vous aider à atteindre vos objectifs de durabilité. Vous trouverez des descriptions détaillées de ces [bonnes pratiques](best-practices-for-sustainability-in-the-cloud.md) et des recommandations d’amélioration plus loin dans ce document. 

 Examinez vos charges de travail et les ressources utilisées. Identifier les *points chauds* tels que les grands déploiements et les ressources fréquemment utilisées. Évaluez ces points chauds pour déterminer les possibilités d’améliorer l’utilisation efficace de vos ressources et de réduire le total des ressources nécessaires pour atteindre vos résultats commerciaux. 

 Examinez votre charge de travail par rapport aux bonnes pratiques et identifiez les candidats à l’amélioration. 

 En appliquant cette étape au [Exemple de scénario](improvement-process.md#example-scenario), vous identifierez les bonnes pratiques suivantes comme objectifs d’amélioration probables : 
+  Utiliser la quantité minimale de matériel pour répondre à vos besoins 
+  Utilisez les technologies qui prennent le mieux en charge vos modèles d’accès aux données et de stockage 

## Ressources
<a name="resources-1"></a>
+  [Optimisation de votre AWS infrastructure pour la durabilité, partie I : calcul](https://aws.amazon.com/blogs/architecture/optimizing-your-aws-infrastructure-for-sustainability-part-i-compute/) 
+  [Optimisation de votre AWS infrastructure pour la durabilité, partie II : stockage](https://aws.amazon.com/blogs/architecture/optimizing-your-aws-infrastructure-for-sustainability-part-ii-storage/) 
+  [Optimisation de votre AWS infrastructure pour la durabilité, partie III : mise en réseau](https://aws.amazon.com/blogs/architecture/optimizing-your-aws-infrastructure-for-sustainability-part-iii-networking/) 

# Évaluer des améliorations spécifiques
<a name="evaluate-specific-improvements"></a>

 Identifiez les ressources allouées par votre charge de travail pour mener à bien une unité de travail. Évaluez les améliorations potentielles et estimez leur impact potentiel, le coût de mise en œuvre et les risques associés. 

 Pour mesurer les améliorations au fil du temps, déterminez d'abord ce que vous avez provisionné AWS et comment ces ressources sont consommées. 

 Commencez par un aperçu complet de votre AWS utilisation, puis utilisez les rapports sur les AWS coûts et l'utilisation pour identifier les points chauds. Utilisez cet [exemple de code AWS](https://github.com/aws-samples/aws-usage-queries) pour vous aider à consulter et à analyser votre rapport à l’aide d’Amazon Athena. 

## Métriques de proxy
<a name="proxy-metrics"></a>

 Lorsque vous évaluez des modifications spécifiques, vous devez également évaluer les métriques qui quantifient le mieux l’effet de cette modification sur la ressource associée. Ces métriques sont appelées *métriques proxy*. Sélectionnez les métriques de proxy qui reflètent le mieux le type d’amélioration que vous évaluez et les ressources ciblées par l’amélioration. Ces métriques peuvent évoluer avec le temps. 

 Les ressources allouées pour soutenir votre charge de travail incluent les ressources de calcul, de stockage et de réseau. Évaluez les ressources allouées à l’aide de vos métriques de proxy pour déterminer comment ces ressources sont consommées. 

 Utilisez vos métriques de proxy afin de mesurer les ressources allouées pour atteindre les résultats commerciaux. 


|  **Ressource**  |  **Exemple de métriques de proxy**  |  **Objectifs d’amélioration**  | 
| --- | --- | --- | 
|  Calcul  |  v CPU minutes  |  Optimiser l’utilisation des ressources allouées  | 
|  Stockage  |  Go alloués  |  Réduire les ressources totales allouées  | 
|  Réseau  |  Go transférés ou paquets transférés  |  Réduire la distance transférée et le total de Go transférés  | 

## Métriques commerciales
<a name="business-metrics"></a>

 Sélectionnez des métriques commerciales pour quantifier la réalisation des résultats commerciaux. Les indicateurs de votre activité doivent refléter la valeur fournie par votre charge de travail, par exemple le nombre d'utilisateurs actifs simultanés, les API appels traités ou le nombre de transactions effectuées. Elles peuvent évoluer avec le temps. Soyez prudent lors de l’évaluation des métriques commerciales basées sur les coûts, car l’incohérence de la valeur des transactions invalide les comparaisons. 

## Indicateurs de performance clés
<a name="key-performance-indicators"></a>

 À l’aide de la formule suivante, divisez les ressources allouées par les résultats commerciaux obtenus pour déterminer les ressources allouées par unité de travail. 

![\[Diagramme illustrant cette formule : ressources allouées par unité de travail = métrique de proxy pour la ressource allouée/métrique commerciale pour le résultat\]](http://docs.aws.amazon.com/fr_fr/wellarchitected/latest/sustainability-pillar/images/key-performance-indicators-formula.png)


 Utilisez vos ressources par unité de travail comme les vôtresKPIs. Définissez des points de référence basés sur les ressources allouées comme base de comparaison. 


|  **Ressource**  |  **Exemple KPIs**  |  **Objectifs d’amélioration**  | 
| --- | --- | --- | 
|  Calcul  |  v CPU minutes par transaction  |  Optimiser l’utilisation des ressources allouées  | 
|  Stockage  |  Go par transaction  |  Réduire les ressources totales allouées  | 
|  Réseau  |  Go transférés par transaction ou paquets transférés par transaction  |  Réduire la distance transférée et le total de Go transférés  | 

## Estimer l’amélioration
<a name="estimate-improvement"></a>

 Estimez l’amélioration en tant que réduction quantitative des ressources allouées (comme indiqué par vos métriques indirectes) et en pourcentage de variation par rapport aux ressources de base allouées par unité de travail. 


|  **Ressource**  |  **Exemple KPIs**  |  **Objectifs d’amélioration**  | 
| --- | --- | --- | 
|  Calcul  |  % de réduction du nombre de vCPUs minutes par transaction  |  Optimiser l’utilisation  | 
|  Stockage  |  % de réduction des Go par transaction  |  Réduire les ressources totales allouées  | 
|  Réseau  |  % de réduction des Go transférés par transaction ou des paquets transférés par transaction  |  Réduire la distance transférée et le total de Go transférés  | 

## Évaluer les améliorations
<a name="evaluate-improvements"></a>

 Évaluez les améliorations potentielles par rapport au bénéfice net attendu. Estimez le temps, le coût et le niveau d’effort de mise en œuvre et de maintenance, ainsi que les risques commerciaux tels que les impacts imprévus. 

 Les améliorations ciblées impliquent souvent des compromis entre les types de ressources consommées. Par exemple, pour réduire la consommation de calcul, vous pouvez stocker un résultat, ou pour limiter les données transférées, vous pouvez traiter les données avant d’envoyer le résultat à un client. Ces [compromis](sustainability-as-a-non-functional-requirement.md) sont abordés plus en détail ultérieurement. 

 Incluez les exigences non fonctionnelles lors de l’évaluation des risques pour votre charge de travail, y compris la sécurité, la fiabilité, l’efficacité des performances, l’optimisation des coûts et l’impact des améliorations sur votre capacité à exploiter votre charge de travail. 

 En appliquant cette étape au [Exemple de scénario](improvement-process.md#example-scenario), vous évaluerez les améliorations cibles avec les résultats suivant : 


|  **Bonne pratique**  |  **Amélioration ciblée**  |  **Potential**  |  **Coût**  |  **Risque**  | 
| --- | --- | --- | --- | --- | 
|  Utiliser la quantité minimale de matériel pour répondre à vos besoins  |  Mettre en œuvre la mise à l’échelle prédictive pour réduire les périodes de faible utilisation  |  Moyen  |  Faible  |  Faible  | 
|  Utilisez les technologies qui prennent le mieux en charge vos modèles d’accès aux données et de stockage  |  Mettre en œuvre des mécanismes de compression plus efficaces pour réduire le stockage total et le temps nécessaire pour y parvenir  |  Élevé  |  Faible  |  Faible  | 

 La mise en œuvre de la mise à l'échelle prédictive réduit les v CPU heures consommées par les instances sous-utilisées ou inutilisées, offrant ainsi des avantages modérés par rapport aux mécanismes de dimensionnement existants, avec une réduction estimée à 11 % des ressources consommées. Les coûts impliqués sont faibles et incluent la configuration des ressources du cloud et le fonctionnement du dimensionnement prédictif pour Amazon EC2 Auto Scaling. Le risque réside dans la limitation des performances lorsque la montée en puissance est effectuée de manière réactive en réponse à une demande dépassant les prévisions. 

 La mise en œuvre d’une compression plus efficace peut avoir un impact significatif avec des réductions importantes de la taille des fichiers sur toutes les images originales et les images manipulées, avec une réduction estimée de 25 % des besoins de stockage en production. La mise en œuvre du nouvel algorithme est une solution de substitution impliquant peu d’efforts et peu de risques. 

# Prioriser et planifier les améliorations
<a name="prioritize-and-plan-improvements"></a>

 Hiérarchisez les améliorations identifiées en fonction de l’impact anticipé le plus important avec les coûts les plus bas et un risque acceptable. 

 Choisissez sur quelles améliorations vous concentrer initialement et incluez -les dans votre feuille de route de planification et de développement des ressources. 

 Appliquer cette étape au [Exemple de scénario](improvement-process.md#example-scenario), vous hiérarchiserez les améliorations cibles comme suit : 


|  **Priorité**  |  **Amélioration**  |  **Potential**  |  **Coût**  |  **Risque**  | 
| --- | --- | --- | --- | --- | 
|  1  |  Mettre en œuvre des mécanismes de compression plus efficaces  |  Élevé  |  Faible  |  Faible  | 
|  2  |  Utiliser la mise à l’échelle prédictive  |  Moyen  |  Faible  |  Faible  | 

 Le potentiel élevé, le faible coût et le risque de mise à jour de la compression des fichiers en font une cible de grande valeur pour votre entreprise et une priorité par rapport à la mise en œuvre de la mise à l’échelle prédictive. Vous déterminez que la mise en œuvre de la mise à l’échelle prédictive avec son impact potentiel moyen, son faible coût et son faible risque doit être l’amélioration prioritaire une fois la compression des fichiers terminée. 

 Vous affectez un membre de l’équipe pour mettre en œuvre une compression de fichiers améliorée et ajouter la mise à l’échelle prédictive à votre backlog. 

# Tester et valider les améliorations
<a name="test-and-validate-improvements"></a>

 Réalisez de petits tests avec un investissement minimal pour limiter le risque que présenterait une initiative mise à grande échelle. 

 Implémentez une version représentative de votre charge de travail dans votre environnement de test pour limiter les coûts et les risques liés aux tests et à la validation. Effectuez un ensemble prédéfini de transactions de test, mesurez les ressources allouées et déterminez les ressources utilisées par unité de travail pour établir un point de référence pour les tests. 

 Mettez en œuvre votre objectif d’amélioration dans l’environnement de test et répétez le test en utilisant la même méthodologie dans les mêmes conditions. Mesurez ensuite les ressources allouées et les ressources utilisées par unité de travail lorsque votre amélioration est intégrée. 

 Calculez la variation en pourcentage par rapport au point de référence (ressources allouées par unité de travail) et déterminez la réduction quantitative attendue des ressources allouées dans votre environnement de production. Comparez ces valeurs aux valeurs anticipées. Déterminez si le résultat est un niveau d’amélioration acceptable. Évaluez si les compromis liés aux ressources supplémentaires consommées rendent le bénéfice net de l’amélioration inacceptable. 

 Déterminez si l’amélioration est un succès et si des ressources doivent être investies dans la mise en œuvre de ce changement en production. Si le changement est évalué comme infructueux à ce stade, redirigez vos ressources pour tester et valider votre prochaine cible et poursuivez le cycle d’amélioration. 


|  **% de réduction des ressources allouées par unité de travail**  |  **Réduction quantitative des ressources allouées**  |  **Action**  | 
| --- | --- | --- | 
|  Conforme aux attentes  |  Conforme aux attentes  |  Procéder à l’amélioration  | 
|  Non conforme aux attentes  |  Conforme aux attentes  |  Procéder à l’amélioration  | 
|  Conforme aux attentes  |  Non conforme aux attentes  |  Poursuivre une autre amélioration  | 
|  Non conforme aux attentes  |  Non conforme aux attentes  |  Poursuivre une autre amélioration  | 

 En appliquant cette étape au [Exemple de scénario](improvement-process.md#example-scenario), vous effectuez des tests pour valider le succès. 

Après avoir effectué les tests sur l’algorithme de compression amélioré, le pourcentage de réduction des ressources allouées par unité de travail (le stockage requis à la fois pour l’image d’origine et l’image modifiée) est conforme aux attentes avec une réduction moyenne de 30 % du stockage alloué et une augmentation négligeable de la charge de calcul.

Vous déterminez que les ressources de calcul supplémentaires requises pour appliquer l’algorithme de compression amélioré aux fichiers existants en production sont insignifiantes par rapport à la réduction de stockage obtenue. Vous avez confirmé le succès de la réduction quantitative des ressources requises (TBsde stockage), et l'amélioration est approuvée pour le déploiement en production.

# Déployer les modifications en production
<a name="deploy-changes-to-production"></a>

 Mettez en œuvre les améliorations testées, validées et approuvées en production. Effectuez la mise en œuvre à l’aide de déploiements limités, confirmez la fonctionnalité de votre charge de travail, testez la réduction réelle des ressources allouées et des ressources consommées par unité de travail dans le cadre du déploiement limité, puis identifiez les conséquences imprévues potentielles du changement. Procédez aux déploiements complets après des tests réussis. 

 Annulez les modifications si les tests échouent ou si vous identifiez des conséquences imprévues inacceptables pour cette modification. 

 En appliquant cette étape au [Exemple de scénario](improvement-process.md#example-scenario), procédez comme suit : 

 Vous implémentez les modifications en production à l’aide d’un déploiement limité via une méthodologie de déploiement bleu-vert. Les tests de fonctionnalité sur les instances nouvellement déployées aboutissent. Vous constatez une réduction moyenne de 26 % du stockage alloué pour les fichiers image originaux et les fichiers manipulés. Vous ne voyez aucune preuve d’augmentation de la charge de calcul lors de la compression de nouveaux fichiers. 

 Vous remarquez une diminution imprévue du temps écoulé pour compresser les fichiers image, et vous attribuez ce comportement au code hautement optimisé pour le nouvel algorithme de compression. 

 Vous procédez au déploiement complet de la nouvelle version. 

# Mesurer les résultats et reproduire les améliorations fructueuses
<a name="measure-results-and-replicate-successes"></a>

Mesurez les résultats et reproduisez les améliorations fructueuses de la manière suivante : 
+ Mesurez l’amélioration initiale des ressources allouées par unité de travail et la diminution quantitative des ressources allouées. 
+  Comparez les estimations initiales et les résultats des tests à vos mesures de production. Identifiez les facteurs qui pourraient avoir contribué aux différences et mettez à jour vos méthodologies d’estimation et de test, le cas échéant. 
+  Déterminez le succès, ainsi que le degré de succès, et partagez les résultats avec les parties prenantes.
+  Si vous avez dû annuler des modifications en raison d’échecs de tests ou de conséquences négatives imprévues, identifiez les facteurs contributifs. Itérez là où cela est possible ou évaluez de nouvelles approches pour atteindre les objectifs liés à la modification.
+  Exploitez les enseignements que vous avez tirés, définissez des normes et appliquez les améliorations fructueuses à d’autres systèmes qui pourraient en bénéficier de la même manière. Capturez et partagez votre méthodologie, les artefacts associés et les bénéfices nets entre les équipes et les organisations afin que d’autres puissent adopter votre norme et reproduire votre succès. 
+ Surveillez les ressources allouées par unité de travail et suivez les changements et l’impact total au fil du temps. Les modifications apportées à votre charge de travail, ou la façon dont vos clients consomment votre charge de travail, peuvent avoir un impact sur l’efficacité de votre amélioration. Réévaluez les possibilités d’amélioration si vous remarquez une diminution significative à court terme de l’efficacité de votre amélioration ou une réduction cumulée de l’efficacité au fil du temps.
+ Quantifiez le bénéfice net de votre amélioration au fil du temps (y compris les bénéfices reçus par les autres équipes qui ont appliqué votre amélioration, le cas échéant) pour prouver le retour sur investissement de vos activités d’amélioration. 

 En appliquant cette étape au [Exemple de scénario](improvement-process.md#example-scenario), vous mesurez les résultats suivants. 

 Votre charge de travail affiche une amélioration initiale de 23 % de réduction des besoins en stockage après le déploiement et l’application du nouvel algorithme de compression aux fichiers image existants. 

 La valeur mesurée est largement en accord avec les estimations initiales (25 %), et la différence significative par rapport aux tests (30 %) est déterminée comme étant le résultat du fait que les fichiers image utilisés dans les tests ne sont pas représentatifs des fichiers image présents en production. Vous modifiez le jeu d’images de test pour mieux refléter les images en production. 

 L’amélioration est couronnée de succès. La réduction totale du stockage alloué est inférieure de 2 % aux 25 % estimés, mais 23 % représente toujours une amélioration considérable de l’impact sur la durabilité et s’accompagne d’une réduction des coûts équivalente. 

 Les seules conséquences imprévues du changement sont la réduction bénéfique du temps écoulé pour effectuer la compression et une réduction équivalente v consommée. CPU Ces améliorations sont attribuées au code hautement optimisé. 

 Vous définissez un projet open source interne dans lequel vous partagez votre code, les artefacts associés, des conseils sur la façon d’implémenter la modification et les résultats de votre implémentation. Le projet open source interne permet à vos équipes d’adopter facilement le code pour tous leurs cas d’utilisation de stockage de fichiers persistants. Vos équipes adoptent l’amélioration comme standard. Les avantages secondaires du projet open source interne sont que tous ceux qui adoptent la solution bénéficient des améliorations apportées à la solution, et n’importe qui peut apporter des améliorations au projet. 

 Vous publiez votre amélioration fructueuse et partagez le projet open source au sein de votre organisation. Chaque équipe qui adopte la solution bénéficie des mêmes avantages avec un investissement minimum, et contribue au bénéfice net reçu de votre investissement. Vous publiez ces données comme un témoignage de réussite continu. 

 Vous continuez à surveiller l’impact de l’amélioration au fil du temps et apporterez des modifications au projet open source interne si nécessaire. 