

# Efficacité en matière de performance
<a name="performance-efficiency"></a>

 Le pilier Efficacité des performances comprend la capacité à utiliser efficacement les ressources de calcul pour répondre aux exigences du système et à maintenir cette efficacité à mesure que la demande change et les technologies évoluent. 

 Le pilier Efficacité des performances fournit une vue d'ensemble des principes de conception, des bonnes pratiques et des questions. Vous trouverez des recommandations sur l'implémentation dans le [livre blanc Pilier Efficacité en matière de performance](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp). 

**Topics**
+ [Principes de conception](perf-dp.md)
+ [Définition](perf-def.md)
+ [Bonnes pratiques](perf-bp.md)
+ [Ressources](perf-resources.md)

# Principes de conception
<a name="perf-dp"></a>

 Il existe cinq principes de conception pour l'efficacité des performances dans le cloud : 
+  **Démocratiser les technologies avancées** : simplifiez la mise en œuvre de technologies avancées pour votre équipe en déléguant des tâches complexes à votre fournisseur de cloud. Plutôt que de demander à votre équipe informatique de s'informer sur l'hébergement et l'exploitation de nouvelles technologies, envisagez de consommer les technologie en tant que service. Par exemple, les bases de données NoSQL, le transcodage multimédia et le machine learning sont trois technologies qui requièrent des compétences spécialisées. Dans le cloud, ces technologies deviennent des services que votre équipe peut consommer, ce qui lui permet de se dédier au développement de produits plutôt qu'à l'allocation et à la gestion des ressources. 
+  **Une portée mondiale en quelques minutes** : le déploiement de votre charge de travail dans plusieurs régions AWS du monde vous permet d'offrir une latence plus faible et une meilleure expérience à vos clients, à un coût réduit. 
+  **Utilisation d'architectures sans serveur** : les architectures sans serveur vous évitent d'exécuter et de gérer des serveurs physiques pour les activités traditionnelles de calcul. Par exemple, les services de stockage sans serveur peuvent agir comme des sites Web statiques (éliminant le besoin de serveurs Web), et les services d'événements peuvent héberger du code. Ainsi, vous supprimez la charge opérationnelle de gestion des serveurs physiques et réduisez les coûts des transactions, car les services gérés fonctionnent à l'échelle du cloud. 
+  **Expérimentation plus fréquente** : avec des ressources virtuelles et automatisables, vous pouvez rapidement exécuter des tests comparatifs à l'aide de différents types d'instances, de stockages ou de configurations. 
+  **Tenir compte de la « sympathie mécanique »** : comprenez comment les services cloud sont consommés et utilisez toujours l'approche technologique qui correspond le mieux à vos objectifs de charges de travail. Par exemple, tenez compte des modèles d'accès aux données lorsque vous sélectionnez les approches de stockage ou de base de données. 

# Définition
<a name="perf-def"></a>

 Les bonnes pratiques en matière d'efficacité des performances dans le cloud sont au nombre de cinq : 
+  **Choix d'architecture** 
+  **Informatique et matériel** 
+  **Gestion des données** 
+  **Mise en réseau et diffusion de contenu** 
+  **Processus et culture** 

 Optez pour une approche orientée données lors de la création d’une architecture à hautes performances. Collectez des données sur tous les aspects de l'architecture, depuis la conception générale jusqu'à la sélection et la configuration des types de ressources. 

 En réexaminant vos choix régulièrement, vous faites en sorte de tirer parti de l'évolution constante du cloud AWS. La surveillance vous offre la garantie d'être informé de tout écart par rapport aux performances attendues. Effectuez des compromis dans votre architecture pour améliorer les performances, comme l'utilisation de la compression, la mise en cache ou l'abaissement des exigences de cohérence. 

# Bonnes pratiques
<a name="perf-bp"></a>

**Topics**
+ [Choix d'architecture](perf-arch.md)
+ [Informatique et matériel](perf-compute.md)
+ [Gestion des données](perf-data.md)
+ [Mise en réseau et diffusion de contenu](perf-networking.md)
+ [Processus et culture](perf-process.md)

# Choix d'architecture
<a name="perf-arch"></a>

 La solution optimale pour une charge de travail peut varier, et les solutions combinent souvent plusieurs approches. Les charges de travail bien architecturées utilisent plusieurs solutions et permettent d'exploiter différentes fonctionnalités pour améliorer les performances. 

 De nombreux types et configurations de ressources AWS sont proposés. Il est ainsi plus facile de trouver l'approche qui correspond le mieux à vos besoins. Vous pouvez également rechercher des options qui ne sont pas facilement accessibles avec une infrastructure sur site. Par exemple, un service géré tel que Amazon DynamoDB fournit une base de données NoSQL entièrement gérée avec une latence de moins de dix millisecondes, quelle que soit l'échelle. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. (Pour obtenir la liste des questions et bonnes pratiques en matière d'efficacité des performances, consultez l' [Appendix](a-performance-efficiency.md).) 


| PERF 1:  How do you select appropriate cloud resources and architecture patterns for your workload? | 
| --- | 
|  Often, multiple approaches are required for more effective performance across a workload. Well-Architected systems use multiple solutions and features to improve performance.  | 

# Informatique et matériel
<a name="perf-compute"></a>

 Le choix d'une solution de calcul optimale pour une charge de travail particulière peut varier selon la conception de l'application, les modèles d'utilisation et les paramètres de configuration. Les architectures peuvent utiliser différentes solutions de calcul pour divers composants et permettent différentes fonctionnalités pour améliorer les performances. Choisir une solution de calcul inadaptée pour une architecture peut nuire à ses performances. 

 Dans AWS, les capacités de calcul sont disponibles sous trois formes, à savoir les instances, les conteneurs et les fonctions : 
+  Les **instances** sont des serveurs virtualisés, ce qui vous permet de modifier leurs capacités à l'aide d'un bouton ou d'un appel d'API. Comme les décisions relatives aux ressources dans le cloud sont pas figées, vous pouvez expérimenter avec différents types de serveurs. Dans AWS, ces instances de serveurs virtuels se déclinent en différentes familles et tailles, et elles offrent une grande variété de fonctionnalités, notamment des disques Solid-State Drives (SSD) et des unités de traitement graphique (GPU). 
+  Les **Conteneurs** sont une méthode de virtualisation du système d'exploitation vous permettant d'exécuter une application et ses dépendances dans des processus isolés par les ressources. AWS Fargate est un système de calcul sans serveur pour les conteneurs, ou Amazon EC2 peut être utilisé si vous avez besoin de contrôler l'installation, la configuration et la gestion de votre environnement de calcul. Vous pouvez également choisir parmi plusieurs plateformes d'orchestration de conteneurs : Amazon Elastic Container Service (ECS) ou Amazon Elastic Kubernetes Service (EKS). 
+  **Les fonctions ** permettent d'abstraire l'environnement d'exécution du code que vous souhaitez appliquer. Par exemple, AWS Lambda vous permet d'exécuter du code sans exécuter d'instance. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 2:  How do you select and use compute resources in your workload? | 
| --- | 
| The more efficient compute solution for a workload varies based on application design, usage patterns, and configuration settings. Architectures can use different compute solutions for various components and turn on different features to improve performance. Selecting the wrong compute solution for an architecture can lead to lower performance efficiency. | 

# Gestion des données
<a name="perf-data"></a>

 La solution optimale de gestion des données pour un système particulier varie en fonction du type de données (bloc, fichier ou objet), des modèles d'accès (aléatoire ou séquentiel), du débit requis, de la fréquence d'accès (en ligne, hors ligne, archivage), de la fréquence de mise à jour (WORM, dynamique), ainsi que des contraintes de disponibilité et de durabilité. Les charges de travail bien architecturées utilisent des magasins de données sur mesure qui intègrent différentes fonctionnalités pour améliorer les performances. 

 Dans AWS, le stockage est disponible sous trois formes : par objet, par bloc ou par fichier. 
+  Le **stockage d'objet** fournit une plateforme évolutive et durable pour rendre les données accessibles depuis n'importe quel emplacement Internet pour le contenu généré par l'utilisateur, l'archivage actif, le calcul sans serveur, le stockage du big data ou la sauvegarde et la restauration. Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets qui offre une capacité de mise à l’échelle, une disponibilité des données, une sécurité et des performances de pointe. Amazon S3 est conçu pour offrir une durabilité de 99,999999999 % (à 11 9) et stocke les données de millions d'applications pour des entreprises du monde entier. 
+  Le **stockage par blocs** fournit un stockage par blocs hautement disponible, cohérent et à faible latence pour chaque hôte virtuel. Il est analogue au stockage à connexion directe (DAS) ou à un réseau SAN (Storage Area Network). Amazon Elastic Block Store (Amazon EBS) est conçu pour les charges de travail qui nécessitent un stockage permanent accessible par les instances EC2, ce qui vous aide à ajuster les applications avec la capacité de stockage, les performances et le coût appropriés. 
+  Le **stockage de fichiers** permet d'accéder à un système de fichiers partagé sur plusieurs systèmes. Les solutions de stockage de fichiers comme Amazon Elastic File System (Amazon EFS) sont idéales pour les cas d'utilisation tels que les référentiels de contenu volumineux, les environnements de développement, les magasins multimédias ou les répertoires de base d'utilisateurs. Amazon FSx facilite et rentabilise le lancement et l'exécution de systèmes de fichiers populaires. Vous pouvez ainsi tirer parti des ensembles de fonctionnalités riches et des performances rapides des systèmes open source et sous licence commerciale très répandus. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 3:  How do you store, manage, and access data in your workload? | 
| --- | 
|  The more efficient storage solution for a system varies based on the kind of access operation (block, file, or object), patterns of access (random or sequential), required throughput, frequency of access (online, offline, archival), frequency of update (WORM, dynamic), and availability and durability constraints. Well-architected systems use multiple storage solutions and turn on different features to improve performance and use resources efficiently.  | 

# Mise en réseau et diffusion de contenu
<a name="perf-networking"></a>

 La solution de mise en réseau optimale pour une charge de travail varie en fonction de la latence, des exigences de débit, de l'instabilité et de la bande passante. Le choix des options d'emplacement est tributaire des contraintes physiques telles que les ressources pour utilisateur ou sur site. Ces contraintes peuvent être compensées avec les emplacements périphériques ou le placement des ressources. 

 Sur AWS, la mise en réseau est virtualisée et disponible dans plusieurs types et configurations. Il est ainsi plus facile d'adapter vos méthodes de mise en réseau à vos besoins. AWS propose des fonctionnalités de produit (par exemple, la mise en réseau améliorée, les instances optimisées pour Amazon EC2, Amazon S3 Transfer Acceleration et Amazon CloudFront dynamique) pour optimiser le trafic réseau. AWS propose également des fonctionnalités de mise en réseau (par exemple, le routage de latence Amazon Route 53, les points de terminaison du Amazon VPC, AWS Direct Connect et AWS Global Accelerator) pour réduire l'instabilité ou la distance du réseau. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 4:  How do you select and configure networking resources in your workload? | 
| --- | 
|  This question includes guidance and best practices to design, configure, and operate efficient networking and content delivery solutions in the cloud.  | 

# Processus et culture
<a name="perf-process"></a>

 Lors de la création de l'architecture des charges de travail, vous pouvez adopter certains principes et certaines pratiques pour optimiser l'exécution de charges de travail cloud efficaces et performantes. Pour adopter une culture qui favorise l'efficacité des performances des charges de travail dans le cloud, tenez compte des principes et pratiques clés suivants. 

 Tenez compte de ces principes clés pour développer cette culture : 
+  **Infrastructure en tant que code** : définissez votre infrastructure en tant que code à l'aide de méthodes telles que les modèles AWS CloudFormation. L'utilisation de modèles vous permet de placer votre infrastructure en mode de contrôle de code source parallèlement au code et aux configurations de votre application. Ceci vous permet d'appliquer les pratiques utilisées pour développer des logiciels à votre infrastructure et ainsi d'itérer rapidement. 
+  **Pipeline de déploiement :** utilisez un pipeline de déploiement d'intégration continue (CI) et de livraison continue (CD) (par exemple, référentiel de code source, systèmes de génération, déploiement et automatisation des tests) pour déployer votre infrastructure. Cela vous permet de déployer de manière reproductible et cohérente, le tout à un faible coût, à mesure que vous itérez. 
+  **Métriques bien définies :** configurez et surveillez vos métriques pour capturer les indicateurs de performances clés (KPI). Nous vous recommandons d'utiliser des métriques techniques, mais aussi des métriques commerciales. Pour les sites web ou les applications mobiles, les indicateurs clés capturent le temps jusqu'au premier octet ou le rendu. Les autres métriques applicables de manière générale comprennent le nombre de threads, la vitesse de nettoyage de la mémoire et les états d'attente. Les métriques commerciales, telles que les coûts cumulés agrégés par demande, peuvent vous permettre d'identifier des solutions pour réduire vos coûts. Réfléchissez bien à la façon dont vous prévoyez d'interpréter les métriques. Par exemple, vous pouvez choisir le maximum ou le 99e centile plutôt que la moyenne. 
+  **Tests de performance automatiques :** dans le cadre de votre processus de déploiement, des tests de performance peuvent se déclencher automatiquement une fois les tests en cours d'exécution effectués avec succès. L'automatisation doit créer un environnement, configurer des conditions initiales (comme des données de test), puis exécuter une série d'analyses comparatives et de tests de charge. Les résultats de ces tests doivent être rattachés à la version de génération afin que vous puissiez suivre l'évolution des performances dans le temps. Pour les tests de longue durée, vous pouvez rendre cette partie du pipeline asynchrone par rapport au reste de la compilation. Sinon, vous pouvez exécuter des tests de performances pendant la nuit en utilisant les instances Spot Amazon EC2. 
+  **Génération de charge :** vous devez créer une série de scripts qui reproduisent des parcours utilisateur synthétiques ou préenregistrés. Ces scripts doivent être idempotents et non couplés. Il se peut que vous deviez aussi inclure à cette série des scripts *de préparation* pour obtenir des résultats valides. Dans la mesure du possible, vos scripts de test doivent pouvoir répliquer le comportement d'utilisation en production. Vous pouvez utiliser un logiciel ou des solutions de logiciel en tant que service (SaaS) pour générer la charge. Envisagez d'utiliser les solutions [AWS Marketplace](https://aws.amazon.com/marketplace/) et les [instances Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) : elles peuvent être des moyens économiques de générer la charge. 
+  **Visibilité des performances :** les métriques clés doivent être visibles pour votre équipe, en particulier pour chaque version. Cela vous permet d'identifier les tendances positives ou négatives significatives au fil du temps. Vous devez également afficher les métriques sur le nombre d'erreurs ou d'exceptions pour vous assurer que vous testez un système fonctionnel. 
+ **Visualisation :** utilisez des techniques de visualisation qui permettent d'identifier clairement l'origine des problèmes de performances, les points chauds, les états d'attente ou les taux d'utilisation faibles. Superposez les métriques de performance sur les schémas d'architecture, des graphiques ou codes d'appel qui peuvent vous aider à identifier rapidement les problèmes. 
+  **Processus d’évaluation régulier : ** les architectures qui présentent des performances médiocres sont généralement le résultat d'un processus d'évaluation des performances inexistant ou interrompu. Si votre architecture est peu performante, la mise en œuvre d'un processus d'évaluation des performances vous permet d'apporter des améliorations itératives. 
+  **Optimisation continue : ** adoptez une culture permettant d'optimiser en permanence l'efficacité des performances de votre charge de travail dans le cloud. 

 La question suivante est axée sur ces quelques considérations relatives à l'efficacité des performances. 


| PERF 5:  What process do you use to support more performance efficiency for your workload?  | 
| --- | 
|  When architecting workloads, there are principles and practices that you can adopt to help you better run efficient high-performing cloud workloads. To adopt a culture that fosters performance efficiency of cloud workloads, consider these key principles and practices.  | 

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

 Consultez les ressources suivantes pour en savoir plus sur nos bonnes pratiques relatives à l'efficacité des performances. 

## Documentation
<a name="perf-doc"></a>
+  [Optimisation des performances Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/PerformanceOptimization.html?ref=wellarchitected-wp) 
+  [Performances des volumes Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSPerformance.html?ref=wellarchitected-wp) 

## Livre blanc
<a name="perf-wp"></a>
+  [Pilier Efficacité des performances](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp) 

## Vidéo
<a name="perf-video"></a>
+  [AWS re:Invent 2019: foundations Amazon EC2 (CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Leadership session: Storage state of the union (STG201-L)](https://www.youtube.com/watch?v=39vAsGi6eEI&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Leadership session: AWS purpose-built databases (DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Connectivity to AWS and hybrid AWS network architectures (NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (CMP303-R2)](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Scaling up to your first 10 million users (ARC211-R)](https://www.youtube.com/watch?v=kKjm4ehYiMs&ref=wellarchitected-wp) 