Partager via


Principes de conception de l’efficacité de la performance

L’efficacité des performances concerne l’utilisation efficace des ressources de charge de travail. Sans une bonne stratégie, vous ne pourrez peut-être pas anticiper et répondre aux demandes des utilisateurs. Vous devrez peut-être recourir à une approche de la capacité de préapprovisionnement en fonction de vos prévisions à long terme, ce qui ne vous permet pas de tirer pleinement parti de votre plateforme cloud.

L’efficacité des performances est la capacité d’une charge de travail à s’adapter aux demandes changeantes en effectuant un scale-up pour répondre à une charge accrue sans avoir d’impact sur l’expérience utilisateur et à réduire la taille des ressources pendant une faible demande. La capacité joue un rôle central, mais la confiance uniquement sur les ressources préprovisionnée peut entraîner des problèmes de performances en cas de charge élevée et de coûts inutiles pendant une faible utilisation.

Au lieu de traiter les performances comme une réflexion approfondie, faites-le un des principaux points à prendre en compte dès le début. Commencez tôt, même si vous n’avez pas de cibles de performances strictes, puis testez et affinez tout au long du développement. Cette optimisation continue, informée par l’utilisation réelle, permet d’éviter les problèmes futurs et garantit des performances cohérentes.

Une stratégie bien planifiée permet d’aligner la capacité des ressources avec les besoins de l’entreprise tout en réduisant les déchets. Une fois votre approche définie, utilisez la liste de contrôle d’efficacité des performances pour valider votre conception. Sans stratégie proactive, vous risquez de vous appuyer sur des prévisions statiques et de manquer les avantages complets de l’infrastructure cloud évolutive.

Négocier des objectifs de performance réalistes

Icône d’objectif L’expérience utilisateur prévue est définie, et il existe une stratégie pour développer une valeur de référence et mesurer les objectifs par rapport aux exigences métier préétablies.

Du point de vue des performances, il est idéal d’avoir des objectifs de performances bien définis pour démarrer votre processus de conception. Pour définir ces objectifs, vous devez avoir une bonne compréhension des exigences métier et de la qualité prévue du service que la charge de travail doit fournir. Définissez les attentes en collaboration avec les parties prenantes de l’entreprise. Au lieu de se concentrer uniquement sur les métriques techniques, déterminez les effets acceptables sur l’expérience utilisateur pour les flux clés.

Il y a une dépendance circulaire. Vous ne pouvez pas mesurer ce que vous n’avez pas défini et vous ne pouvez pas définir sans mesure. Par conséquent, il est également important de mesurer les performances de la charge de travail jusqu’à ce que vous obteniez une définition satisfaisante du seuil acceptable avec une convention collective.

Il existe une corrélation forte entre les objectifs de performances et de fiabilité, qui permettent de déterminer la qualité du service en termes de performances, de disponibilité et de résilience. Sans définition claire, il est difficile de mesurer, d’alerter et de tester les performances. Après avoir établi les cibles et identifié des nombres réels via des tests au fil du temps, vous pouvez implémenter l’automatisation pour les tests continus sur ces cibles.

Respectez les bonnes pratiques de définition des cibles au niveau de la macro, même si elles sont approximatives ou comprises dans une plage.

Approche Avantages
Préparez-vous à une négociation efficace en comprenant les options techniques, en explorant les possibilités de conception et en appliquant des résultats expérimentaux.

Utilisez des données historiques pour identifier les modèles d’utilisation et les goulots d’étranglement. Incorporez des insights de l’analyse du marché, des normes du secteur et des commentaires d’experts pour guider les décisions.
Vous pouvez prendre des décisions éclairées en fonction d’insights pratiques.

Les objectifs de performance seront basés sur l’expérience utilisateur basée sur ce qui est réalisable, les meilleures pratiques du secteur et les tendances actuelles du marché.
Alignez-vous avec les propriétaires d’entreprises sur les attentes des utilisateurs et les normes de performances, compte tenu des niveaux d’investissement.

Évitez de vous plonger dans des détails précis à l’étape initiale de la conception, tout en gardant à l’esprit le contexte commercial et les plans de croissance plus larges.
Vous éviterez les hypothèses mal alignées, promouvoir la clarté et la motivation au sein de l’équipe et prendre des décisions de conception éclairées sur les compromis.

Il garantit également que les objectifs de performances comptent pour les besoins futurs, en alignant le travail actuel avec les objectifs métier à long terme.
Hiérarchiser les flux critiques dans l’architecture en fonction de l’impact sur les performances.

Définissez des plages de tolérance de performances pour chaque flux, d’idéal à inacceptable. Évaluez les points d’entrée et de sortie en tenant compte de la fréquence d’utilisation, de l’importance et de la complexité.
En hiérarchisant les flux, vous pouvez concentrer vos ressources sur les domaines critiques qui ont le plus d’effets sur les résultats des utilisateurs et des entreprises.

En décomposant le système en ses parties et ses dépendances, vous comprenez la fonction et l’influence de chaque composant sur les performances. Vous êtes également conscient des problèmes potentiels.

Il permet d’établir une base de référence de performances et une optimisation de lecteur.
Commencez à développer un modèle de performances qui prend en compte les modèles d’utilisation, l’impact métier et les coûts opérationnels pour calculer les objectifs de performances initiaux. Utilisez les normes du secteur pour définir et mesurer les métriques clés, et évaluer la demande et l’offre dans les contraintes commerciales tout en tenant compte de la croissance future.

Traitez-le comme un processus itératif et affinez les cibles informées par les observations et les métriques réelles collectées à partir de la solution en cours d’exécution, pendant les tests et la production. Hiérarchiser les cas de test qui donnent des insights d’utilisation significatifs dans le cycle de vie complet de l’application.
Un modèle de performance aide dans la planification et l’optimisation stratégiques des ressources, prend en charge l’évaluation par le biais des normes du secteur et garantit que les objectifs de performance restent adaptables et pertinents au fil du temps.

En fonction de ces objectifs évolutifs, vous serez en mesure d’effectuer une planification de capacité précise et d’établir des bases de référence de performances qui restent pertinentes tout au long du cycle de vie de la solution.

Conception pour répondre aux exigences de capacité

Icône Objectif Fournir suffisamment d’approvisionnement pour répondre à la demande anticipée.

Il est important de mesurer les performances de manière proactive. La mesure des performances implique de mesurer les bases de référence et d’avoir une compréhension préliminaire des composants du système susceptibles de poser des défis. Vous pouvez l’atteindre sans effectuer de test de performances complet ou par le biais d’une optimisation granulaire. En effectuant ces étapes initiales, vous établissez une base pour une gestion efficace des performances au début du cycle de vie du développement.

Examinez le système dans son ensemble, plutôt que de vous concentrer sur des composants individuels. Évitez le réglage précis à ce stade. L’amélioration granulaire des performances entraîne des compromis dans d’autres domaines. Au fur et à mesure que vous progressez dans le cycle de vie et commencez les tests d’acceptation des utilisateurs ou passez à la production, vous pouvez rapidement identifier les domaines qui nécessitent une optimisation supplémentaire.

Approche Avantage
Évaluez les besoins de mise à l’échelle dynamique pour les flux hiérarchisés en fonction des exigences d’utilisation. Comprendre les modèles de demande attendus et déterminer la façon dont chaque flux élastique doit répondre à ces exigences. Vous pouvez définir des exigences d’extensibilité sur les composants existants qui ont besoin de plus de capacité et des zones où vous avez besoin de composants supplémentaires pour distribuer la charge.
Choisissez les ressources appropriées et rightsisez-les dans la pile technologique, ce qui vous permet de répondre aux objectifs de performances.

Tenez compte des fonctionnalités qui peuvent répondre aux exigences de scalabilité.
Le système global sera et s’exécutera conformément aux cibles définies. Vous pouvez utiliser des fonctionnalités intégrées qui sont automatiquement mises à l’échelle si nécessaire. Il vous permet également d’éviter le surprovisionnement, d’économiser des coûts tout en gérant les modifications de la demande.
Planifiez la capacité en fonction du modèle de performances et de la capacité des ressources sélectionnées.

Utilisez des techniques de modélisation prédictive pour prévoir les changements prévus dans la capacité.
Le système pourra atteindre les objectifs de performance tout en restant prêt pour la demande future. La modélisation prédictive vous permet de planifier à l’avance, d’éviter les pénuries de ressources ou de surprovisionner, ce qui améliore la fiabilité et l’efficacité des coûts.
Implémentez la preuve de concept et validez les choix de conception proposés pour répondre aux exigences techniques. Une preuve de concept permet de valider si la conception peut atteindre des objectifs de performances et une charge anticipée.

Atteindre et pérenniser la performance

Icône d’objectif Protégez-vous contre la dégradation des performances pendant l’utilisation du système et au fur et à mesure de son évolution.

Le développement n’est pas un effort unique. C’est un processus continu. Attendez-vous aux changements de performances à mesure que les fonctionnalités changent. Il existe une variance dans les modèles utilisateur et les profils, même les modifications des optimisations dans d’autres piliers Azure Well-Architected. Toute modification peut forcer les ressources de charge de travail.

Protégez le système contre la baisse des cibles de performances. Testez les performances du système en production avec une charge réelle et simulez cette charge avec des tests automatisés avant la production. Dans les deux cas, vous devez avoir des pratiques de surveillance en place à des fins de vérification.

N’oubliez pas que les cibles de performances varient au fil du temps, en réponse aux modifications. Mettez à jour le modèle de performances en fonction des métriques testées et surveillées. Indiquez clairement l’augmentation, la réduction ou l’absence d’effet sur les performances des flux.

Soyez toujours prêt à renégocier et à réinitialiser les attentes avec les parties prenantes de l’entreprise.

Approche Avantage
Définissez votre stratégie de test de performances.

Effectuez différents types de tests, notamment des tests manuels et à faible effort pour revisiter les benchmarks.

Ajoutez des tests de performances réguliers à vos pipelines à l’aide d’outils qui fonctionnent correctement avec eux.
Vous pouvez vous assurer que les ressources sont allouées efficacement et valident les métriques en fonction de la planification de la capacité.

Les tests de performances de routine automatisés permettent d’évaluer de manière cohérente des facteurs clés tels que la latence, le stress et la capacité de charge, ce qui facilite la détection des problèmes au début et la stabilité des performances au fil du temps.
Formaliser les tests de performances comme portes de qualité. Ces points de contrôle vérifient que chaque étape du déploiement répond aux normes de performances avant de passer à l’avant. Ils aident à détecter les problèmes au début et vous permettent de prendre des décisions de qualité. Par exemple, le blocage d’une version si les performances tombent en dessous des attentes.
Configurez un processus de supervision des performances qui effectue le suivi des transactions métier de bout en bout et des métriques techniques telles que l’UC, la latence et les requêtes par seconde.

Veillez à utiliser des transactions réelles et synthétiques en production.

Configurez les alertes d’analyse sur les régressions de performances.
En surveillant toutes les parties du système, vous bénéficiez d’une visibilité claire et pouvez rapidement détecter les problèmes dans l’infrastructure et l’application. Il vous permet d’affiner les ressources pour maintenir les normes de performances et de suivre la progression ou repérer les problèmes au début.
Passez en revue les résultats des tests de performances et surveillez méticuleusement les données à mesure que l’utilisation augmente et que les données s’accumulent avec le système en production.

Hiérarchiser les actions qui traitent de la dégradation des performances et les ajouter au backlog pour l’exécution planifiée.
L’utilisation de données pour suivre et comparer les tendances des performances vous permet de prendre des décisions d’optimisation éclairées et de détecter les problèmes au début, avant qu’ils n’affectent l’expérience utilisateur.

Il garantit également que vous n’optimisez pas trop un système déjà en capacité.
Explorez les modèles de conception qui peuvent affiner les performances dans la pile technologique, compte tenu de l’application et des couches de calcul et de données sous-jacentes. Vous pouvez résoudre les goulots d’étranglement et implémenter des contrôles de compensation pour réduire la latence et la charge système.
Créez des compétences de codage avec un focus sur les performances et suivez les normes qui favorisent des modèles de codage efficaces. Le code bien écrit et performant rend les tests plus rapides en réduisant les problèmes et permet d’éviter de retravailler tout en conservant la cohérence du code.

Optimiser l’amélioration à long terme

Icône d’objectif Améliorez l’efficacité du système dans le cadre des objectifs de performances définis pour augmenter la valeur de la charge de travail.

Les objectifs de performances initiaux visent à offrir une expérience utilisateur raisonnable dans les contraintes connues. À mesure que le système évolue, réévaluez ces cibles à l’aide de données de production réelles pour mieux comprendre les modèles d’utilisation, les changements de plateforme et les gains potentiels, ce qui garantit que les efforts d’optimisation sont bien chronométrés et efficaces. Il est souvent préférable de retarder les optimisations majeures jusqu’à ce que ces données soient disponibles pour éviter les décisions prématurées.

Le réglage des performances est un cycle continu de surveillance, d’optimisation, de test et de déploiement. Les améliorations apportées à l’efficacité peuvent réduire l’utilisation des ressources, ce qui entraîne parfois une surprovisionnement. Cette capacité supplémentaire peut ensuite être utilisée pour améliorer la fiabilité, réduire les coûts ou prendre en charge de nouvelles fonctionnalités sans ajouter d’infrastructure.

Approche Avantage
Réservez le temps consacré à l’optimisation des performances en tant que pratique régulière tout au long du cycle de vie du développement. Dans une culture axée sur les performances, cette approche renforce la responsabilité, où l’équipe surveille activement et améliore continuellement les performances du système.
Revisitez les exigences non fonctionnelles et établissez de nouvelles cibles en analysant les tendances historiques en production pour améliorer l’architecture avec des modèles de conception et des composants améliorés. De nouvelles conceptions et composants, tels que la mise en cache ou un CDN, peuvent optimiser le système et améliorer l’expérience utilisateur.
Soyez à jour et restez à jour avec les innovations technologiques qui peuvent améliorer les performances.

Tirez parti des nouvelles versions publiées pour les frameworks et bibliothèques dépendants.

De même, utilisez les nouvelles fonctionnalités pour les ressources de plateforme à mesure qu’elles sont mises à jour et corrigées.
Les objectifs de performance justifient l’adoption de nouvelles technologies.

Le code qui a pu être lent dans le passé peut devenir plus rapide avec ces mises à jour. Vous souhaitez également savoir comment certaines mises à jour affectent négativement les performances.

Étapes suivantes