Recommandations pour optimiser les coûts de flux

S’applique à cette recommandation de liste de contrôle d’optimisation des coûts d’Azure Well-Architected Framework :

CO :09 Optimiser les coûts de flux. Aligner le coût de chaque flux avec la priorité de flux. Lorsque vous hiérarchisez 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 une allocation et une gestion stratégiques 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 sur investissement global de l’infrastructure. Si vous n’optimisez pas les coûts des flux dans une charge de travail, vous risquez de dépenser trop de ressources, ce qui entraîne une augmentation des coûts d’exploitation et une baisse de la rentabilité.

Définitions

Terme Définition
Découpler Stratégie consistant à supprimer un flux d’une ressource qui contient plusieurs flux et à le placer dans une ressource distincte.
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.
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 d’accès ou séquences d’actions que les utilisateurs effectuent dans une application ou un système.

Stratégies de conception

Investir davantage dans les flux à priorité élevée que dans les flux à priorité inférieure. L’alignement de la priorité et des dépenses de flux 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, comme l’inscription utilisateur, la connexion et le traitement des données. Ces flux s’exécutent sur un serveur unique, même s’ils ont des besoins en ressources différents. Pour optimiser les coûts et les performances, vous pouvez séparer des flux ou combiner des flux :

  • Flux distincts. Par exemple, vous pouvez dissocier le flux d’inscription de l’utilisateur des autres 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 fluides au sein de l’application ou du système.

Créer un inventaire des flux

Un inventaire de flux est une liste et une description complètes 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 des flux est la première étape pour s’assurer 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, suivez ou estimez le volume de requêtes au fil du temps.

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

  3. Catégoriser les flux. Regroupez des flux similaires, en tenant compte d’attributs tels que leurs fonctionnalités (par exemple, l’authentification, la récupération de données et le traitement des transactions), la criticité 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 de l’entreprise, des implications sur l’expérience utilisateur et des ressources qu’ils consomment. Les flux critiques nécessitent souvent des niveaux de disponibilité plus élevés, des délais de récupération plus rapides et de meilleures performances pour répondre aux objectifs de charge de travail. En hiérarchisant les flux, vous pouvez mieux aligner les dépenses sur la priorité de flux. Pour hiérarchiser les flux, procédez comme suit :

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

    Les flux à faible priorité ont des attentes moindres 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 en matière 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 assigné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 ce cas, vous pouvez plus facilement évaluer et optimiser les dépenses. Évaluez les composants et processus impliqués dans chaque flux indépendant pour déterminer s’il existe des moyens de les optimiser ou de les simplifier. Pour optimiser les flux indépendants, vous pouvez effectuer les étapes suivantes :

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

  • Reconcevoir le flux. Envisagez de repenser l’architecture du flux pour améliorer son efficacité. Vous pouvez modifier la séquence des 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 ressources 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.

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

Séparer les flux dissemblaires

La séparation des flux dissemblables sur différentes ressources est un processus d’allocation de tâches distinctes avec des besoins de calcul variables à des ressources dédiées. Les flux dissemblaires sont des flux qui ont des attributs différents. Ces attributs peuvent inclure des exigences de calcul, des dépendances de données, des opérations d’E/S, une sensibilité à la latence, des besoins de sécurité et des exigences de conformité. Il est souvent plus rentable 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 différents qui sont actuellement combinés. Cette séparation améliore la scalabilité, 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 efficacement en fonction de la priorité de chaque flux. Par exemple, supposons que vous colocalisiez 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 des 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 ressource unique est un processus de consolidation de tâches ou de processus avec des attributs comparables et d’utilisation de ressources partagées pour celles-ci. Cette stratégie élimine les redondances et garantit une utilisation plus efficace des ressources, ce qui entraîne des économies significatives. Des types de flux similaires partagent des attributs similaires. Vous pouvez considérer les mêmes attributs que vous examinez lorsque vous séparez les flux différents : exigences de calcul, dépendances de données, opérations d’E/S, sensibilité à 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 gérer des passerelles API individuelles pour des microservices ou des applications distinctes, vous pouvez utiliser une passerelle d’API centralisée pour simplifier les demandes 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 exploitent chacun leurs propres instances de traitement des journaux, envisagez de les diriger toutes vers un outil de traitement des journaux partagé. Cette approche réduit le nombre d’instances actives, ce qui se traduit par des économies directes.

  • 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 communautaire réduit cette duplication et optimise l’utilisation des ressources, ce qui réduit les coûts.

Risque : ne confondez pas la coïncidence avec la conception. Deux flux qui se ressemblent n’ont 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. Une mauvaise interprétation 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 remplissent la même fonction et qu’il n’existe aucune différence perceptible dans leur conception ou leur intention, envisagez de les consolider.

Surveiller en continu les flux

La nature des flux et des charges de travail pouvant changer au fil du temps, vous devez donc examiner les dépenses de flux pour vous assurer que les coûts correspondent aux priorités. Évaluez l’utilisation des ressources de chaque flux en analysant le calcul, le stockage et l’utilisation du réseau associés à chaque flux. Identifiez les inefficacités ou les domaines dans lesquels 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 à certains moments de la journée ou du mois, tandis que d’autres peuvent avoir une charge cohérente. En comprenant ces modèles, vous pouvez prédire les besoins en ressources et ajuster l’allocation pour éviter les goulots d’étranglement et les surapprovisionnements.

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

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

Au cours de votre analyse, identifiez les inefficacités ou les domaines dans lesquels les ressources ne sont pas utilisées efficacement. Considérez les instances de calcul inactives, les données inutilisées et la bande passante réseau faible. Ces inefficacités peuvent indiquer des opportunités d’optimisation des coûts.

Animation Azure

Hiérarchisation, optimisation et surveillance des flux :L’outil User Flow dans Application Insights fournit une représentation visuelle de la navigation des utilisateurs 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 avec 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 des taux d’attrition élevés, des actions répétitives ou des défauts de conception. L’outil permet également de filtrer les propriétés personnalisées à travers les dimensions, offrant une analyse plus personnalisée.

Azure Monitor vous permet d’obtenir des insights sur les performances et l’intégrité de vos applications. Il fournit des fonctionnalités de surveillance et de diagnostics. Ces fonctionnalités vous permettent d’identifier les goulots d’étranglement des performances, d’optimiser l’utilisation des ressources et de détecter et de 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 des données de journal à partir de différentes sources. En utilisant Log Analytics, vous pouvez obtenir des insights sur vos journaux d’application et d’infrastructure, identifier les tendances et optimiser les coûts en gérant l’utilisation et la conservation des données. Envisagez de colocaliser les 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 de l’optimisation des coûts

Reportez-vous à l’ensemble complet de recommandations.