Recommandations pour optimiser les coûts des composants

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

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

Ce guide décrit les recommandations pour optimiser les 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 la rentabilité d’éléments individuels au sein d’une charge de travail. Il met l’accent sur l’examen continu et la suppression ou l’amélioration potentielle de composants obsolètes, inutiles ou rarement utilisés, tels que les fonctionnalités d’application, les fonctionnalités de la 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 l’introduction de composants non optimisés. Les conseils de cet article s’appliquent aux charges de travail existantes qui ne sont pas en phase de conception. La négligence de l’optimisation régulière des composants peut entraîner une augmentation des coûts, un gaspillage de ressources et des charges de travail inefficaces qui drainent temps et argent.

Définitions

Terme Définition
Fonctionnalité d’application Fonctionnalité distincte au sein du 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. Cela peut varier en fonction de la plateforme, mais en règle générale, 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 la plateforme et les ressources. L’objectif est de garantir que la charge de travail utilise tous les composants de manière efficace et économique. Les stratégies incluent la suppression, la modification et l’évitement des composants qui vous font dépenser plus que nécessaire. Le processus d’optimisation des coûts des composants garantit que vous allouez des ressources aux fonctionnalités et aux composants qui offrent le plus de valeur, en évitant les dépenses inutiles.

Optimiser les fonctionnalités des applications

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 le plus de valeur aux clients. L’optimisation des fonctionnalités d’application permet d’éviter d’investir dans des fonctionnalités qui contribuent à la dette technique ou qui ne rapportent pas suffisamment de retour sur investissement.

Évaluer la valeur des fonctionnalités 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 dans quelle mesure 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 de la fonctionnalité 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 sur le marché.

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

Il est essentiel que vous compreniez le coût associé à chaque fonctionnalité pour une allocation et une optimisation efficaces des ressources. Tenez compte de 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 fonctionnalités 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 la scalabilité, le temps de réponse et l’utilisation des ressources.

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

Passez en revue la valeur des fonctionnalités d’application avec les parties prenantes en engageant le personnel clé, comme 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 de l’entreprise. Cette collaboration est essentielle à l’optimisation des coûts, car elle fournit des informations 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 la quantité de travail nécessaire à la maintenance de certaines fonctionnalités. Encouragez-les à parler des fonctionnalités qui peuvent être plus difficiles qu’elles n’en valent la peine, en particulier si ces fonctionnalités distraient l’équipe d’en créer de nouvelles.

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 n’offre pas de retour sur investissement :

  • Suppression : tenez compte de la fin de vie planifiée d’une fonctionnalité d’application en fonction des données. Les raisons de la suppression de fonctionnalités peuvent inclure une faible demande du client, des coûts de maintenance élevés, une complexité ou une redondance qui ne vaut pas la peine d’être réparée. 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 qui sont critiques pour certains utilisateurs ou scénarios et qui peuvent 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 pourraient 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 les chronologie d’implémentation des modifications. Tenez compte de facteurs tels que les ressources de développement, les dépendances et l’effet potentiel sur l’application.

  • Monétiser : transformez les fonctionnalités d’application en une opportunité de génération de revenus via la monétisation. Parfois, les fonctionnalités fournissent de la valeur aux utilisateurs, mais ne valent pas l’investissement actuel. Explorez les possibilités de monétiser ces fonctionnalités, par exemple en les proposant en tant que modules complémentaires payants distincts ou en les donnant sous licence à 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 permet d’économiser de l’argent, d’éviter le gaspillage et de garantir 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 des services déployés que votre charge de travail ou vos processus d’exploitation 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 tri temporaire.

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

  1. Effectuer un inventaire : effectuez un inventaire complet de toutes les ressources au sein de la charge de travail entre 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 : un coût est généralement 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 les ressources inactives. Si vous avez besoin des données, sauvegardez-les d’abord, puis supprimez la ressource. Il est préférable de redéployer la ressource et de restaurer les données plutôt que de laisser 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 une capacité de ressources qui n’est pas entièrement utilisée. Identifiez et optimisez ces ressources pour réduire les coûts et allouer les 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é de processeur, 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 déterminer les ressources que vous n’utilisez pas. Faites attention aux ressources qui ont une faible utilisation au fil du temps ou de grandes différences 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 votre niveau de travail. 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 se doit. Surveillez en continu 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 la rentabilité et l’optimisation des performances.

Optimiser les ressources de récupération d’urgence. L’optimisation des environnements de récupération d’urgence consiste à s’assurer que les ressources allouées à 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 à chaud, un environnement reçoit toute la charge tandis que l’autre environnement est inactif jusqu’à ce qu’il y ait un scénario de sinistre. Pour optimiser un environnement de récupération d’urgence, réfléchissez à la façon dont une approche à chaud (actif-actif), à froid (actif-désactivé) ou à redéploiement actif peut 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 principal et secondaire servent le trafic simultanément. Votre charge de travail peut équilibrer les charges entre ces environnements et répondre aux demandes en temps réel. La répartition de la charge entre deux environnements actifs vous permet d’utiliser des ressources moins chères, de réduire les goulots d’étranglement à point unique et d’utiliser au maximum les capacités. Cela peut entraîner une réduction des coûts en termes de gaspillage des ressources ou de mise au point de l’activité. Une approche à chaud peut exiger davantage d’investissement dans la synchronisation et le maintien de la parité entre les deux environnements.

  • Plans froid : 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 la nécessité d’un 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 de sauvegardes, d’images de machine virtuelle ou de 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 doivent peut-être être restaurées. Assurez-vous que le temps de récupération s’aligne sur les objectifs de délai 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 n’encourez des coûts que 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 :

  • Connaître les fonctionnalités des produits 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 des plateformes ou des services de votre charge de travail. Tenez compte du niveau spécifique que vous avez choisi et des fonctionnalités proposées par chaque niveau. Par exemple, si vous n’avez pas besoin de mise à l’échelle automatique ou de mise en réseau 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 configurations appropriées : vous payez peut-être pour plus de disponibilité ou de performances que nécessaire. Éliminez les garanties de disponibilité ou de performances dont la charge de travail n’a pas besoin.

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

  • Éliminer la redondance des outils : supprimez les outils dont vous n’avez pas besoin ou les outils qui fournissent la même fonction. Évaluez la redondance potentielle dans les outils que vous utilisez pour la création de logiciels, l’écriture de 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, case activée s’il existe déjà un outil dans votre charge de travail qui peut effectuer le travail. Éliminez la redondance des outils pour éviter le gaspillage 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 à s’assurer 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 des déchets est de les éviter en premier lieu. Utilisez des stratégies qui évitent les dépenses inutiles en résolvant les inefficacités à la racine, ce qui garantit qu’une charge de travail s’exécute de manière rentable dès le départ. Pour éviter le gaspillage, envisagez les stratégies suivantes :

  • Recherchez la cause racine avant de changer de solution : 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 basculez pas immédiatement vers un nouveau système. Tout d’abord, déterminez pourquoi c’est lent. Vous découvrirez peut-être que le vrai problème est autre chose, comme des requêtes de base de données incorrectes. Corrigez le vrai problème 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.

  • Documenter les modifications non standard : documentez toutes les modifications apportées à votre infrastructure ou aux 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 oublier de le réduire. Créez une liste des modifications non standard et utilisez-la comme rappel pour rétablir les modifications lorsqu’elles ne sont plus nécessaires.

  • Simplifiez les choses : 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.

Animation 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 non utilisées. En fonction des insights recueillis, 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 la plateforme : Azure Advisor fournit des recommandations de 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 à réduire. 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 des objectifs d’utilisation et d’efficacité. Il offre une gamme de recommandations, y compris des recommandations de coûts Azure Advisor. Il permet également d’identifier les ressources inactives et de gérer les machines virtuelles désallouées 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 les ressources orphelines dans une étendue définie. Vous pouvez utiliser Azure Automation pour arrêter des machines virtuelles pendant les 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, de sorte que vous n’avez pas à suravisionner 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 de l’optimisation des coûts

Reportez-vous à l’ensemble complet de recommandations.