Recommandations pour hiérarchiser les performances des flux critiques
S’applique à cette recommandation de liste de vérification de l’efficacité des performances d’Azure Well-Architected Framework :
PE :09 | Hiérarchiser les performances des flux critiques. L’allocation des ressources de charge de travail et les efforts d’optimisation des performances doivent hiérarchiser les flux qui prennent en charge les processus métier, les utilisateurs et les opérations les plus importants. |
---|
Ce guide décrit les recommandations pour hiérarchiser les performances des flux critiques dans une charge de travail. Les flux critiques représentent des processus métier essentiels qui génèrent des revenus ou génèrent des opérations hautement prioritaires. Lorsque vous hiérarchisez les performances des flux critiques, vous vous assurez que les flux qui ont le plus d’impact obtiennent les ressources dont ils ont besoin avant les flux de priorité inférieure. L’échec de cette hiérarchisation peut avoir des effets négatifs disproportionnés sur les priorités de charge de travail et l’expérience utilisateur.
Définitions
Terme | Définition |
---|---|
Flux | Dans une charge de travail, séquence d’actions qui exécute une fonction spécifique. Un flux implique le déplacement des données et l’exécution de processus entre les composants de la charge de travail. |
Traitement de la file d’attente prioritaire | L’action de traiter des tâches de priorité élevée avant les tâches de faible priorité. |
Limitation du débit | L’action de limiter le nombre de demandes pouvant accéder à une ressource. |
Flux système | Flux d’informations et de processus au sein d’un système. Le système suit automatiquement ce flux pour activer les flux d’utilisateurs ou les fonctionnalités de charge de travail. |
Flux utilisateur | Séquence qu’un utilisateur suit pour accomplir une tâche. |
Stratégies de conception
Les flux critiques font référence aux flux d’utilisateurs clés pour les clients ou aux flux système et de données pour les opérations qui sont essentielles à la fonctionnalité de charge de travail. Ces flux peuvent inclure des actions telles que les inscriptions d’utilisateurs, les connexions, les achats de produits, l’accès aux pages derrière un mur de paiement ou tout autre chemin ou processus clé au sein de votre charge de travail.
Les flux critiques affectent considérablement l’expérience utilisateur ou les opérations métier. Les flux critiques ont des objectifs de performances et des contrats de niveau de service plus élevés que les flux non critiques. Lorsque les ressources sont limitées, les flux non critiques doivent générer l’utilisation des ressources aux flux critiques. Vous devez identifier, surveiller et hiérarchiser tous les flux avant d’isoler et d’optimiser les flux critiques.
Identifier tous les flux
La première étape de la hiérarchisation des performances des flux critiques consiste à identifier tous les flux au sein de votre charge de travail. L’identification de flux implique de mapper et de comprendre systématiquement chaque chemin d’accès utilisateur et chaque communication de composant. L’accent est mis sur la compréhension des métriques de performances et de l’impact potentiel des flux sur les performances de la charge de travail.
En disséquant la charge de travail en flux discrets, vous pouvez trouver des goulots d’étranglement des performances, une utilisation inefficace des ressources et des opportunités d’optimisation des performances. Ces connaissances exposent les domaines d’amélioration nécessaires et constituent la première étape de l’identification des flux critiques. Pour plus d’informations, consultez Identifier et évaluer les flux utilisateur et système.
Surveiller les métriques de performances de flux
Après avoir identifié tous les flux au sein de votre charge de travail, vous devez collecter des métriques de performances sur chaque flux et surveiller ces métriques. Les métriques de flux fournissent des insights sur les temps de réponse, les taux d’erreur et le débit. L’objectif est d’observer et d’enregistrer de manière cohérente les métriques liées aux performances pour affiner votre compréhension de l’impact de chaque flux sur les performances de la charge de travail. Pour surveiller les métriques de flux, vous pouvez utiliser les outils suivants pour collecter des données :
Outils d’analytique et de suivi : ces outils fournissent des insights sur le comportement des utilisateurs et les interactions au sein de votre application. En analysant les données utilisateur, vous pouvez identifier les flux, les goulots d’étranglement ou les problèmes potentiels les plus courants.
Outils d’analyse des performances des applications (APM) : utilisez les outils APM pour surveiller les performances de votre application et suivre l’exécution des flux. Ces outils offrent une visibilité des temps de réponse, des erreurs et d’autres métriques de performances, ce qui vous permet d’identifier les flux critiques et d’optimiser leurs performances.
Outils de journalisation et de débogage : utilisez ces outils pour capturer et analyser les journaux et déboguer des informations pendant l’exécution de votre application. Passez en revue les journaux et les informations de débogage pour suivre l’exécution des flux et identifier les problèmes ou les erreurs.
Identifier les flux critiques
Avec les données de performances disponibles, vous pouvez commencer à classer tous les flux et à identifier les flux critiques. L’identification des flux critiques implique l’évaluation de l’impact sur les performances et de la criticité de chaque flux. Une hiérarchisation efficace des flux garantit que les flux les plus importants reçoivent les ressources nécessaires avant les flux moins critiques. Pour hiérarchiser les flux dans votre application, procédez comme suit :
Identifier l’impact sur l’entreprise : commencez par évaluer l’importance de chaque flux au sein de vos opérations. Concentrez-vous sur la façon dont chaque flux s’aligne sur vos objectifs métier, son impact sur les utilisateurs et les effets négatifs potentiels de performances médiocres. Par instance, alors qu’un niveau de service gratuit peut attirer plus d’utilisateurs, un niveau payant peut être plus essentiel pour vos objectifs métier.
En outre, tenez compte des impacts sur les performances d’un flux sur un ou plusieurs processus métier. Plusieurs flux peuvent prendre en charge un seul processus métier, mais souvent, un flux a un effet significatif sur les performances de ce processus. Vous souhaitez identifier les flux qui ont le plus d’impact sur les performances. À l’inverse, un seul flux peut soutenir plusieurs processus. Dans ce cas, les performances de ce flux influencent directement l’efficacité de tous les processus associés, et il s’agit probablement d’un flux critique.
Analyser les données de performances : analysez les métriques de performances associées à chaque flux. Recherchez des modèles, des anomalies ou des métriques qui peuvent fournir des insights sur l’efficacité et l’importance du flux. Par exemple, les flux système avec une utilisation significative sont probablement des flux importants.
Attribuer un niveau de criticité : En fonction de l’impact sur l’entreprise et des indicateurs de performance, vous devez hiérarchiser les flux. Utilisez des évaluations de criticité de High, Medium et Low. Les flux ayant un impact important sur l’entreprise ou une demande de performances élevées doivent recevoir une note de criticité « élevée ». Ces flux sont vos flux critiques. Concentrez-vous sur les flux avec un trafic utilisateur élevé ou ont un effet direct sur la génération de revenus. Le tableau suivant fournit les caractéristiques des flux critiques (élevé) et non critiques (moyen à faible).
Flux critiques | Flux non critiques |
---|---|
Utilisation élevée | Faible utilisation |
Critique pour l'entreprise | Non critique pour l’entreprise |
Opérations coûteuses | Petites opérations |
Respect du temps | Ne respectant pas le temps |
Production | Préproduction |
Traitement en temps réel | Traitement par lots |
Sensible à la latence | Non sensible à la latence |
Utilisateur payant | Utilisateur qui ne paye pas |
Niveau Premium | Niveau de base |
Tâches importantes | Tâches non essentielles |
Comptes à revenus élevés | Comptes à faible revenu |
Isoler les flux critiques
Le processus d’isolation des flux critiques consiste à fournir des ressources dédiées ou une capacité pour prendre en charge les flux critiques. Vous souhaitez allouer des ressources et de l’attention à ces flux qui sont essentiels pour une expérience utilisateur optimale ou des résultats métier significatifs. L’objectif est de s’assurer que les flux critiques reçoivent suffisamment de puissance de calcul, de bande passante réseau et de ressources pour fonctionner efficacement. En isolant les flux critiques, vous pouvez gérer plus facilement les ressources qui prennent en charge les flux critiques. Voici des recommandations pour isoler les flux critiques :
Segmentation des ressources : créez des ressources distinctes pour les flux critiques, ce qui leur permet de fonctionner indépendamment sans interférence d’autres processus. Par exemple, vous pouvez isoler les flux critiques sur des segments réseau dédiés ou à l’aide de serveurs dédiés pour gérer les besoins de traitement de ces flux. Cette approche permet de réduire la façon dont les flux non critiques peuvent affecter négativement les flux critiques.
Segmentation logique : utilisez des outils de virtualisation et de conteneurisation comme Docker ou Kubernetes pour isoler les flux au niveau du logiciel. Vous pouvez séparer les flux critiques dans des machines virtuelles. Ce faisant, vous créez un environnement isolé, ce qui réduit les dépendances et les interférences potentielles d’autres flux.
Allocation de capacité : pour les flux critiques, allouez explicitement un ensemble fixe de capacité tel que le processeur, la mémoire et les E/S de disque. Cette allocation garantit que les flux critiques ont toujours suffisamment de ressources pour fonctionner efficacement. Définissez des quotas ou des limites de ressources à l’aide de plateformes d’orchestration. En allouant explicitement des ressources aux flux critiques, vous empêchez la contention des ressources et vous hiérarchisez leur exécution.
Compromis : la segmentation des ressources affecte les coûts. Lorsque vous dédiez des ressources à un flux, vous augmentez souvent le coût et laissez certaines ressources sous-utilisées. Pour justifier les améliorations des performances des flux critiques, l’augmentation de l’impact sur l’entreprise doit l’emporter sur l’augmentation des coûts.
Optimiser l’allocation de capacité
Lorsque vous ne pouvez pas isoler les flux critiques, la meilleure option suivante consiste à hiérarchiser les flux critiques dans l’accès à la capacité disponible. L’optimisation de l’allocation de capacité consiste à distribuer stratégiquement la capacité disponible à différents flux en fonction de leur criticité. La capacité comprend le processeur, la mémoire, le stockage et la bande passante réseau. L’objectif est de s’assurer que les flux les plus critiques (priorité la plus élevée) reçoivent la capacité nécessaire pour fonctionner efficacement. Pour décider comment allouer la capacité, envisagez les stratégies suivantes :
Évaluer la capacité des ressources : évaluez la capacité de ressources qui peut être allouée aux flux. La capacité peut inclure des ressources telles que le processeur, la mémoire, le stockage et la bande passante réseau. Comprendre les limitations et les contraintes de votre infrastructure ou de votre environnement.
Analyser les exigences de flux : analysez les besoins en ressources de chaque flux. Comprendre les ressources dont le flux a besoin pour fonctionner efficacement. Pour chaque flux, identifiez les besoins en ressources, tels que l’utilisation du processeur, les besoins en mémoire et la bande passante réseau.
Hiérarchiser les allocations : faites correspondre la capacité de ressources disponible aux besoins en ressources des flux. Allouez des ressources en fonction des priorités de flux, en veillant à ce que les flux de priorité supérieure reçoivent les ressources nécessaires pour répondre à leurs besoins. Comprenez où se trouvent vos contraintes les plus strictes et optimisez les allocations de capacité là où elles sont nécessaires. Par exemple, les files d’attente ne peuvent traiter que certains messages par minute, mais certaines limites de stockage sont difficiles à atteindre.
Limiter le débit : pour garantir que les flux critiques peuvent consommer les ressources dont ils ont besoin pour atteindre leurs objectifs de performances, appliquez des limites de débit aux flux et tâches non critiques. Les limites de débit limitent le nombre de demandes de flux de priorité inférieure et les utilisateurs peuvent effectuer des ressources contraintes. Par exemple, vous pouvez noter-limiter les demandes de non-privilège à une API. Pour plus d’informations, consultez modèle de limitation de débit et Limitation du débit d’un gestionnaire HTTP dans .NET.
Utiliser le traitement de la file d’attente prioritaire : le traitement de la file d’attente prioritaire accorde une priorité élevée à certaines demandes. Les files d’attente ont généralement une structure de premier entré, premier sorti (FIFO), mais vous pouvez mettre à jour votre application pour affecter une priorité aux messages qu’elle ajoute à la file d’attente. Utilisez cette fonctionnalité pour hiérarchiser les flux critiques et les utilisateurs. Pour plus d’informations, consultez Modèle de file d’attente avec un ordre de priorité.
Risque : il peut être difficile d’équilibrer les besoins des flux critiques avec les performances globales d’une charge de travail. Bien que vous devriez hiérarchiser les flux critiques, vous ne devez pas négliger les flux non critiques. L’efficacité globale des performances d’une charge de travail dépend de tous les flux. Les flux non critiques négligés peuvent créer des problèmes qui affectent tous les utilisateurs. Une trop grande quantité de bruit provenant d’éléments non essentiels vole l’attention des éléments critiques. Mais trop peu de bruit pourrait nuire à l’ensemble de la charge de travail. La quantité de données et le nombre d’alertes doivent refléter ces priorités équilibrées.
Facilitation Azure
Identification et surveillance des flux : Azure fournit différentes solutions pour vous aider à surveiller les performances des flux critiques dans votre charge de travail. Azure Monitor, les journaux Azure Monitor et Azure Application Insights sont quelques-uns des services qui offrent des fonctionnalités de supervision complètes pour plusieurs types d’applications et de charges de travail.
Optimisation des allocations de capacité : certains services Azure prennent en charge la segmentation des ressources, la segmentation logique et les techniques d’allocation de capacité pour allouer la capacité et les ressources aux flux critiques. Vous pouvez isoler les flux critiques via des techniques telles que la création de ressources distinctes, l’augmentation de la densité, l’utilisation de la virtualisation et de la conteneurisation, et l’allocation explicite de ressources à des flux critiques.
Certains services Azure, tels qu’Azure Gestion des API, fournissent des stratégies intégrées pour la limitation du débit. Azure fournit des conseils détaillés et un exemple d’implémentation du modèle de conception Limitation du débit.
Azure prend en charge le traitement de la file d’attente prioritaire. Azure Functions fournit des fonctions pilotées par les événements que vous pouvez déclencher de différentes manières, notamment par un nouveau message dans une file d’attente ou une rubrique. Combinez Azure Functions avec stockage file d’attente Azure ou Azure Service Bus pour traiter les messages en fonction de leur priorité.
Liens connexes
- Modèle de file d’attente avec un ordre de priorité
- Modèle de limitation de débit
- Limitation de débit d’un gestionnaire HTTP dans .NET
- Gestion des API Azure
- Azure Service Bus
Liste de contrôle d’efficacité des performances
Reportez-vous à l’ensemble complet de recommandations.