Partager via


Recommandations pour optimiser les coûts de flux

S’applique à cette recommandation de liste de contrôle Azure Well-Architected Framework Cost Optimization :

CO :09 Optimiser les coûts de flux. Aligner le coût de chaque flux avec la priorité de flux. Lorsque vous hiérarchiser les flux, tenez compte des fonctionnalités, des fonctionnalités et des exigences non fonctionnelles de chaque flux. L’optimisation des dépenses de flux nécessite souvent des compromis stratégiques.

Ce guide décrit les recommandations pour optimiser le coût de chacun des flux de votre charge de travail. L’optimisation des coûts des flux dans une charge de travail implique l’allocation stratégique et la gestion des ressources pour réduire les dépenses tout en conservant les performances. Cette optimisation est essentielle, car elle garantit une utilisation efficace des ressources investies, réduit les dépenses inutiles et améliore le retour global sur investissement pour l’infrastructure. Si vous n’optimisez pas les flux d’une charge de travail, vous risquez de surcharger les ressources, ce qui entraîne des coûts opérationnels gonflés et une rentabilité réduite.

Définitions

Terme Définition
Découpler Stratégie de suppression d’un flux d’une ressource qui contient plusieurs flux et de la placer dans une ressource distincte.
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.
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 Chemins ou séquences d’actions que les utilisateurs effectuent au sein d’une application ou d’un système.

Stratégies de conception

Investissez davantage dans des flux à priorité élevée que dans des flux de priorité inférieure. L’alignement de la priorité de flux et des dépenses peut impliquer le découplage des flux qui partagent actuellement la même ressource. Il peut également impliquer la combinaison de flux qui ont des exigences similaires, mais qui sont exécutés sur des ressources distinctes. Par exemple, supposons que vous disposez d’une application web qui inclut plusieurs flux, tels que l’inscription de l’utilisateur, la connexion et le traitement des données. Ces flux s’exécutent sur un seul serveur, même s’ils ont des besoins de ressources différents. Pour optimiser les coûts et les performances, vous pouvez séparer les flux ou combiner des flux :

  • Flux distincts. Par exemple, vous pouvez dissocier le flux d’inscription utilisateur des autres utilisateurs et le déplacer vers un serveur dédié à moindre coût. Ce flux est important, mais pas gourmand en ressources. Il s’agit donc d’un bon candidat pour un serveur moins coûteux.

  • Combiner des flux. Par exemple, vous pouvez combiner les flux de connexion et de traitement des données, qui ont tous deux des besoins en ressources plus élevés et les exécuter ensemble sur un serveur hautes performances. La combinaison de ces flux permet au serveur de gérer efficacement les besoins gourmands en ressources des deux flux. Il optimise les performances et les coûts.

Dans une charge de travail, il peut y avoir différents types de flux ou de chemins que vous devez prendre en compte. Ce guide se concentre sur les types de flux suivants :

  • Flux système. L’optimisation des flux système implique de rationaliser la communication et l’interaction entre les composants du système, de réduire les goulots d’étranglement et de garantir une utilisation efficace des ressources.

  • Flux utilisateur. L’optimisation des flux utilisateur implique d’améliorer l’expérience utilisateur, de réduire les points de friction et de garantir une navigation et une interaction fluide au sein de l’application ou du système.

Créer un inventaire des flux

Un inventaire de flux est une liste complète et une description de toutes les séquences d’actions, de transitions de données et d’interactions système au sein d’une charge de travail. Un inventaire de flux est la première étape permettant de garantir que les investissements s’alignent sur la priorité des flux. Vous ne devez optimiser les flux que lorsque vous comprenez pleinement leur objectif et leurs dépendances. Voici les étapes de création d’un inventaire des flux de charge de travail :

  1. Flux de documents. Commencez par documenter et répertorier tous les flux existants dans votre charge de travail pour comprendre l’état complet du système. Incluez chaque séquence d’actions, de transitions de données et d’interactions système. Familiarisez-vous avec chaque composant, comme les services externes, les bases de données, les intergiciels et les intégrations tierces. En outre, effectuez le suivi ou estimez le volume des demandes au fil du temps.

  2. Visualiser les flux. Pour obtenir une perspective plus claire, représentez visuellement vos résultats, éventuellement dans des diagrammes de flux ou des diagrammes. Les visualisations vous aident à voir les interdépendances entre les composants. Envisagez d’utiliser un outil tel que Visio pour vous aider à utiliser les visualisations.

  3. Catégoriser les flux. Regroupez des flux similaires, en tenant compte des attributs tels que leurs fonctionnalités (par exemple, l’authentification, la récupération des données et le traitement des transactions), la critique pour l’entreprise ou les ressources qu’ils utilisent (processeur, mémoire ou bande passante).

Hiérarchiser les flux

La hiérarchisation des flux est le processus de classification des flux en fonction de leur influence sur les résultats métier, les implications sur l’expérience utilisateur et les ressources qu’ils consomment. Les flux critiques nécessitent souvent des niveaux de disponibilité plus élevés, des temps de récupération plus rapides et de meilleures performances pour atteindre les objectifs de charge de travail. En hiérarchisant les flux, vous pouvez mieux aligner les dépenses sur la priorité des flux. Pour hiérarchiser les flux, tenez compte des étapes suivantes :

  • Identifiez la valeur du flux. Lorsque vous optimisez les coûts de flux de charge de travail, vous devez identifier le flux qui fournit la plus grande valeur. Vous ne voulez pas dépenser plus qu’un flux vaut la peine. Au lieu de réduire simplement les coûts, envisagez de déplacer les coûts pour hiérarchiser les flux les plus précieux. Par exemple, votre flux de caisse est essentiel pour l’entreprise, mais l’historique des achats n’est pas. Vous devez allouer davantage de ressources et de budget au flux d’extraction.

    Les flux à faible priorité ont des attentes plus faibles en matière de disponibilité, de récupération et de performances. Vous pouvez réduire les coûts en utilisant des configurations moins coûteuses pour réduire les dépenses de performances, de disponibilité ou de continuité d’activité.

  • Envisagez les métriques de flux. Si vous avez du mal à hiérarchiser vos flux, tenez compte des objectifs de disponibilité et de récupération que vous leur avez attribués. Les flux critiques ont souvent des exigences de haute disponibilité et des contrats de niveau de service (SLA). Les flux associés à un RPO et un RTO inférieurs sont plus importants que les flux qui ont un RPO et un RTO plus élevés.

Optimiser les flux indépendants

Parfois, vos flux s’exécutent déjà sur différentes ressources. Dans ces cas, vous pouvez plus facilement évaluer et optimiser les dépenses. Évaluez les composants et les processus impliqués dans chaque flux indépendant pour déterminer s’il existe des façons d’optimiser ou de les simplifier. Pour optimiser les flux indépendants, vous pouvez suivre les étapes suivantes :

  • Éliminez les composants inutiles. Supprimez tous les éléments superflus qui ne contribuent pas à la fonctionnalité principale du flux, ce qui réduit la complexité et le coût.

  • Reconcevoir le flux. Envisagez de redéfinir l’architecture du flux pour améliorer son efficacité. Vous pouvez modifier la séquence d’opérations, réduire la latence ou améliorer les vitesses de transfert de données, par exemple.

  • Choisissez un niveau de performances approprié. Différents flux peuvent avoir des demandes variables en termes de vitesse de traitement, de mémoire ou d’autres métriques de ressources. Veillez à choisir un niveau de ressource qui s’aligne bien sur les exigences spécifiques de chaque flux.

  • Ajustez les paramètres de mise à l’échelle. Si un flux rencontre une demande variable, envisagez d’implémenter la mise à l’échelle automatique pour ajuster dynamiquement les ressources en fonction des besoins en temps réel, ce qui optimise les coûts.

  • Ajuster les configurations. Ajustez d’autres paramètres, tels que les options de mise en réseau ou de stockage de données, pour mieux s’aligner sur les performances et les exigences budgétaires du flux.

Séparer les flux dissimilar

La séparation des flux dissimilants sur différentes ressources est un processus d’allocation de tâches distinctes avec différents besoins de calcul pour les ressources dédiées. Les flux dissemblables sont des flux qui ont des attributs différents. Ces attributs peuvent inclure les exigences de calcul, les dépendances de données, les opérations d’E/S, la sensibilité à la latence, les besoins de sécurité et les exigences de conformité. Il est souvent plus économique d’exécuter différents types de flux sur des ressources distinctes. Cela permet une allocation précise des ressources à chaque flux, ce qui réduit les dépenses inutiles et garantit une efficacité maximale.

Envisagez de séparer les flux dissimilants qui sont actuellement combinés. Cette séparation améliore l’extensibilité, la tolérance de panne et l’adaptabilité, et simplifie également les coûts. En vous assurant que chaque flux fonctionne indépendamment, vous réduisez les risques d’interférence et pouvez allouer des ressources plus rentables en fonction de la priorité de chaque flux. Par exemple, supposons que vous colocalisez CRM (flux utilisateur) avec un moteur de données (flux de données). Le trafic utilisateur vers le système CRM pendant les heures de bureau peut ralentir le moteur de données. Lorsque vous dissociez les flux, le moteur de données peut mettre à l’échelle chaque composant ou service indépendamment en fonction de la demande de charge de travail. Ce découplage optimise l’allocation des ressources et réduit les coûts.

Combiner des flux similaires

La combinaison de flux similaires sur une seule ressource est un processus de consolidation des tâches ou des processus avec des attributs comparables et l’utilisation de ressources partagées pour eux. Cette stratégie permet d'éliminer les redondances et d'assurer une utilisation plus efficace des ressources, ce qui se traduit par d'importantes économies. Des types similaires de flux partagent des attributs similaires. Vous pouvez considérer les mêmes attributs que ceux que vous examinez lorsque vous séparez les flux dissimilants : exigences de calcul, dépendances de données, opérations d’E/S, sensibilité de la latence, besoins de sécurité et exigences de conformité. Voici quelques exemples où la combinaison de flux de charge de travail similaires pour utiliser la même ressource peut entraîner des économies substantielles :

  • Serveurs web. Au lieu de dédier des serveurs web distincts pour chaque application, envisagez de les consolider, en particulier si leur trafic n’est pas constamment élevé. Un serveur web partagé, associé à un proxy inverse, peut gérer et acheminer efficacement le trafic vers plusieurs applications.

  • Passerelles d’API. Au lieu de conserver des passerelles d’API individuelles pour des microservices ou applications distincts, vous pouvez utiliser une passerelle API centralisée pour simplifier les requêtes et les diriger vers le service approprié. Cela facilite la gestion et réduit également les coûts.

  • Traitement des journaux. Au lieu d’avoir plusieurs applications ou services qui opèrent chacun leurs propres instances de traitement des journaux, envisagez de les diriger vers un outil de traitement de journal partagé. Cette approche réduit le nombre d’instances actives, ce qui se traduit par des économies directes de coûts.

  • Services d’authentification. Si plusieurs applications déploient leurs propres mécanismes d’authentification distincts, la redondance est introduite. L’intégration d’une solution d’authentification unique (SSO) ou d’un service d’authentification commune réduit cette duplication et optimise l’utilisation des ressources, ce qui réduit les coûts.

Risque : Ne vous trompez pas avec la conception. Deux flux qui ressemblent ne servent pas nécessairement le même objectif. Vous devez comprendre la fonction et la conception de chaque flux avant de les fusionner ou de les modifier. L’interprétation incorrecte d’un flux en se concentrant uniquement sur son apparence peut entraîner des conséquences inattendues et perturber le service ou le processus qu’il prend en charge. Si plusieurs flux servent la même fonction et qu’il n’existe aucune différence perceptible dans leur conception ou leur intention, envisagez de les consolider.

Surveiller les flux en continu

La nature des flux et des charges de travail peut changer au fil du temps. Vous devez donc passer en revue les dépenses de flux pour vous assurer que les coûts s’alignent sur les priorités. Évaluez l'utilisation des ressources de chaque flux en analysant l'utilisation du calcul, du stockage et du réseau associée à chaque flux. Identifiez les inefficacités ou les zones où les ressources sont sous-utilisées. Cette analyse vous aide à identifier les opportunités d’optimisation des coûts. Voici quelques considérations à prendre en compte lorsque vous passez en revue l’utilisation du flux :

  • Analysez les modèles d’utilisation. Analysez les modèles d’utilisation des flux. Certains flux peuvent être plus actifs pendant certaines heures du jour ou du mois, tandis que d’autres peuvent avoir une charge cohérente. En comprenant ces modèles, vous pouvez prédire les besoins des ressources et ajuster l’allocation pour éviter les goulots d’étranglement et le surprovisionnement.

  • Surveillez les métriques pertinentes. Déterminez les métriques qui peuvent vous aider à évaluer l’efficacité et l’efficacité de chaque flux. Envisagez l’utilisation du processeur, les coûts de transfert de données, les coûts de transaction et l’empreinte de stockage. Utilisez les outils de surveillance pour collecter des métriques détaillées sur l’utilisation et les performances des ressources.

  • Envisagez la maintenance en cours. Tenez compte du coût de la maintenance, en particulier lorsque vous utilisez des solutions d’infrastructure en tant que service comme des machines virtuelles. Vous devez tenir compte des activités telles que la mise à jour corrective, les mises à niveau, les sauvegardes, la surveillance et la sécurité.

Pendant votre analyse, identifiez les inefficacités ou les zones où les ressources ne sont pas utilisées efficacement. Envisagez d’utiliser des instances de calcul inactives, des données inutilisées et une bande passante réseau faible. Ces inefficacités peuvent indiquer des opportunités d’optimisation des coûts.

Facilitation Azure

Hiérarchisation, optimisation et surveillance des flux : l’outil User Flow dans Application Insights fournit une représentation visuelle de la navigation utilisateur sur les pages et fonctionnalités de votre site. Cet outil permet d’identifier les zones où les utilisateurs quittent fréquemment, répètent des actions ou suivent des chemins spécifiques. En comparant le comportement réel de l’utilisateur à vos résultats et objectifs prévus, vous pouvez identifier les flux critiques. Il vous permet également d’optimiser les problèmes potentiels tels que les taux d’attrition élevés, les actions répétitives ou les défauts de conception. L’outil permet également de filtrer des propriétés personnalisées à travers des dimensions, offrant une analyse plus personnalisée.

Azure Monitor vous aide à obtenir des insights sur les performances et l’intégrité de vos applications. Il fournit des fonctionnalités de supervision et de diagnostic. Ces fonctionnalités vous permettent d’identifier les goulots d’étranglement des performances, d’optimiser l’utilisation des ressources et de détecter et résoudre les problèmes susceptibles d’affecter les coûts.

Log Analytics est un outil qui vous permet de collecter, d’analyser et de visualiser les données de journal à partir de différentes sources. En utilisant Log Analytics, vous pouvez obtenir des informations sur vos journaux d’activité d’application et d’infrastructure, identifier les tendances et optimiser les coûts en gérant l’utilisation et la rétention des données. Envisagez de colocalisation des journaux et d’utiliser des solutions dédiées plutôt que des solutions partagées pour mieux gérer les coûts.

Liste de contrôle d’optimisation des coûts

Reportez-vous à l’ensemble complet de recommandations.