

# Modèles logiciels et d'architecture
<a name="a-sus-software-architecture-patterns"></a>

**Topics**
+ [SUS 3 Comment tirer parti des modèles logiciels et d'architecture afin de soutenir vos objectifs de durabilité ?](w2aac19c15b9b5.md)

# SUS 3 Comment tirer parti des modèles logiciels et d'architecture afin de soutenir vos objectifs de durabilité ?
<a name="w2aac19c15b9b5"></a>

Mettez en œuvre des modèles permettant de lisser les charges et de conserver une haute utilisation constante des ressources déployées afin de réduire les ressources consommées. Les composants peuvent devenir inactifs s'ils ne sont pas utilisés à la suite de changements de comportement des utilisateurs dans le temps. Révisez les modèles et l'architecture afin de consolider les composants sous-utilisés et d'augmenter l'utilisation globale. Mettez hors service les composants qui ne sont plus nécessaires. Comprenez les performances des composants de vos charges de travail et optimisez les composants qui consomment le plus de ressources. Soyez au courant des appareils que vos clients utilisent pour accéder à vos services et mettez en œuvre des modèles qui réduisent le besoin de mettre à niveau les appareils. 

 Bonnes pratiques : 

# SUS03-BP01 Optimiser les logiciels et l'architecture pour les tâches asynchrones et prévues
<a name="sus_sus_software_a2"></a>

 Utilisez des conceptions et des architectures logicielles efficaces pour réduire les ressources moyennes nécessaires par unité de travail. Mettez en œuvre des mécanismes qui entraînent une utilisation uniforme des composants pour réduire les ressources inactives entre deux tâches et réduire l'impact des pics de charge. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Faible 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Mettez en file d'attente les demandes qui ne nécessitent pas d'être traitées immédiatement. 
+  Augmentez la sérialisation pour aplanir l'utilisation sur votre pipeline. 
+  Modifiez la capacité des composants individuels pour prévenir les ressources inactives attendant une entrée. 
+  Créez des tampons et établissez une limitation de débit pour lisser la consommation des services externes. 
+  Utilisez le matériel le plus efficace disponible pour les optimisations de votre logiciel. 
+  Utilisez des architectures basées sur les files d'attente, la gestion des pipelines et les exécuteurs d'instances à la demande pour optimiser l'utilisation du traitement par lots. 
+  Planifiez les tâches pour éviter les pics de charge et la contention des ressources issus d'une exécution simultanée. 
+  Planifiez les tâches aux moments de la journée où l'intensité en carbone de l'alimentation est la plus faible. 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Qu'est-ce qu'Amazon Simple Queue Service ?](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) 
+  [Qu'est-ce qu'Amazon MQ ?](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html) 
+  [Mise à l'échelle basée sur Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) 
+  [Qu'est-ce qu'AWS Step Functions ?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 
+  [Qu'est-ce qu'AWS Lambda ?](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 
+  [Utilisation d'AWS Lambda avec Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html) 
+  [Qu'est-ce qu'Amazon EventBridge ?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 

 **Vidéos connexes :** 
+  [Building Sustainably on AWS](https://www.youtube.com/watch?v=ARAitMSIxc8) 
+  [Moving to event-driven architectures](https://www.youtube.com/watch?v=h46IquqjF3E) 

# SUS03-BP02 Supprimer ou refactoriser les composants de charges de travail faiblement utilisés ou inutilisés
<a name="sus_sus_software_a3"></a>

 Contrôlez l'activité de la charge de travail pour identifier des changements dans l'utilisation des composants individuels dans le temps. Supprimez les composants utilisés et qui ne sont plus nécessaires, et refactorisez les composants peu utilisés afin de limiter le gaspillage des ressources. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Faible 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Analysez la charge (à l'aide d'indicateurs tels que le flux de transaction et les appels d'API) sur des composants fonctionnels pour identifier les composants pas et peu utilisés. 
+  Mettez hors service les composants qui ne sont plus nécessaires. 
+  Refactorisez les composants sous-utilisés. 
+  Consolidez les composants sous-utilisés avec d'autres ressources pour améliorer l'efficacité de l'utilisation. 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Qu'est-ce que AWS X-Ray ?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Qu'est-ce qu'Amazon CloudWatch ?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [Utiliser ServiceLens pour contrôler l'état de vos applications](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ServiceLens.html) 
+  [Nettoyage automatisé des images inutilisées dans Amazon ECR](https://aws.amazon.com/blogs/compute/automated-cleanup-of-unused-images-in-amazon-ecr/) 

 **Vidéos connexes :** 
+  [Building Sustainably on AWS](https://www.youtube.com/watch?v=ARAitMSIxc8) 

# SUS03-BP03 Optimiser les sections de votre code qui consomment le plus de temps ou de ressources
<a name="sus_sus_software_a4"></a>

 Contrôlez l'activité de la charge de travail pour identifier les composants de l'application qui consomment le plus de ressources. Optimisez le code exécuté dans ces composants pour réduire l'utilisation des ressources tout en optimisant la performance. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Faible 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Contrôlez la performance comme une fonction de l'utilisation de la ressource pour identifier des composants ayant des exigences élevées en ressources par unité de travail comme cibles de l'optimisation. 
+  Utilisez un profileur de code pour identifier les sections du code les plus longues ou qui consomment le plus de ressources dans le but de les optimiser. 
+  Remplacez les algorithmes par des versions plus efficaces qui produisent le même résultat. 
+  Utilisez l'accélération matérielle pour améliorer l'efficacité de blocs de code avec de longs délais d'exécution. 
+  Utilisez le système d'exploitation et le langage de programmation les plus efficaces pour la charge de travail. 
+  Supprimez le tri et le formatage inutiles. 
+  Utilisez des modèles de transfert des données qui réduisent les ressources utilisées en fonction de la fréquence des changements de données et de leur consommation. Par exemple, l'état push change les informations pour un client au lieu de consommer des ressources à interroger et recevoir des messages sans valeur n’annonçant aucun changement. 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Qu'est-ce qu'Amazon CloudWatch ?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [Qu'est-ce qu'Amazon CodeGuru Profiler ?](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 
+  [Instances FPGA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fpga-getting-started.html) 
+  [Les kits de développement logiciel (SDK) AWS sur les outils pour créer sur AWS](https://aws.amazon.com/tools/) 

 **Vidéos connexes :** 
+  [Building Sustainably on AWS](https://www.youtube.com/watch?v=ARAitMSIxc8) 

# SUS03-BP04 Optimiser l'impact sur les appareils et les équipements des clients.
<a name="sus_sus_software_a5"></a>

 Ayez une compréhension des appareils et du matériel utilisés par vos clients pour consommer vos services, leur cycle de vie prévu et l'impact financier et durable que représente le remplacement de ces composants. Mettez en œuvre des modèles et des architectures logiciels pour réduire le besoin pour les clients de remplacer les appareils et de mettre à niveau leur matériel. Par exemple, mettez en œuvre de nouvelles fonctions en utilisant du code compatible avec du matériel et des versions de systèmes d'exploitation plus anciens, ou gérez la taille des charges utiles afin qu'elles n'excèdent pas la capacité de stockage de l'appareil cible. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Faible 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Effectuez l'inventaire des appareils qu'utilisent vos clients. 
+  Effectuez des tests gérés à l'aide de Device Farms et des ensembles de matériel représentatifs pour comprendre l'impact de vos changements et itérer le développement dans le but d'optimiser les appareils pris en charge. 
+  Prenez en compte la bande passante et la latence du réseau lorsque vous créez des charges utiles et intégrez des capacités qui aident vos applications à fonctionner correctement sur des liens à faible bande passante et à latence élevée. 
+  Pré-traitez les charges utiles de données afin de réduire les exigences de traitement locales et de limiter les exigences de transfert des données. 
+  Réalisez des activités gourmandes en calcul côté serveur (comme le rendu d'images) ou utilisez le streaming d'applications pour améliorer l'expérience utilisateur sur des appareils plus anciens. 
+  Segmentez et paginez la sortie, en particulier, pour les séances interactives, afin de gérer les charges utiles et limiter les exigences en matière de stockage local. 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Qu'est-ce qu'AWS Device Farm ?](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) 
+  [Documentation Amazon AppStream 2.0](https://docs.aws.amazon.com/appstream2/) 
+  [NICE DCV](https://docs.aws.amazon.com/dcv/) 
+  [Documentation Amazon Elastic Transcoder](https://docs.aws.amazon.com/elastic-transcoder/) 

 **Vidéos connexes :** 
+  [Building Sustainably on AWS](https://www.youtube.com/watch?v=ARAitMSIxc8) 

# SUS03-BP05 Utiliser des modèles logiciels et des architectures qui soutiennent au mieux l'accès aux données et les modèles de stockage.
<a name="sus_sus_software_a6"></a>

 Comprenez comment les données sont utilisées au sein de votre charge de travail, comment elles sont consommées par vos utilisateurs, transférées et stockées. Sélectionnez des technologies afin de réduire le traitement des données et les exigences de stockage. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Faible 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Analysez vos modèles d'accès aux données et de stockage. 
+  Stockez les fichiers de données dans des formats de fichier efficaces, tels que Parquet, afin d'éviter tout traitement inutile (par exemple, lors de l'exécution de l'analytique) et de réduire le stockage total alloué. 
+  Utilisez des technologies qui peuvent fonctionner en natif avec les données compressées. 
+  Utilisez le moteur de base de données qui prend le mieux en charge votre modèle de requête dominant. 
+  Gérez vos index de bases de données afin de garantir que les conceptions d'index prennent en charge l'exécution efficace de vos requêtes. 
+  Sélectionnez des protocoles réseaux qui réduisent la quantité de capacité réseau consommée. 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Formats de fichiers prenant en charge la compression Athena](https://docs.aws.amazon.com/athena/latest/ug/compression-formats.html) 
+  [COPIE de formats de données en colonnes avec Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/copy-usage_notes-copy-from-columnar.html) 
+  [Conversion de votre format de registre d'entrée dans Firehose](https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html) 
+  [Options de format pour les entrées et les sorties ETL dans AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html) 
+  [Améliorer la performance des requêtes sur Amazon Athena grâce à une conversion en formats de colonnes](https://docs.aws.amazon.com/athena/latest/ug/convert-to-columnar.html) 
+  [Chargement de fichiers de données compressés depuis Amazon S3 vers Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/t_loading-gzip-compressed-data-files-from-S3.html) 
+  [Surveillance de la charge de base de données avec Performance Insights sur Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html) 
+  [Surveillance de la charge de base de données avec Performance Insights sur Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 
+  [AWS IoT FleetWise](https://aws.amazon.com/about-aws/whats-new/2021/11/aws-iot-fleetwise-transferring-vehicle-data-cloud/) 

 **Vidéos connexes :** 
+  [Building Sustainably on AWS](https://www.youtube.com/watch?v=ARAitMSIxc8) 