Partager via


Recommandations pour optimiser les coûts des composants

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

CO :07 Optimisez les coûts de composants. Supprimez ou optimisez régulièrement les composants de charge de travail hérités, inutiles et sous-utilisés, notamment les fonctionnalités d’application, les fonctionnalités de plateforme et les ressources.

Ce guide décrit les recommandations relatives à l’optimisation des coûts des composants de charge de travail. L’optimisation des coûts des composants fait référence au processus d’évaluation et d’amélioration de l’efficacité au niveau des coûts des éléments individuels au sein d’une charge de travail. Cela met l’accent sur la révision continue et la suppression ou l’amélioration potentielle des composants obsolètes, inutiles ou rarement utilisés, tels que les fonctionnalités d’application, les fonctionnalités de plateforme et les ressources. Il couvre également l’optimisation des coûts des environnements de récupération d’urgence et la façon d’éviter d’introduire des composants non optimisés. Les instructions de cet article s’appliquent aux charges de travail existantes qui ne sont pas dans la phase de conception. La négligence de l’optimisation régulière des composants peut entraîner des coûts gonflés, des déchets de ressources et des charges de travail inefficaces qui drainent le temps et l’argent.

Définitions

Terme Définition
Fonctionnalité d’application Fonctionnalité distincte dans le logiciel d’application qui permet aux utilisateurs d’effectuer des tâches spécifiques ou d’accéder à des informations spécifiques.
Fonctionnalités de la plateforme Fonctionnalité ou fonctionnalité spécifique fournie par une plateforme. Il peut varier en fonction de la plateforme, mais généralement, les fonctionnalités de la plateforme sont conçues pour améliorer l’expérience utilisateur, améliorer la productivité ou activer des tâches ou des actions spécifiques.
Ressource Entité ou composant unique que vous pouvez créer, configurer et utiliser au sein d’un fournisseur de services cloud.

Stratégies de conception

L’optimisation des composants de charge de travail consiste à affiner les différents éléments d’une charge de travail, notamment les fonctionnalités d’application, les fonctionnalités de plateforme et les ressources. L’objectif est de s’assurer que la charge de travail utilise tous les composants de manière efficace et rentable. Les stratégies incluent la suppression, la modification et l’évitement des composants qui vous obligent à dépenser plus que nécessaire. Le processus d’optimisation des coûts des composants vous permet d’allouer des ressources aux fonctionnalités et aux composants qui fournissent la plus grande valeur, ce qui évite les dépenses inutiles.

Optimiser les fonctionnalités d’application

L’optimisation des fonctionnalités d’application est le processus de suppression, de réinvestissement ou de monétisation des fonctionnalités d’application en fonction de la valeur. Il vous garantit d’allouer des ressources aux fonctionnalités d’application qui fournissent la valeur la plus élevée aux clients. L’optimisation des fonctionnalités d’application permet d’éviter d’investir dans des fonctionnalités qui contribuent à la dette technique ou ne produisent pas suffisamment de retour sur investissement.

Évaluer la valeur de la fonctionnalité d’application

Pour déterminer la valeur d’une fonctionnalité, tenez compte de ses effets sur l’application globale et de la valeur qu’elle fournit aux clients. Voici quelques facteurs à prendre en compte :

  • Besoins des clients : évaluez la façon dont la fonctionnalité répond aux besoins et aux attentes des clients. Les commentaires des clients, les enquêtes et les données d’utilisation peuvent être utiles pour comprendre la valeur perçue.

  • Objectifs métier : évaluez la façon dont la fonctionnalité s’aligne sur les objectifs stratégiques de l’entreprise. Réfléchissez à la façon dont les fonctionnalités prennent en charge la génération de revenus, la satisfaction des clients ou l’avantage concurrentiel.

  • Effet sur l’expérience utilisateur : déterminez l’effet que la fonctionnalité a sur l’amélioration de l’expérience utilisateur et l’amélioration de la convivialité ou de la productivité.

  • Différenciation : évaluez si la fonctionnalité offre un point de vente unique ou un avantage concurrentiel par rapport à d’autres applications du marché.

Évaluer le coût des fonctionnalités de l’application

Il est essentiel de comprendre le coût associé à chaque fonctionnalité pour une allocation et une optimisation efficaces des ressources. Prenez en compte différents aspects lors de l’évaluation des coûts, tels que :

  • Effort de développement : évaluez le temps, les ressources et l’expertise nécessaires pour développer et maintenir la fonctionnalité ou les caractéristiques environnantes. Les fonctionnalités sous-utilisées deviennent souvent une source clé de dette technique.

  • Maintenance et support : tenez compte des coûts continus associés à la maintenance et à la prise en charge de la fonctionnalité, notamment les correctifs de bogues, les mises à jour de sécurité et la résolution des problèmes.

  • Utilisation de l’infrastructure et des ressources : évaluez l’effet de la fonctionnalité sur les exigences d’infrastructure, notamment les ressources du serveur, le stockage et la bande passante.

  • Complexité de l’intégration : évaluez la complexité et le coût de l’intégration de la fonctionnalité à d’autres systèmes ou services tiers.

  • Considérations relatives aux performances : évaluez l’effet de la fonctionnalité sur les performances de l’application, notamment l’extensibilité, le temps de réponse et l’utilisation des ressources.

Passer en revue la valeur des fonctionnalités de l’application avec les parties prenantes

Passez en revue la valeur des fonctionnalités d’application avec les parties prenantes en engageant le personnel clé, tel que les responsables de produits, les développeurs de logiciels et les analystes métier, pour évaluer la valeur des fonctionnalités spécifiques sur les objectifs métier. Cette collaboration est essentielle pour l’optimisation des coûts, car elle fournit des insights sur les efforts de maintenance et identifie les fonctionnalités susceptibles d’entraver la productivité ou de nuire au développement de nouvelles fonctionnalités précieuses. Votre équipe de développement peut vous fournir des informations importantes sur le travail nécessaire pour maintenir certaines fonctionnalités. Encouragez-les à parler des fonctionnalités qui peuvent être plus difficiles qu’elles ne valent, en particulier si ces fonctionnalités empêchent l’équipe de créer de nouvelles fonctionnalités.

Déterminer l’avenir de la fonctionnalité

En fonction de votre analyse et de votre évaluation, déterminez l’avenir des fonctionnalités de l’application. Supprimez, réinvestissez ou monétisez toute fonctionnalité d’application qui ne fournit pas de retour sur investissement :

  • Suppression : envisagez la fin de vie planifiée d’une fonctionnalité d’application en fonction des données. Les raisons de la suppression des fonctionnalités peuvent inclure une faible demande client, des coûts de maintenance élevés, une complexité ou une redondance qui ne vaut pas la peine de corriger. Créez un plan pour la suppression, qui peut impliquer la refactorisation du code, la mise à jour des dépendances ou la réorganisation de l’interface utilisateur.

    Icône RisqueRisque : vous pouvez supprimer par inadvertance des fonctionnalités critiques pour certains utilisateurs ou scénarios et affecter négativement les performances, les opérations et la sécurité dans votre application.

  • Réinvestir : certaines fonctionnalités d’application peuvent ne pas ajouter suffisamment de valeur dans leur état actuel, mais ajouter de la valeur si vous les réinvestissez. Le réinvestissement signifie retravailler ou promouvoir la fonctionnalité d’application. Hiérarchiser les améliorations identifiées en fonction de leur valeur et de leur faisabilité. Déterminez la feuille de route et la chronologie de l’implémentation des modifications. Tenez compte des facteurs tels que les ressources de développement, les dépendances et l’effet potentiel sur l’application.

  • Monétiser : transformer les fonctionnalités d’application en une opportunité de génération de revenus par le biais de la monétisation. Parfois, les fonctionnalités fournissent de la valeur aux utilisateurs, mais ne valent pas l’investissement actuel. Explorez les opportunités de monétiser ces fonctionnalités, telles que leur offrir des modules complémentaires payants distincts ou les licences à d’autres entreprises.

Optimiser les ressources de charge de travail

L’optimisation des ressources de charge de travail implique la suppression de toutes les ressources inutilisées et l’optimisation des ressources sous-utilisées dont la charge de travail a besoin. Cet effort peut économiser de l’argent, éviter les déchets et s’assurer que la charge de travail utilise uniquement les ressources qui ajoutent de la valeur.

Supprimez les ressources de charge de travail inutilisées. Les ressources inutilisées sont déployées services que vos processus de charge de travail ou d’opérations n’utilisent pas. Ces ressources peuvent être inactives à long terme, orphelines ou oubliées. Ils ne fournissent aucun retour sur investissement, et vous devez les supprimer. Les causes courantes des ressources inutilisées sont les suivantes :

  • Alertes.
  • Builds de démonstration.
  • Désaffectation de l’environnement.
  • Désaffectation des fonctionnalités.
  • Adresses IP.
  • Pare-feu réseau.
  • Preuve de concept.
  • Instantanés.
  • Comptes de stockage.
  • Environnements de test temporaires.
  • Environnements de triage temporaires.

Pour supprimer des ressources inutilisées dans une charge de travail, procédez comme suit :

  1. Effectuez un inventaire : effectuez un inventaire approfondi de toutes les ressources au sein de la charge de travail dans les environnements.

  2. Rechercher des ressources orphelines : les ressources peuvent devenir orphelines lorsqu’elles ne sont plus nécessaires ou lorsque leurs ressources parentes sont supprimées. Par exemple, vous pouvez supprimer une machine virtuelle, mais son compte de stockage associé n’est pas supprimé. Passez en revue votre charge de travail pour identifier les ressources inutiles ou orphelines.

  3. Supprimer les composants inactifs : il existe généralement un coût associé à une ressource déployée. Même si la ressource vous permet d’arrêter ou de réallouer, vous pouvez continuer à payer pour la ressource. Envisagez de supprimer des ressources inactives. Si vous avez besoin des données, sauvegardez-les d’abord, puis supprimez la ressource. Vous pouvez mieux redéployer la ressource et restaurer les données que d’autoriser la ressource à rester inactive.

Optimisez les ressources sous-utilisées. Les ressources sous-utilisées représentent des dépenses gaspiller lorsque vous payez pour la capacité des ressources qui n’est pas entièrement utilisée. Identifiez et optimisez ces ressources pour réduire les coûts et allouer des ressources plus efficacement. Pour évaluer et optimiser le coût des ressources sous-utilisées, procédez comme suit :

  1. Surveiller les ressources : utilisez des outils pour surveiller la quantité d’UC, de mémoire et de stockage que vous utilisez réellement. Choisissez le meilleur plan qui correspond à vos besoins en fonction de ces informations.

  2. Analyser l’utilisation : examinez les données pour savoir quelles ressources vous n’utilisez pas. Faites attention aux ressources qui ont une faible utilisation au fil du temps ou des différences importantes d’utilisation entre les temps occupés et les temps lents.

  3. Dimensionnement approprié : vérifiez s’il y a trop de ressources allouées aux fonctionnalités qui ne sont pas utilisées. Si c’est le cas, ajustez leur taille pour mieux correspondre à ce dont vous avez réellement besoin.

  4. Mise à l’échelle automatique : utilisez la mise à l’échelle automatique pour ajuster les ressources que vous utilisez en fonction de la disponibilité que vous êtes. Veillez à définir une limite de mise à l’échelle maximale pour éviter les pics soudains qui peuvent être coûteux et inutiles.

Après avoir fait ces ajustements, testez pour vous assurer que tout fonctionne toujours comme il le devrait. Surveillez en permanence l’utilisation des ressources et ajustez l’allocation des ressources à mesure que les demandes de charge de travail changent au fil du temps. Passez régulièrement en revue et optimisez l’utilisation des ressources pour maintenir l’efficacité des coûts et l’optimisation des performances.

Optimisez les ressources de récupération d’urgence. L’optimisation des environnements de récupération d’urgence consiste à garantir que les ressources allouées pour la récupération d’urgence sont utilisées efficacement. Une stratégie de récupération d’urgence chaude (active-passive) est une source courante de sous-utilisation. Dans une stratégie de récupération d’urgence chaude, un environnement reçoit toute la charge tandis que l’autre environnement est inactif jusqu’à ce qu’il y ait un scénario d’urgence. Pour optimiser un environnement de récupération d’urgence, réfléchissez à la façon dont une approche de récupération d’urgence (active/active), froide (active-off) ou active-redéploiement peut vous aider à éviter les ressources sous-utilisées. Voici une vue d’ensemble de ces trois approches de récupération d’urgence :

  • Plans chauds : les environnements principaux et secondaires servent simultanément le trafic. Votre charge de travail peut équilibrer les charges entre ces environnements et répondre aux demandes en temps réel. La distribution de la charge entre deux environnements actifs vous permet d’utiliser des ressources moins coûteuses, de réduire les goulots d’étranglement à un seul point et d’utiliser des capacités au maximum. Cela peut entraîner une réduction des coûts en termes de perte de ressources ou d’idage. Une approche à chaud peut demander davantage d’investissements dans la synchronisation et maintenir la parité entre les deux environnements.

  • Plans froids : un modèle de récupération d’urgence à froid implique un environnement de secours qui reste dormant jusqu’à ce qu’un sinistre déclenche le besoin de basculement. Étant donné que l’environnement de secours n’est pas actif, les coûts liés au calcul, au stockage et aux opérations réseau sont réduits. Vos dépenses tournent autour du stockage des sauvegardes, des images de machine virtuelle ou des modèles. Le basculement dans le modèle froid peut prendre plus de temps, car les ressources doivent être démarrées et les données peuvent avoir besoin d’être restaurées. Assurez-vous que le temps de récupération s’aligne sur les objectifs de temps de récupération (RTO) de votre entreprise avant de vous engager dans cette approche.

  • Redéploiement actif : cette stratégie utilise l’infrastructure en tant que code. Lorsqu’un événement de basculement se produit, vous déployez l’environnement secondaire à l’aide de modèles et de scripts prédéfinis. Sans ressources de calcul prédéployées dans l’environnement de récupération d’urgence, vous économisez sur les coûts associés à la maintenance des ressources inactives. Vous entraînez uniquement des coûts pendant le déploiement réel dans un scénario de basculement. Comme l’approche à froid, ce modèle peut introduire des temps de récupération plus longs, en particulier si la complexité de l’infrastructure est élevée. Vous devez tester et mesurer le temps de récupération pour vous assurer qu’il répond à votre objectif de temps de récupération.

Optimiser les fonctionnalités de la plateforme

L’optimisation des fonctionnalités de plateforme implique l’élimination ou la mise à jour des fonctionnalités de plateforme, telles que les niveaux de performances et les paramètres de configuration, pour optimiser les coûts. Il permet d’aligner les dépenses sur les exigences de la charge de travail et d’éviter les dépenses inutiles sur les fonctionnalités inutiles. Voici quelques conseils pour optimiser le coût des fonctionnalités de la plateforme :

  • Connaissez les fonctionnalités des éléments que vous achetez : avant de pouvoir optimiser, vous avez besoin d’un inventaire clair des services et de leurs fonctionnalités sur vos plateformes cloud. Comprendre les fonctionnalités et fonctionnalités des plateformes ou des services dans votre charge de travail. N’oubliez pas le niveau spécifique que vous avez choisi et les fonctionnalités proposées par chaque niveau. Par exemple, si vous n’avez pas besoin d’une mise à l’échelle automatique ou d’une mise à l’échelle avancée, un plan de niveau inférieur peut suffire.

  • Désactiver les fonctionnalités inutilisées : identifiez et désactivez les fonctionnalités de plateforme qui coûtent de l’argent. Vous pouvez avoir des instantanés de stockage inutiles, des disques inutilisés, des fonctionnalités de sécurité redondantes ou des fonctionnalités réseau sous-utilisées.

  • Utilisez les versions appropriées : les versions plus récentes d’un service peuvent fournir des performances similaires pour le même prix. Par exemple, une machine virtuelle avec du matériel plus récent peut souvent fournir les mêmes performances pour moins d’argent.

  • Utilisez les bonnes configurations : vous pouvez payer plus de disponibilité ou de performances que nécessaire. Éliminez la disponibilité ou les garanties de performances que la charge de travail n’a pas besoin.

  • Éliminez l’automatisation inutile : évaluez vos processus d’automatisation et éliminez toute automatisation inutilisée susceptible d’entraîner des coûts supplémentaires.

  • Éliminer la redondance des outils : supprimez les outils dont vous n’avez pas besoin ou qui fournissent la même fonction. Évaluez la redondance potentielle dans les outils que vous utilisez pour créer des logiciels, écrire du code, la sécurité et la surveillance. Par exemple, si vous utilisez GitHub Actions pour générer votre logiciel, vous n’avez pas besoin d’acheter un autre outil qui génère des logiciels. Avant d’acheter des fonctionnalités ou des outils, vérifiez s’il existe déjà un outil dans votre charge de travail qui peut effectuer le travail. Éliminez la redondance des outils pour éviter les pertes d’argent et tirer le meilleur parti de ce que vous avez déjà.

Empêcher les composants non optimisés

Empêcher les composants non optimisés consiste à garantir de manière proactive que les composants sont essentiels et optimisés avant d’ajouter ou de modifier. La meilleure façon de se débarrasser du gaspillage est de l’éviter en premier lieu. Utilisez des stratégies qui empêchent les dépenses inutiles en traitant les inefficacités à la racine, ce qui garantit qu’une charge de travail s’exécute efficacement dès le début. Pour aider à prévenir les déchets, envisagez ces stratégies :

  • Recherchez la cause racine avant de modifier les solutions : avant de résoudre un problème, assurez-vous de savoir ce qui en est réellement à l’origine. Par exemple, si votre site web est lent, ne passez pas immédiatement à un nouveau système. Tout d’abord, déterminez pourquoi c’est lent. Vous pouvez constater que le problème réel est autre chose, comme les requêtes de base de données incorrectes. Corrigez le problème réel pour économiser du temps et de l’argent.

  • Appliquer des métadonnées : appliquez des métadonnées pour organiser et suivre les ressources. Vous pouvez utiliser des métadonnées pour classer et regrouper des ressources, ce qui facilite le suivi, la suppression et l’évitement des ressources orphelines. Créez une stratégie de métadonnées cohérente entre les ressources. Envisagez d’ajouter des propriétaires, la durée de ressource prévue (par exemple, sunset-30d) ou d’autres balises.

  • Documentez les modifications non standard : documentez les modifications apportées à votre infrastructure ou configurations effectuées en dehors du processus de contrôle normal de votre charge de travail pour réduire les coûts inattendus. Par exemple, vous pouvez augmenter les capacités de mise à l’échelle (up ou out) d’une ressource pour répondre à une demande à court terme ou trier un problème, mais oubliez de la réduire. Effectuez une liste de modifications non standard et utilisez-la comme rappel pour rétablir les modifications lorsqu’elles ne sont plus nécessaires.

  • Gardez les choses simples : simplifiez votre infrastructure et réduisez la complexité pour réduire les coûts. Utilisez uniquement les ressources et services nécessaires qui répondent à vos besoins.

Facilitation Azure

Optimisation des fonctionnalités d’application : vous pouvez utiliser Azure Monitor et Application Insights pour surveiller l’utilisation de votre application et identifier les zones qui sont ou ne sont pas utilisées. En fonction des insights collectés, vous pouvez prendre des décisions éclairées pour supprimer ou optimiser les fonctionnalités inutilisées ou sous-utilisées.

Optimisation des ressources de charge de travail et des fonctionnalités de plateforme : Azure Advisor fournit des recommandations sur les coûts pour identifier et éliminer les ressources inutilisées. Vous pouvez utiliser Advisor pour analyser l’utilisation de vos ressources et recevoir des suggestions sur les ressources à supprimer ou à effectuer un scale-down. Le classeur Optimisation des coûts dans Azure Advisor sert de hub centralisé pour certains des outils les plus couramment utilisés qui peuvent vous aider à atteindre les objectifs d’utilisation et d’efficacité. Il propose une gamme de recommandations, y compris des recommandations de coût Azure Advisor. Il permet également d’identifier les ressources inactives et de gérer les machines virtuelles désalloués de manière incorrecte.

Azure Monitor prend en charge les classeurs. Avec les classeurs Azure Monitor, vous pouvez rechercher ou créer un classeur qui recherche et signale des ressources orphelines dans une étendue définie. Vous pouvez utiliser Azure Automation pour arrêter des machines virtuelles pendant des périodes d’inactivité. Les arrêts de ressources permettent de réduire les coûts en réduisant l’utilisation des ressources inactives.

Vous pouvez utiliser la fonctionnalité de mise à l’échelle automatique dans Azure pour mettre automatiquement à l’échelle votre application en fonction de conditions prédéfinies. Vous n’avez donc pas besoin de surprovisionner la capacité. La mise à l’échelle automatique peut vous aider à allouer des ressources de manière efficace et rentable.

Du point de vue de la conception, les équilibreurs de charge Azure peuvent répartir les charges entre les zones de disponibilité et les régions. Ces équilibreurs de charge peuvent aider à éliminer les ressources inactives, par exemple dans les approches de récupération d’urgence.

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

Reportez-vous à l’ensemble complet de recommandations.