Partager via


Stratégies d’architecture pour hiérarchiser les performances des flux critiques

S’applique à cette recommandation de liste de contrôle d’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 des efforts d’optimisation des performances doit 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 à priorité élevée. Lorsque vous hiérarchiser les performances des flux critiques, 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 Definition
Flux Dans une charge de travail, la séquence d’actions qui effectue 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 file d’attente prioritaire L’acte de traitement des tâches à priorité élevée avant les tâches de faible priorité.
Limitation du débit L’acte de limitation du nombre de requêtes 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 utilisateur ou les fonctionnalités de charge de travail.
Flux utilisateur Séquence que suit un utilisateur pour accomplir une tâche.

Les flux critiques font référence aux flux utilisateur clés pour les clients ou le système et les flux 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 paywall ou tout autre chemin d’accès 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 produire 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 un mappage et une compréhension systématiques des chemins d’accès utilisateur et de la communication des composants. 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 dissectant 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 des 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 davantage 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’analyse et de suivi : ces outils fournissent des insights sur le comportement et les interactions des utilisateurs au sein de votre application. En analysant les données utilisateur, vous pouvez identifier les flux, goulots d’étranglement ou problèmes potentiels les plus courants.

  • Outils de surveillance des performances des applications (APM) : utilisez des outils APM pour surveiller les performances de votre application et suivre l’exécution des flux. Ces outils fournissent 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 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. La 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 de 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 sur les effets négatifs potentiels de performances médiocres. Par exemple, alors qu’un niveau de service gratuit peut attirer davantage d’utilisateurs, un niveau payant peut être plus vital pour vos objectifs métier.

    En outre, tenez compte des impacts sur les performances d’un flux entre un ou plusieurs processus métier. Plusieurs flux peuvent prendre en charge un processus métier unique, 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 flux unique peut sous-tendent plusieurs processus. Dans de tels cas, les performances de ce flux influencent directement l’efficacité de tous les processus connexes, et il est probable qu’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 de standout 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 une évaluation de la criticité : en fonction de l’impact de l’entreprise et des indicateurs de performances, vous devez hiérarchiser les flux. Utilisez les évaluations de la 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 évaluation de la 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 des caractéristiques de flux critiques (élevés) et non critiques (moyen à faible).

Flux critiques Flux non critiques
Utilisation élevée Faible utilisation
Critique pour l’entreprise Pas 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 non payé
Niveau Premium Niveau de base
Tâches importantes Tâches nonessentiales
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 une attention à ces flux qui sont essentiels pour une expérience utilisateur optimale ou des résultats commerciaux significatifs. L’objectif est de garantir que les flux critiques reçoivent suffisamment de puissance de calcul, de bande passante réseau et de ressources pour fonctionner efficacement et 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 avec d’autres processus. Par exemple, vous pouvez isoler les flux critiques sur des segments de 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 logiciel. Vous pouvez séparer les flux critiques dans des machines virtuelles. Ainsi, vous créez un environnement isolé, ce qui réduit les dépendances et les interférences potentielles à partir 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 de ressources ou des limites à l’aide de plateformes d’orchestration. En allouant explicitement des ressources à des flux critiques, vous empêchez la contention des ressources et hiérarchiser la façon dont elles s’exécutent.

Compromis : la segmentation des ressources affecte les coûts. Lorsque vous consacrez des ressources à un flux, vous augmentez souvent le coût et laissez certaines ressources sous-utilisées. Pour justifier les améliorations de performances apportées aux flux critiques, l’augmentation de l’impact sur l’entreprise doit dépasser l’augmentation du coût.

Optimiser l’allocation de capacité

Lorsque vous ne pouvez pas isoler les flux critiques, la meilleure option consiste à hiérarchiser les flux critiques lors de 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é inclut 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éterminer comment allouer de la capacité, tenez compte de ces stratégies :

  • Évaluer la capacité des ressources : évaluez la capacité de ressource 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 demandes de ressources, telles que l’utilisation du processeur, les besoins en mémoire et la bande passante réseau.

  • Hiérarchiser les allocations : mettre en correspondance la capacité de ressource 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. Découvrez où sont les contraintes les plus strictes et optimisez les allocations de capacité où elles sont nécessaires. Par exemple, les files d’attente peuvent traiter uniquement certains messages par minute, mais certaines limites de stockage sont difficiles à atteindre.

  • Utiliser la limitation des taux : pour vous assurer 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 limitées. Par exemple, vous pouvez limiter les demandes non privilégiées à une API. Pour plus d’informations, consultez le modèle de limitation de débit et la limitation de débit d’un gestionnaire HTTP dans .NET.

  • Utiliser le traitement de file d’attente prioritaire : le traitement de file d’attente prioritaire donne une priorité élevée à certaines demandes. Les files d’attente ont généralement une structure FIFO (First Out), 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 le modèle File d’attente prioritaire.

Risque : il peut s’agir d’un défi pour équilibrer les besoins des flux critiques avec les performances globales d’une charge de travail. Bien que vous deviez 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. Trop de bruit des é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, journaux Azure Monitor et Azure Application Insights sont certains 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 par le biais de 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 que Gestion des API Azure, 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 de débit.

Azure prend en charge le traitement de file d’attente prioritaire. Azure Functions fournit des fonctions pilotées par les événements que vous pouvez déclencher de différentes façons, 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é.

Liste de contrôle d’efficacité des performances

Reportez-vous à l’ensemble complet de recommandations.