Efficacité des performances
Le pilier Efficacité des performances comprend capacité à utiliser efficacement les ressources informatiques pour répondre aux besoins du système, et maintenir cette efficacité au fur et à mesure que la demande change et que 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 directives normatives sur la mise en place dans le livre blanc Pilier Efficacité des performances.
Principes de conception
Il existe five principes de conception pour le pilier efficacité des performances dans le cloud :
-
Démocratiser les technologies avancées: Facilitez la mise en œuvre de technologies avancées pour votre équipe en déléguant les 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.
-
Envergure mondiale en quelques minutes: En déployant votre charge de travail dans plusieurs régions AWS à travers le monde, vous pouvez offrir une latence plus faible et une meilleure expérience à vos clients à un coût minimal.
-
Utiliser des architectures sans serveur: Grâce aux architectures sans serveur, vous n'avez plus besoin de faire fonctionner et de gérer des serveurs physiques pour les activités de calcul traditionnelles. 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érimenter plus fréquemment: 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.
-
Considérer l’approche mécanique: Comprenez comment les services cloud sont consommés et utilisez toujours l'approche technologique qui correspond le mieux à vos objectifs de charge 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
Il existe four domaines de bonnes pratiques pour le pilier efficacité des performances dans le cloud :
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 dy Cloud AWS. La surveillance vous offre la garantie d'être informé de tout écart par rapport aux performances attendues. Effectuer 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
Sélection
La solution optimale pour une charge de travail varie, et les solutions combinent souvent plusieurs approches. Les charges de travail bien architecturées utilisent plusieurs solutions et permettent d'utiliser différentes fonctionnalités pour améliorer les performances.
Les ressources AWS sont disponibles dans de nombreux types et configurations, ce qui permet de trouver plus facilement une approche qui correspond étroitement aux besoins de votre charge de travail. Vous pouvez également rechercher des options qui ne sont pas facilement accessibles avec une infrastructure sur site. Par exemple, un service géré tel qu'Amazon DynamoDB fournit une base de données NoSQL entièrement gérée avec une latence de moins de 10 milliseconde, quelle que soit l’échelle.
Les questions suivantes sont axées sur ces quelques considérations relatives au pilier efficacité des performances.
PERF 1: Comment sélectionner l'architecture la plus performante ? |
Utilisez une approche basée sur les données pour sélectionner les modèles et la mise en œuvre de votre architecture et obtenir une solution rentable. Les partenaires AWS Solutions Architects, AWS Reference Architectures et AWS Partner Network (APN) peuvent vous aider à choisir une architecture basée sur les connaissances du secteur, mais des données obtenues par la définition de points de référence ou les tests de charge seront nécessaires pour optimiser votre architecture.
Votre architecture combinera probablement un certain nombre d'approches architecturales différentes (par exemple, événementiel, ETL ou pipeline). La mise en œuvre de votre architecture utilisera les services AWS qui sont spécifiques à l'optimisation des performances de votre architecture. Dans les sections suivantes, nous abordons les quatre principaux types de ressources à prendre en compte (calcul, stockage, base de données et réseau).
Calcul
La sélection de ressources de calcul qui répondent à vos exigences, à vos besoins de performance et qui offrent une grande efficacité en termes de coûts et d'efforts vous permettra d'accomplir davantage avec le même nombre de ressources. Lorsque vous évaluez des options de calcul, tenez compte de vos besoins en matière de performances et de coûts de la charge de travail et utilisez-les pour prendre des décisions éclairées.
Dans AWS, le calcul est disponible sous trois formes : instances, conteneurs et fonctions.
-
Les instances sont des serveurs virtualisés qui permettent de modifier leurs fonctionnalités d'un simple clic ou 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 représentent une méthode de virtualisation du système d'exploitation, qui vous permet d'exécuter une application et ses dépendances dans des processus isolés des 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 de plusieurs plates-formes 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 voulez exécuter. Par exemple, AWS Lambda vous permet d'exécuter du code sans exécuter une instance
Les questions suivantes sont axées sur ces quelques considérations relatives au pilier efficacité des performances.
PERF 2: Comment sélectionner votre solution de calcul ? |
Lors de la conception architecturale de votre solution de calcul, vous devez tirer parti des mécanismes d'élasticité disponibles pour disposer de la capacité suffisante pour soutenir les performances lorsque les besoins changent.
Stockage
Le stockage dans le cloud est un élément essentiel du cloud computing, car il contient les informations utilisées par votre charge de travail. Le stockage dans le cloud est généralement plus fiable, plus évolutif et plus sûr que les systèmes traditionnels de stockage sur site. Choisissez parmi les services de stockage d'objets, par blocs et de fichiers, et les options de migration des données dans le cloud pour votre charge de travail.
Dans AWS, le stockage est disponible sous trois formes : objet, bloc et fichier : le
-
stockage d’objets fournit une plate-forme é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 Big Data ou la sauvegarde et la restauration. Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets qui offre une évolutivité, une disponibilité des données, une sécurité et des performances de pointe. Amazon S3 offre une durabilité de 99,999999999 % et stocke des données pour des millions d'applications pour des entreprises du monde entier. Le
-
stockage par bloc fournit un stockage par bloc hautement disponible, cohérent et à faible latence pour chaque hôte virtuel, et il est analogue au stockage Direct-Attached-Storage (DAS) ou à un réseau de stockage (SAN). Amazon Elastic Block Store (Amazon EBS) est conçu pour les charges de travail qui nécessitent un stockage persistant accessible aux instances EC2 qui vous aide à optimiser 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 (EFS) sont idéales pour les cas d'utilisation comme les grands référentiels de contenu, les environnements de développement, les magasins multimédias ou les répertoires de base utilisateur. Amazon FSx permet de lancer et d'exécuter facilement et à moindre coût des systèmes de fichiers courants afin de tirer parti des riches fonctionnalités et des performances rapides des systèmes de fichiers open source et sous licence commerciale largement utilisés.
Les questions suivantes sont axées sur ces quelques considérations relatives au pilier efficacité des performances.
PERF 3: Comment sélectionner votre solution de stockage ? |
Lorsque vous choisissez une solution de stockage, il est essentiel de s'assurer qu'elle est conforme à vos habitudes d'accès afin d’obtenir les performances que vous souhaitez.
Base de données
Le cloud offre des services de base de données dédiées qui répondent aux différents problèmes posés par votre charge de travail. Vous pouvez choisir parmi de nombreux moteurs de base de données dédiés, y compris des bases de données relationnelles, de valeurs-clés, de documents, en mémoire, graphiques, de séries chronologiques et de registre. En choisissant la meilleure base de données pour résoudre un problème spécifique (ou un groupe de problèmes), vous pouvez vous affranchir des bases de données monolithiques restrictives à taille unique et vous concentrer sur la création d'applications répondant aux besoins de performance de vos clients.
Dans AWS, vous pouvez choisir parmi plusieurs moteurs de base de données dédiés, y compris des bases de données relationnelles, de valeurs-clés, de documents, en mémoire, graphique, de séries chronologiques et de registre. Avec les bases de données AWS, vous n'avez pas à vous soucier des tâches de gestion des bases de données telles que le dimensionnement des serveur, des correctifs, de la configuration, des sauvegardes ou la récupération. AWS surveille en permanence vos clusters pour maintenir vos charges de travail avec un stockage auto-réparateur et une mise à l'échelle automatisée, afin que vous puissiez vous concentrer sur le développement d'applications à plus forte valeur ajoutée.
Les questions suivantes sont axées sur ces quelques considérations relatives au pilier efficacité des performances.
PERF 4: Comment sélectionner votre solution de base de données? |
L'approche de la base de données de votre charge de travail a un impact significatif sur les performances. Il s'agit souvent d'un domaine choisi en fonction des valeurs par défaut de l'organisation plutôt que par le biais d'une approche axée sur les données. Comme pour le stockage, il est essentiel de tenir compte des schémas d'accès à votre charge de travail, et d'examiner également si d'autres solutions autres que les bases de données pourraient résoudre le problème plus efficacement (comme l'utilisation de graphiques, de séries chronologiques ou de bases de données de stockage en mémoire).
Réseau
Étant donné que le réseau se trouve entre tous les composants de la charge de travail, il peut avoir un impact positif et négatif sur les performances et le comportement de la charge de travail. Il existe également des applications qui dépendent fortement des performances réseau, telles que le calcul hautes performances (HPC), pour lesquelles une compréhension approfondie du réseau est importante pour améliorer les performances du cluster. Vous devez déterminer les besoins de la charge de travail pour la bande passante, la latence, l'instabilité et le débit.
Dans 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. La solution AWS propose des fonctionnalités de produit (par exemple, la mise en réseau améliorée, les instances optimisées pour Amazon EBS, Amazon S3 Transfer Acceleration et la fonction 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 d’un VPC Amazon, AWS Direct Connect et AWS Global Accelerator) pour réduire l'instabilité ou la distance réseau.
Les questions suivantes sont axées sur ces quelques considérations relatives au pilier efficacité des performances.
PERF 5: Comment configurer votre solution de mise en réseau ? |
Vous devez prendre en compte l'emplacement lors du déploiement de votre réseau. Vous pouvez choisir de placer les ressources à proximité de l'endroit où elles seront utilisées pour réduire la distance. Utilisez les métriques de mise en réseau pour apporter des modifications à la configuration de mise en réseau à mesure que la charge de travail évolue. En tirant parti des régions, des groupes de placement et des emplacements périphériques, vous pouvez améliorer les performances de façon notable. Les réseaux basés sur le cloud peuvent être rapidement recréés. L'évolution de votre architecture réseau au fil du temps est donc nécessaire pour maintenir de hautes performances.
Vérification
Les technologies cloud évoluent rapidement, et vous devez vous assurer que les composants de la charge de travail utilisent de nouvelles technologies et approches pour améliorer continuellement les performances. Vous devez constamment évaluer et prendre en compte les modifications apportées aux composants de votre charge de travail afin d’atteindre ses objectifs de performance et de coût. Les nouvelles technologies, telles que le machine learning et l'intelligence artificielle (IA), peuvent vous permettre de réimaginer les expériences client et d'innover dans l'ensemble de vos charges de travail métier.
Profitez des innovations constantes d'AWS, motivées par les besoins des clients. Nous ajoutons régulièrement des régions, des emplacements périphériques, des services et des fonctionnalités. Chaque ajout peut considérablement améliorer l'efficacité des performances de votre architecture.
Les questions suivantes sont axées sur ces quelques considérations relatives au pilier efficacité des performances.
PERF 6: Comment faites-vous évoluer votre charge de travail pour tirer parti des nouvelles versions ? |
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 les performances de votre architecture ne sont pas satisfaisantes, la mise en œuvre d’un processus d'examen des performances permet d'appliquer le cycle de Deming (planifier, développer, contrôler, ajuster, ou PDCA) pour favoriser une amélioration itérative.
Surveillance
Une fois votre charge de travail mise en œuvre, vous devez surveiller ses performances afin de pouvoir corriger les problèmes avant qu'ils n'affectent vos clients. Utilisez des métriques de surveillance pour déclencher des alarmes lorsque des seuils sont franchis.
Amazon CloudWatch est un service de surveillance et d'observabilité qui vous fournit des données et des informations exploitables pour surveiller votre charge de travail, répondre aux changements de performances à l'échelle du système, optimiser l'utilisation des ressources et obtenir une vue unifiée de l'état opérationnel. CloudWatch collecte des données de surveillance et opérationnelles sous forme de journaux, de métriques et d'événements à partir des charges de travail exécutées sur AWS et sur les serveurs sur site. AWS X-Ray permet aux développeurs d’analyser et de déboguer les applications distribuées de production. Avec AWS X-Ray, vous pouvez obtenir des informations sur les performances de votre application, découvrir les causes racines et identifier les goulots d'étranglement au niveau des performances. Vous pouvez utiliser ces éléments pour réagir rapidement et faire en sorte que votre charge de travail continue de fonctionner sans heurt.
Les questions suivantes sont axées sur ces quelques considérations relatives au pilier efficacité des performances.
PERF 7: Comment surveiller vos ressources pour vous assurer qu'elles fonctionnent ? |
Une solution de contrôle efficace qui ne produit pas de faux positif est essentiel. Les déclencheurs automatisés permettent d'éviter les erreurs humaines et d’accélérer la résolution des problèmes. Prévoyez les jours où des simulations sont effectuées dans l'environnement de production pour tester votre solution d'alarme et vous assurer qu'elle identifie correctement les problèmes.
Compromis
Lorsque vous concevez l'architecture des solutions, pensez à faire des compromis afin d'obtenir une approche optimale. En fonction de votre situation, vous pouvez privilégier la cohérence, la durabilité et l'espace par rapport au temps ou à la latence pour offrir de meilleures performances.
Avec AWS, vous pouvez atteindre une portée mondiale en quelques minutes et déployer des ressources à plusieurs emplacements à travers le monde pour vous rapprocher de vos utilisateurs finaux. Vous pouvez aussi ajouter dynamiquement des réplicas en lecture seule aux magasins d'informations, telles que les systèmes de bases de données, afin de réduire la charge sur la base de données principale.
Les questions suivantes sont axées sur ces quelques considérations relatives au pilier efficacité des performances.
PERF 8: Comment utiliser les compromis pour améliorer les performances ? |
Lorsque vous apportez des modifications à la charge de travail, collectez et évaluez les métriques pour déterminer l'impact de ces modifications. Mesurez les impacts sur le système, ainsi que sur l'utilisateur final pour comprendre la façon dont vos compromis affectent votre charge de travail. Utilisez une approche systématique, telle que des tests de charge, pour déterminer si le compromis améliore les performances.
Ressources
Consultez les ressources suivantes pour en savoir plus sur nos bonnes pratiques relatives au pilier Efficacité des performances.
Performance Efficiency PillarAmazon S3 Performance Optimization
Amazon EBS Volume Performance
AWS re:Invent 2019: Amazon EC2 foundations (CMP211-R2)
AWS re:Invent 2019: Leadership session: Storage state of the union (STG201-L)
AWS re:Invent 2019: Leadership session: AWS purpose-built databases (DAT209-L)
AWS re:Invent 2019: Connectivity to AWS and hybrid AWS network architectures (NET317-R1)
AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (CMP303-R2)
AWS re:Invent 2019: Scaling up to your first 10 million users (ARC211-R)