Le pilier d'optimisation des coûts du Google Cloud Well-Architected Framework décrit les principes et les recommandations permettant d'optimiser le coût de vos charges de travail dans Google Cloud.
L'audience visée est la suivante :
- Les directeurs de la technologie, les responsables des technologies de l'information, les directeurs financiers et les autres dirigeants responsables de la gestion stratégique des coûts.
- Architectes, développeurs, administrateurs et opérateurs qui prennent des décisions ayant un impact sur les coûts à toutes les étapes du parcours cloud d'une organisation.
Les modèles de coûts pour les charges de travail sur site et dans le cloud sont très différents. Les coûts informatiques sur site incluent les dépenses d'investissement (CapEx) et les dépenses opérationnelles (OpEx). Les composants matériels et logiciels sur site sont acquis et les coûts d'acquisition sont amortissables sur la durée de vie des composants. Dans le cloud, les coûts de la plupart des ressources cloud sont traités comme des dépenses d'exploitation (OpEx), où les coûts sont encourus lorsque les ressources cloud sont consommées. Cette différence fondamentale souligne l'importance des principes fondamentaux suivants de l'optimisation des coûts.
Pour obtenir des principes et des recommandations d'optimisation des coûts spécifiques aux charges de travail d'IA et de ML, consultez Perspective de l'IA et du ML : optimisation des coûts dans le framework Well-Architected.
Principes de base
Les recommandations du pilier d'optimisation des coûts du framework Well-Architected sont associées aux principes fondamentaux suivants :
- Aligner les dépenses cloud sur la valeur commerciale : assurez-vous que vos ressources cloud génèrent une valeur commerciale mesurable en alignant les dépenses informatiques sur les objectifs commerciaux.
- Favorisez une culture de sensibilisation aux coûts : assurez-vous que les membres de votre organisation tiennent compte de l'impact de leurs décisions et activités sur les coûts, et qu'ils ont accès aux informations sur les coûts nécessaires pour prendre des décisions éclairées.
- Optimisez l'utilisation des ressources : ne provisionnez que les ressources dont vous avez besoin et ne payez que celles que vous consommez.
- Optimisez en continu : Surveillez en permanence votre utilisation et vos coûts des ressources cloud, et apportez les ajustements nécessaires de manière proactive pour optimiser vos dépenses. Cette approche consiste à identifier et à résoudre les inefficacités potentielles en termes de coûts avant qu'elles ne deviennent des problèmes importants.
Ces principes sont étroitement liés aux principes fondamentaux de cloud FinOps. Le FinOps s'adresse à toutes les organisations, quelle que soit leur taille ou leur maturité dans le cloud. En adoptant ces principes et en suivant les recommandations associées, vous pouvez contrôler et optimiser les coûts tout au long de votre parcours dans le cloud.
Contributeurs
Auteur : Nicolas Pintaux | Ingénieur client, spécialiste de la modernisation des applications
Autres contributeurs :
- Anuradha Bajpai | Architecte de solutions
- Daniel Lees | Architecte en sécurité cloud
- Eric Lam | Responsable de Google Cloud FinOps
- Fernando Rubbo | Architecte de solutions cloud
- Filipe Gracio, PhD | Ingénieur client
- Gary Harmson | Architecte principal
- Jose Andrade | Ingénieur client pour l'infrastructure d'entreprise
- Kent Hua | Solutions Manager
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer
- Radhika Kanakam | Senior Program Manager, Cloud GTM
- Samantha He | Rédactrice technique
- Steve McGhee | Reliability Advocate
- Sergei Lilichenko | Solutions Architect
- Wade Holmes | Directeur des solutions mondiales
- Zach Seils | Spécialiste en gestion des réseaux
Aligner les dépenses cloud sur la valeur commerciale
Ce principe du pilier d'optimisation des coûts du Google Cloud Well-Architected Framework fournit des recommandations pour aligner votre utilisation des ressources Google Cloud sur les objectifs commerciaux de votre organisation.
Présentation des principes
Pour gérer efficacement les coûts du cloud, vous devez maximiser la valeur commerciale fournie par les ressources cloud et minimiser le coût total de possession (TCO). Lorsque vous évaluez les options de ressources pour vos charges de travail cloud, tenez compte non seulement du coût du provisionnement et de l'utilisation des ressources, mais aussi de leur coût de gestion. Par exemple, les machines virtuelles (VM) sur Compute Engine peuvent être une option économique pour héberger des applications. Toutefois, si vous tenez compte des frais généraux liés à la maintenance, à l'application de correctifs et à la mise à l'échelle des VM, le CTP peut augmenter. En revanche, les services sans serveur tels que Cloud Run peuvent offrir une plus grande valeur commerciale. La réduction des frais généraux opérationnels permet à votre équipe de se concentrer sur les activités principales et contribue à accroître l'agilité.
Pour vous assurer que vos ressources cloud offrent une valeur optimale, évaluez les facteurs suivants :
- Coûts de provisionnement et d'utilisation : dépenses encourues lorsque vous achetez, provisionnez ou consommez des ressources.
- Coûts de gestion : dépenses récurrentes liées à l'exploitation et à la maintenance des ressources, y compris les tâches telles que l'application de correctifs, la surveillance et le scaling.
- Coûts indirects : coûts que vous pourriez encourir pour gérer des problèmes tels que les temps d'arrêt, la perte de données ou les failles de sécurité.
- Impact sur l'activité : avantages potentiels des ressources, comme l'augmentation des revenus, l'amélioration de la satisfaction client et la réduction du délai de mise sur le marché.
En alignant les dépenses cloud sur la valeur commerciale, vous bénéficiez des avantages suivants :
- Décisions axées sur la valeur : vos équipes sont encouragées à privilégier les solutions qui offrent la plus grande valeur commerciale et à tenir compte des implications financières à court et à long terme.
- Choix éclairé des ressources : vos équipes disposent des informations et des connaissances dont elles ont besoin pour évaluer la valeur commerciale et le coût total de possession (TCO) des différentes options de déploiement. Elles peuvent ainsi choisir des ressources rentables.
- Alignement des équipes : la collaboration transversale entre les équipes commerciales, financières et techniques permet de s'assurer que les décisions concernant le cloud sont alignées sur les objectifs généraux de l'organisation.
Recommandations
Pour aligner les dépenses cloud sur les objectifs commerciaux, tenez compte des recommandations suivantes.
Privilégiez les services gérés et les produits sans serveur
Dans la mesure du possible, choisissez des services gérés et des produits sans serveur pour réduire les frais généraux opérationnels et les coûts de maintenance. Ce choix permet à vos équipes de se concentrer sur leurs activités principales. Elles peuvent accélérer la diffusion de nouvelles fonctionnalités et contribuer à l'innovation et à la valeur.
Voici quelques exemples d'implémentation de cette recommandation :
- Pour exécuter des bases de données serveur PostgreSQL, MySQL ou Microsoft SQL Server, utilisez Cloud SQL au lieu de déployer ces bases de données sur des VM.
- Pour exécuter et gérer des clusters Kubernetes, utilisez Google Kubernetes Engine (GKE) Autopilot au lieu de déployer des conteneurs sur des VM.
- Pour vos besoins de traitement Apache Hadoop ou Apache Spark, utilisez Dataproc et Dataproc Serverless. La facturation à la seconde peut vous aider à réduire considérablement le coût total de possession par rapport aux lacs de données sur site.
Équilibrer la rentabilité et l'agilité commerciale
Contrôler les coûts et optimiser l'utilisation des ressources sont des objectifs importants. Toutefois, vous devez les équilibrer avec la nécessité de disposer d'une infrastructure flexible qui vous permette d'innover rapidement, de réagir rapidement aux changements et de générer de la valeur plus rapidement. Voici quelques exemples de la façon dont vous pouvez atteindre cet équilibre :
- Adoptez les métriques DORA pour mesurer les performances de livraison de logiciels. Des métriques telles que le taux d'échec des modifications (CFR), le temps de détection (TTD) et le temps de restauration (TTR) peuvent vous aider à identifier et à corriger les goulots d'étranglement dans vos processus de développement et de déploiement. En réduisant les temps d'arrêt et en accélérant la livraison, vous pouvez améliorer l'efficacité opérationnelle et l'agilité de votre entreprise.
- Suivez les pratiques d'ingénierie de la fiabilité des sites (SRE) pour améliorer la fiabilité opérationnelle. L'accent mis par l'équipe SRE sur l'automatisation, l'observabilité et la réponse aux incidents peut entraîner une réduction des temps d'arrêt, une diminution du temps de récupération et une amélioration de la satisfaction client. En minimisant les temps d'arrêt et en améliorant la fiabilité opérationnelle, vous pouvez éviter les pertes de revenus et le surprovisionnement des ressources en tant que filet de sécurité pour faire face aux pannes.
Activer l'optimisation en libre-service
Encouragez une culture de l'expérimentation et de l'exploration en fournissant à vos équipes des outils d'optimisation des coûts en libre-service, des outils d'observabilité et des plates-formes de gestion des ressources. Ils peuvent ainsi provisionner, gérer et optimiser leurs ressources cloud de manière autonome. Cette approche permet de favoriser le sentiment d'appropriation, d'accélérer l'innovation et de s'assurer que les équipes peuvent répondre rapidement aux besoins changeants tout en gardant à l'esprit l'efficacité des coûts.
Adopter et mettre en œuvre FinOps
Adoptez FinOps pour établir un environnement collaboratif où chacun est en mesure de prendre des décisions éclairées qui équilibrent les coûts et la valeur. Le FinOps favorise la responsabilité financière et promeut l'optimisation efficace des coûts dans le cloud.
Promouvoir un état d'esprit axé sur la valeur et le coût total de possession
Encouragez les membres de votre équipe à adopter une attitude holistique vis-à-vis des dépenses cloud, en mettant l'accent sur le coût total de possession et pas seulement sur les coûts initiaux. Utilisez des techniques telles que la cartographie de flux de valeur pour visualiser et analyser le flux de valeur dans votre processus de livraison de logiciels, et identifier les points à améliorer. Mettez en place des coûts unitaires pour vos applications et services afin de comprendre précisément les facteurs de coûts et d'identifier les opportunités d'optimisation des coûts. Pour en savoir plus, consultez Maximiser la valeur métier à l'aide de cloud FinOps.
Favoriser une culture de sensibilisation aux coûts
Ce principe du pilier d'optimisation des coûts du Google Cloud Well-Architected Framework fournit des recommandations pour sensibiliser votre organisation aux coûts et s'assurer que les membres de l'équipe disposent des informations sur les coûts dont ils ont besoin pour prendre des décisions éclairées.
En général, la responsabilité de la gestion des coûts peut être centralisée auprès de quelques partenaires sélectionnés et principalement axée sur les décisions initiales concernant l'architecture du projet. Toutefois, les membres de l'équipe, quel que soit leur rôle d'utilisateur cloud (analyste, architecte, développeur ou administrateur), peuvent contribuer à réduire le coût de vos ressources dansGoogle Cloud. En partageant correctement les données sur les coûts, vous pouvez permettre aux membres de l'équipe de prendre des décisions rentables tout au long de leurs processus de développement et de déploiement.
Présentation des principes
Les parties prenantes de différents rôles (propriétaires de produits, développeurs, ingénieurs de déploiement, administrateurs et analystes financiers) ont besoin de visibilité sur les données de coûts pertinentes et leur relation avec la valeur commerciale. Lors du provisionnement et de la gestion des ressources cloud, ils ont besoin des données suivantes :
- Coûts des ressources prévus : estimations des coûts au moment de la conception et du déploiement.
- Coûts d'utilisation des ressources en temps réel : données de coûts à jour pouvant être utilisées pour la surveillance continue et la validation du budget.
- Coûts mappés aux métriques d'activité : des insights sur l'impact des dépenses cloud sur les indicateurs clés de performance (KPI) pour permettre aux équipes d'identifier des stratégies rentables.
Tous les utilisateurs n'ont pas forcément besoin d'accéder aux données brutes sur les coûts. Toutefois, il est essentiel de sensibiliser tous les rôles aux coûts, car les décisions individuelles peuvent avoir une incidence sur les coûts.
En favorisant la visibilité des coûts et en veillant à ce que les pratiques de gestion des coûts soient clairement définies, vous vous assurez que chacun est conscient des implications financières de ses choix et contribue activement aux objectifs d'optimisation des coûts de l'organisation. Que ce soit par le biais d'une équipe FinOps centralisée ou d'un modèle distribué, l'établissement de la responsabilité est essentiel pour optimiser efficacement les coûts.
Recommandations
Pour sensibiliser vos équipes aux coûts et vous assurer que leurs membres disposent des informations nécessaires pour prendre des décisions éclairées, tenez compte des recommandations suivantes.
Fournir une visibilité sur les coûts à l'échelle de l'organisation
Pour obtenir une visibilité sur les coûts à l'échelle de l'organisation, les équipes responsables de la gestion des coûts peuvent prendre les mesures suivantes :
- Standardisez le calcul des coûts et la budgétisation : utilisez une méthode cohérente pour déterminer le coût complet des ressources cloud, après avoir pris en compte les remises et les coûts partagés. Établissez des processus budgétaires clairs et standardisés qui s'alignent sur les objectifs de votre organisation et permettent une gestion proactive des coûts.
- Utilisez des outils standardisés de gestion et de visibilité des coûts : utilisez les outils appropriés qui fournissent des insights en temps réel sur les dépenses cloud et génèrent des instantanés réguliers (par exemple, hebdomadaires) de l'évolution des coûts. Ces outils permettent de budgétiser et de prévoir de manière proactive, et d'identifier les opportunités d'optimisation. Il peut s'agir d'outils de fournisseur de services cloud (comme le tableau de bord de facturation Google Cloud), de solutions tierces ou de solutions Open Source comme la solution d'attribution des coûts.
- Mettez en place un système de répartition des coûts : attribuez une partie du budget cloud global à chaque équipe ou projet. Cette répartition permet aux équipes de se sentir responsables des dépenses liées au cloud et les encourage à prendre des décisions rentables dans les limites de leur budget alloué.
- Favorisez la transparence : encouragez les équipes à discuter des implications financières lors des processus de conception et de prise de décision. Créez un environnement sûr et favorable pour partager des idées et des préoccupations liées à l'optimisation des coûts. Certaines organisations utilisent des mécanismes de renforcement positif tels que des classements ou des programmes de reconnaissance. Si votre organisation impose des restrictions sur le partage des données de coût brutes en raison de problèmes commerciaux, explorez d'autres approches pour partager des informations et des insights sur les coûts. Par exemple, envisagez de partager des métriques agrégées (comme le coût total d'un environnement ou d'une fonctionnalité) ou des métriques relatives (comme le coût moyen par transaction ou par utilisateur).
Comprendre comment les ressources cloud sont facturées
Le prix des ressources Google Cloud peut varier selon les régions. Certaines ressources sont facturées mensuellement à un prix fixe, tandis que d'autres peuvent être facturées en fonction de l'utilisation. Pour comprendre comment les ressources Google Cloud sont facturées, utilisez le calculateur de prixGoogle Cloud et les informations tarifaires spécifiques aux produits (par exemple, les tarifs de Google Kubernetes Engine (GKE)).
Comprendre les options d'optimisation des coûts basées sur les ressources
Pour chaque type de ressource cloud que vous prévoyez d'utiliser, explorez des stratégies permettant d'optimiser l'utilisation et l'efficacité. Ces stratégies incluent le dimensionnement approprié, l'autoscaling et l'adoption de technologies sans serveur, le cas échéant. Voici quelques exemples d'options d'optimisation des coûts pour certains produits Google Cloud :
- Cloud Run vous permet de configurer des processeurs toujours alloués pour gérer des charges de trafic prévisibles à une fraction du prix de la méthode d'allocation par défaut (c'est-à-dire les processeurs alloués uniquement lors du traitement des requêtes).
- Vous pouvez acheter des engagements d'emplacements BigQuery pour réduire les coûts d'analyse des données.
- GKE fournit des métriques détaillées pour vous aider à comprendre les options d'optimisation des coûts.
- Découvrez comment les tarifs réseau peuvent affecter le coût des transferts de données et comment optimiser les coûts pour des services réseau spécifiques. Par exemple, vous pouvez réduire les coûts de transfert de données pour les équilibreurs de charge d'application externes en utilisant Cloud CDN ou Google Cloud Armor. Pour en savoir plus, consultez Méthodes pour réduire les coûts des équilibreurs de charge d'application externes.
Comprendre les options d'optimisation des coûts basées sur les remises
Familiarisez-vous avec les programmes de remise proposés par Google Cloud , par exemple :
- Remises sur engagement d'utilisation (CUD) : les CUD conviennent aux ressources dont l'utilisation est prévisible et stable. Les remises sur engagement d'utilisation vous permettent de bénéficier de réductions de prix importantes en échange de votre engagement à utiliser des ressources spécifiques pendant une période donnée (généralement un à trois ans). Vous pouvez également utiliser le renouvellement automatique des remises pour utilisation soutenue pour éviter de devoir souscrire manuellement des engagements lorsqu'ils expirent.
- Remises pour utilisation soutenue : pour certains produits Google Cloud comme Compute Engine et GKE, vous pouvez obtenir des crédits de remise automatiques après une utilisation continue des ressources au-delà de seuils de durée spécifiques.
- VM Spot : pour les charges de travail flexibles et tolérantes aux pannes, les VM Spot peuvent vous aider à réduire vos coûts Compute Engine. Le coût des VM Spot est nettement inférieur à celui des VM standards. Toutefois, Compute Engine peut arrêter ou supprimer les VM Spot de manière préemptive pour récupérer de la capacité. Les VM Spot conviennent aux tâches par lots pouvant tolérer la préemption et ne nécessitant pas de haute disponibilité.
- Remises pour des options de produit spécifiques : certains services gérés comme BigQuery proposent des remises lorsque vous achetez une capacité de traitement de requêtes dédiée ou avec autoscaling.
Évaluez et choisissez les options de remise qui correspondent aux caractéristiques de votre charge de travail et à vos habitudes d'utilisation.
Intégrer des estimations de coûts dans les plans d'architecture
Encouragez les équipes à développer des plans d'architecture incluant des estimations de coûts pour différentes options et configurations de déploiement. Cette pratique permet aux équipes de comparer les coûts de manière proactive et de prendre des décisions éclairées qui s'alignent sur les objectifs techniques et financiers.
Utilisez un ensemble cohérent et standard de libellés pour toutes vos ressources.
Vous pouvez utiliser des libellés pour suivre les coûts, et identifier et classer les ressources. Plus précisément, vous pouvez utiliser des libellés pour attribuer des coûts à différents projets, services ou centres de coûts. Définir une règle d'étiquetage formelle qui correspond aux besoins des principales parties prenantes de votre organisation permet de rendre les coûts plus visibles. Vous pouvez également utiliser des libellés pour filtrer les données sur les coûts et l'utilisation des ressources en fonction de l'audience cible.
Utilisez des outils d'automatisation tels que Terraform pour appliquer l'étiquetage à chaque ressource créée. Pour améliorer la visibilité et l'attribution des coûts, vous pouvez utiliser les outils fournis par la solution d'attribution des coûts Open Source.
Partager des rapports sur les coûts avec les membres de l'équipe
En partageant des rapports sur les coûts avec les membres de votre équipe, vous leur permettez de prendre en charge leurs dépenses cloud. Cette pratique permet de prendre des décisions rentables, d'optimiser les coûts en continu et d'améliorer systématiquement votre modèle de répartition des coûts.
Il existe plusieurs types de rapports sur les coûts, y compris les suivants :
- Rapports de coûts périodiques : des rapports réguliers informent les équipes de leurs dépenses cloud actuelles. Ces rapports peuvent être des exportations de feuilles de calcul. Les méthodes les plus efficaces incluent les e-mails automatisés et les tableaux de bord spécialisés. Pour que les rapports sur les coûts fournissent des informations pertinentes et exploitables sans submerger les destinataires avec des détails inutiles, ils doivent être adaptés aux audiences cibles. La configuration de rapports personnalisés est une étape fondamentale pour une visibilité et une gestion des coûts plus interactives et en temps réel.
- Notifications automatiques : vous pouvez configurer des rapports sur les coûts pour informer de manière proactive les parties prenantes concernées (par exemple, par e-mail ou par chat) des anomalies de coût, des seuils de budget ou des opportunités d'optimisation des coûts. En fournissant des informations en temps opportun directement aux personnes qui peuvent agir en conséquence, les alertes automatiques encouragent une action rapide et favorisent une approche proactive de l'optimisation des coûts.
- Google Cloud tableaux de bord : vous pouvez utiliser les tableaux de bord de facturation intégrés dans Google Cloud pour obtenir des insights sur la répartition des coûts et identifier les opportunités d'optimisation des coûts. Google Cloud propose également un hub FinOps pour vous aider à surveiller les économies et obtenir des recommandations d'optimisation des coûts. Le hub FinOps est optimisé par un moteur d'IA qui recommande des opportunités d'optimisation des coûts pour toutes les ressources actuellement déployées. Pour contrôler l'accès à ces recommandations, vous pouvez implémenter le contrôle des accès basé sur les rôles (RBAC).
- Tableaux de bord personnalisés : vous pouvez créer des tableaux de bord personnalisés en exportant les données de coût vers une base de données d'analyse, comme BigQuery. Utilisez un outil de visualisation tel que Looker Studio pour vous connecter à la base de données d'analyse afin de créer des rapports interactifs et d'activer contrôle des accès précis grâce à des autorisations basées sur les rôles.
- Rapports sur les coûts multicloud : pour les déploiements multicloud, vous avez besoin d'une vue unifiée des coûts pour tous les fournisseurs de services cloud afin de garantir une analyse, une budgétisation et une optimisation complètes. Utilisez des outils tels que BigQuery pour centraliser et analyser les données de coûts de plusieurs fournisseurs de services cloud, et Looker Studio pour créer des rapports interactifs spécifiques à votre équipe.
Optimiser l'utilisation des ressources
Ce principe du pilier d'optimisation des coûts du Google Cloud Well-Architected Framework fournit des recommandations pour vous aider à planifier et à provisionner des ressources correspondant aux exigences et aux modèles de consommation de vos charges de travail cloud.
Présentation des principes
Pour optimiser le coût de vos ressources cloud, vous devez bien comprendre les besoins en ressources et les modèles de charge de vos charges de travail. Cette compréhension constitue la base d'un modèle de coûts bien défini qui vous permet de prévoir le coût total de possession (TCO) et d'identifier les facteurs de coûts tout au long de votre parcours d'adoption du cloud. En analysant et en prévoyant de manière proactive les dépenses liées au cloud, vous pouvez faire des choix éclairés concernant le provisionnement, l'utilisation et l'optimisation des coûts des ressources. Cette approche vous permet de contrôler les dépenses cloud, d'éviter le surprovisionnement et de vous assurer que les ressources cloud sont adaptées aux besoins dynamiques de vos charges de travail et de vos environnements.
Recommandations
Pour optimiser efficacement l'utilisation des ressources cloud, tenez compte des recommandations suivantes.
Choisir des ressources spécifiques à l'environnement
Chaque environnement de déploiement a des exigences différentes en termes de disponibilité, de fiabilité et d'évolutivité. Par exemple, les développeurs peuvent préférer un environnement qui leur permet de déployer et d'exécuter rapidement des applications pour de courtes durées, mais qui n'a pas besoin de haute disponibilité. En revanche, un environnement de production a généralement besoin d'une haute disponibilité. Pour maximiser l'utilisation de vos ressources, définissez des exigences spécifiques à l'environnement en fonction des besoins de votre entreprise. Le tableau suivant liste des exemples d'exigences spécifiques à l'environnement.
Environnement | Conditions requises |
Production |
|
Développement et tests |
|
Autres environnements (comme la préparation et l'assurance qualité) |
|
Choisir des ressources spécifiques à la charge de travail
Chacune de vos charges de travail cloud peut avoir des exigences différentes en termes de disponibilité, d'évolutivité, de sécurité et de performances. Pour optimiser les coûts, vous devez aligner les choix de ressources sur les exigences spécifiques de chaque charge de travail. Par exemple, une application sans état peut ne pas nécessiter le même niveau de disponibilité ou de fiabilité qu'un backend avec état. Le tableau suivant présente d'autres exemples d'exigences spécifiques aux charges de travail.
Type de charge de travail | Exigences relatives aux charges de travail | Options de ressources |
Critique | Disponibilité continue, sécurité renforcée et hautes performances | Ressources premium et services gérés tels que Spanner pour la haute disponibilité et la cohérence globale des données. |
Non critique | Infrastructure économique et à autoscaling | Ressources avec des fonctionnalités de base et ressources éphémères telles que les VM Spot. |
En fonction des événements | Scaling dynamique en fonction de la demande actuelle de capacité et de performances | Services sans serveur tels que Cloud Run et Cloud Run Functions. |
Charges de travail expérimentales | Environnement flexible et économique pour le développement, l'itération, les tests et l'innovation rapides | Ressources avec des fonctionnalités de base, ressources éphémères comme les VM Spot et environnements de bac à sable avec des limites de dépenses définies. |
L'un des avantages du cloud est la possibilité de tirer parti de la puissance de calcul la plus appropriée pour une charge de travail donnée. Certaines charges de travail sont développées pour tirer parti des jeux d'instructions du processeur, tandis que d'autres ne sont pas conçues de cette manière. Effectuez des tests de performances et profilez vos charges de travail en conséquence. Catégorisez vos charges de travail et choisissez des ressources spécifiques à chaque charge de travail (par exemple, choisissez les familles de machines appropriées pour les VM Compute Engine). Cette pratique permet d'optimiser les coûts, de favoriser l'innovation et de maintenir le niveau de disponibilité et de performances dont vos charges de travail ont besoin.
Voici quelques exemples d'implémentation de cette recommandation :
- Pour les charges de travail critiques qui desservent des utilisateurs répartis dans le monde entier, envisagez d'utiliser Spanner. Spanner élimine le besoin de déploiements de bases de données complexes en assurant la fiabilité et la cohérence des données dans toutes les régions.
- Pour les charges de travail dont les niveaux de charge fluctuent, utilisez l'autoscaling pour éviter d'engendrer des coûts lorsque la charge est faible, tout en conservant une capacité suffisante pour répondre à la charge actuelle. Vous pouvez configurer l'autoscaling pour de nombreux servicesGoogle Cloud , y compris les VM Compute Engine, les clusters Google Kubernetes Engine (GKE) et Cloud Run. Lorsque vous configurez l'autoscaling, vous pouvez définir des limites de scaling maximales pour vous assurer que les coûts restent dans les budgets spécifiés.
Sélectionner les régions en fonction des exigences de coût
Pour vos charges de travail cloud, évaluez attentivement les régions Google Clouddisponibles et choisissez celles qui correspondent à vos objectifs de coûts. La région la moins chère n'est pas forcément celle qui offre la latence optimale ou qui répond à vos exigences en termes de développement durable. Prenez des décisions éclairées sur l'emplacement de déploiement de vos charges de travail pour atteindre l'équilibre souhaité. Vous pouvez utiliser le sélecteur de régionsGoogle Cloud pour comprendre les compromis entre le coût, la durabilité, la latence et d'autres facteurs.
Utiliser les options d'optimisation des coûts intégrées
Les produitsGoogle Cloud offrent des fonctionnalités intégrées qui vous aident à optimiser l'utilisation des ressources et à contrôler les coûts. Le tableau suivant liste des exemples de fonctionnalités d'optimisation des coûts que vous pouvez utiliser dans certains produits Google Cloud :
Produit | Fonction d'optimisation des coûts |
Compute Engine |
|
GKE |
|
Cloud Storage |
|
BigQuery |
|
Google Cloud VMware Engine |
|
Optimiser le partage des ressources
Pour maximiser l'utilisation des ressources cloud, vous pouvez déployer plusieurs applications ou services sur la même infrastructure, tout en respectant les exigences de sécurité et autres exigences des applications. Par exemple, dans les environnements de développement et de test, vous pouvez utiliser la même infrastructure cloud pour tester tous les composants d'une application. Pour l'environnement de production, vous pouvez déployer chaque composant sur un ensemble de ressources distinct afin de limiter l'étendue de l'impact en cas d'incident.
Voici quelques exemples d'implémentation de cette recommandation :
- Utilisez une seule instance Cloud SQL pour plusieurs environnements hors production.
- Permettez à plusieurs équipes de développement de partager un cluster GKE en utilisant la fonctionnalité de gestion des équipes de parc dans GKE Enterprise avec des contrôles d'accès appropriés.
- Utilisez GKE Autopilot pour profiter des techniques d'optimisation des coûts telles que le bin packing et l'autoscaling que GKE implémente par défaut.
- Pour les charges de travail d'IA et de ML, réduisez les coûts de GPU en utilisant des stratégies de partage de GPU telles que les GPU multi-instances, les GPU à temps partagé et NVIDIA MPS.
Développer et gérer des architectures de référence
Créez et gérez un dépôt d'architectures de référence adaptées aux exigences des différents environnements de déploiement et types de charges de travail. Pour simplifier la conception et l'implémentation de projets individuels, les blueprints peuvent être gérés de manière centralisée par une équipe telle qu'un centre d'excellence cloud (CCoE, Cloud Center of Excellence). Les équipes de projet peuvent choisir des plans adaptés en fonction de critères clairement définis, afin d'assurer la cohérence architecturale et l'adoption des bonnes pratiques. Pour les exigences propres à un projet, l'équipe projet et l'équipe d'architecture centrale doivent collaborer pour concevoir de nouvelles architectures de référence. Vous pouvez partager les architectures de référence dans toute l'organisation pour favoriser le partage des connaissances et étendre le dépôt des solutions disponibles. Cette approche garantit la cohérence, accélère le développement, simplifie la prise de décision et favorise l'utilisation efficace des ressources.
Consultez les architectures de référence fournies par Google pour différents cas d'utilisation et technologies. Ces architectures de référence intègrent les bonnes pratiques pour la sélection, le dimensionnement, la configuration et le déploiement des ressources. En utilisant ces architectures de référence, vous pouvez accélérer votre processus de développement et réaliser des économies dès le début.
Appliquer la discipline des coûts à l'aide de règles d'administration'administration
Envisagez d'utiliser des règles d'administration pour limiter les emplacements Google Cloud et les produits disponibles que les membres de l'équipe peuvent utiliser. Ces règles permettent de s'assurer que les équipes respectent les solutions économiques et provisionnent les ressources dans des emplacements qui correspondent à vos objectifs d'optimisation des coûts.
Estimer des budgets réalistes et définir des limites financières
Élaborez des budgets détaillés pour chaque projet, charge de travail et environnement de déploiement. Assurez-vous que les budgets couvrent tous les aspects des opérations cloud, y compris les coûts d'infrastructure, les licences logicielles, le personnel et la croissance prévue. Pour éviter les dépenses excessives et vous assurer que vos objectifs financiers sont atteints, définissez des limites ou des seuils de dépenses clairs pour les projets, les services ou les ressources spécifiques. Surveillez régulièrement vos dépenses cloud par rapport à ces limites. Vous pouvez utiliser les alertes proactives sur les quotas pour identifier rapidement les dépassements de coûts potentiels et prendre des mesures correctives à temps.
En plus de définir des budgets, vous pouvez utiliser des quotas et des limites pour faire respecter la discipline budgétaire et éviter les pics de dépenses imprévus. Vous pouvez contrôler précisément la consommation de ressources en définissant des quotas à différents niveaux, y compris pour les projets, les services et même des types de ressources spécifiques.
Voici quelques exemples d'implémentation de cette recommandation :
- Quotas au niveau du projet : définissez des limites de dépenses ou des quotas de ressources au niveau du projet pour établir des limites financières globales et contrôler la consommation de ressources dans tous les services du projet.
- Quotas spécifiques aux services : configurez des quotas pour des services Google Cloudspécifiques tels que Compute Engine ou BigQuery afin de limiter le nombre d'instances, de processeurs ou la capacité de stockage pouvant être provisionnés.
- Quotas spécifiques aux types de ressources : appliquez des quotas à des types de ressources individuels tels que les VM Compute Engine, les buckets Cloud Storage, les instances Cloud Run ou les nœuds GKE pour limiter leur utilisation et éviter les dépassements de coûts inattendus.
- Alertes de quota : recevez des notifications lorsque votre utilisation du quota (au niveau du projet) atteint un pourcentage de la valeur maximale.
En utilisant des quotas et des limites en parallèle avec la budgétisation et la surveillance, vous pouvez créer une approche proactive et multicouche pour contrôler les coûts. Cette approche permet de s'assurer que vos dépenses cloud restent dans les limites définies et qu'elles sont alignées sur vos objectifs commerciaux. N'oubliez pas que ces contrôles des coûts ne sont pas permanents ni rigides. Pour vous assurer que les contrôles des coûts restent conformes aux normes actuelles du secteur et reflètent l'évolution des besoins de votre entreprise, vous devez les examiner régulièrement et les ajuster pour inclure les nouvelles technologies et les bonnes pratiques.
Optimiser en continu
Ce principe du pilier d'optimisation des coûts du Google Cloud framework Well-Architected fournit des recommandations pour vous aider à optimiser le coût de vos déploiements cloud en fonction d'objectifs commerciaux en constante évolution.
À mesure que votre entreprise se développe et évolue, vos charges de travail cloud doivent s'adapter aux changements des exigences en termes de ressources et des modèles d'utilisation. Pour tirer le meilleur parti de vos dépenses cloud, vous devez maintenir votre rentabilité tout en continuant à soutenir vos objectifs commerciaux. Cela nécessite une approche proactive et adaptative axée sur l'amélioration et l'optimisation continues.
Présentation des principes
Pour optimiser les coûts en continu, vous devez surveiller et analyser de manière proactive votre environnement cloud, et apporter les ajustements nécessaires pour répondre aux exigences actuelles. Concentrez vos efforts de surveillance sur les indicateurs clés de performance (KPI) qui affectent directement l'expérience de vos utilisateurs finaux, qui sont alignés sur vos objectifs commerciaux et qui fournissent des insights pour une amélioration continue. Cette approche vous permet d'identifier et de corriger les inefficacités, de vous adapter aux besoins changeants et d'aligner en permanence les dépenses cloud sur les objectifs commerciaux stratégiques. Pour équilibrer l'observabilité complète et la rentabilité, comprenez les coûts et les avantages de la surveillance de l'utilisation des ressources, et utilisez des stratégies appropriées d'amélioration et d'optimisation des processus.
Recommandations
Pour surveiller efficacement votre environnement Google Cloud et optimiser les coûts en continu, tenez compte des recommandations suivantes.
Se concentrer sur les métriques pertinentes pour votre activité
Pour surveiller efficacement votre activité, vous devez commencer par identifier les métriques les plus importantes pour votre entreprise et vos clients. Ces métriques incluent les éléments suivants :
- Métriques d'expérience utilisateur : les métriques de latence, de taux d'erreur, de débit et de satisfaction client sont utiles pour comprendre l'expérience de vos utilisateurs finaux lorsqu'ils utilisent vos applications.
- Métriques de résultats commerciaux : les revenus, la croissance du nombre de clients et l'engagement peuvent être corrélés à l'utilisation des ressources pour identifier les opportunités d'optimisation des coûts.
- Métriques DevOps Research & Assessment (DORA) : les métriques telles que la fréquence de déploiement, le délai de livraison des modifications, le taux d'échec des modifications et le délai de restauration fournissent des informations sur l'efficacité et la fiabilité de votre processus de livraison de logiciels. En améliorant ces métriques, vous pouvez augmenter la productivité, réduire les temps d'arrêt et optimiser les coûts.
- Métriques d'ingénierie de la fiabilité des sites (SRE) : les marges d'erreur aident les équipes à quantifier et à gérer le niveau acceptable d'interruption de service. En établissant des attentes claires en matière de fiabilité, les marges d'erreur permettent aux équipes d'innover et de déployer des modifications plus sereinement, en connaissant leur marge de sécurité. Cette approche proactive favorise un équilibre entre innovation et stabilité, ce qui permet d'éviter les coûts opérationnels excessifs associés aux pannes majeures ou aux temps d'arrêt prolongés.
Utiliser l'observabilité pour optimiser les ressources
Vous trouverez ci-dessous des recommandations pour utiliser l'observabilité afin d'identifier les goulots d'étranglement et les ressources sous-utilisées dans vos déploiements cloud :
- Surveillez l'utilisation des ressources : utilisez les métriques d'utilisation des ressources pour identifier les ressourcesGoogle Cloud sous-utilisées. Par exemple, utilisez des métriques telles que l'utilisation du processeur et de la mémoire pour identifier les ressources de VM inactives. Pour Google Kubernetes Engine (GKE), vous pouvez afficher une répartition détaillée des coûts et des métriques d'optimisation liées aux coûts. Pour Google Cloud VMware Engine, examinez l'utilisation des ressources afin d'optimiser les remises pour utilisation soutenue, la consommation de stockage et le dimensionnement approprié d'ESXi.
- Utiliser les recommandations cloud : Active Assist est une gamme d'outils intelligents qui vous aident à optimiser vos opérations cloud. Ces outils fournissent des recommandations exploitables pour réduire les coûts, améliorer les performances, renforcer la sécurité et même prendre des décisions axées sur la durabilité. Par exemple, les insights sur le rightsizing des VM peuvent vous aider à optimiser l'allocation des ressources et à éviter des dépenses inutiles.
- Corrélez l'utilisation des ressources avec les performances : analysez la relation entre l'utilisation des ressources et les performances de l'application pour déterminer si vous pouvez passer à des ressources moins coûteuses sans affecter l'expérience utilisateur.
Équilibrer les besoins de dépannage et les coûts
Des données d'observabilité détaillées peuvent vous aider à diagnostiquer et à résoudre les problèmes. Toutefois, le stockage d'une quantité excessive de données d'observabilité ou l'exportation de données inutiles vers des outils de surveillance externes peuvent entraîner des coûts inutiles. Pour résoudre efficacement les problèmes, tenez compte des recommandations suivantes :
- Collectez suffisamment de données pour le dépannage : assurez-vous que votre solution de surveillance capture suffisamment de données pour diagnostiquer et résoudre efficacement les problèmes lorsqu'ils surviennent. Ces données peuvent inclure des journaux, des traces et des métriques à différents niveaux de précision.
- Utilisez l'échantillonnage et l'agrégation : équilibrez le besoin de données détaillées avec les considérations de coûts en utilisant des techniques d'échantillonnage et d'agrégation. Cette approche vous permet de collecter des données représentatives sans engendrer de coûts de stockage excessifs.
- Comprendre les modèles de tarification de vos outils et services de surveillance : évaluez différentes solutions de surveillance et choisissez celles qui correspondent aux besoins spécifiques, au budget et aux modèles d'utilisation de votre projet. Tenez compte de facteurs tels que le volume de données, les exigences de conservation et les fonctionnalités requises lorsque vous faites votre choix.
- Examinez régulièrement votre configuration de surveillance : évitez de collecter des données excessives en supprimant les métriques ou les journaux inutiles.
Adaptez la collecte de données aux rôles et définissez des règles de conservation spécifiques aux rôles
Tenez compte des besoins spécifiques en données des différents rôles. Par exemple, les développeurs peuvent avoir principalement besoin d'accéder aux traces et aux journaux au niveau de l'application, tandis que les administrateurs informatiques peuvent se concentrer sur les journaux système et les métriques d'infrastructure. En personnalisant la collecte de données, vous pouvez réduire les coûts de stockage inutiles et éviter de submerger les utilisateurs avec des informations non pertinentes.
Vous pouvez également définir des règles de conservation en fonction des besoins de chaque rôle et des exigences réglementaires. Par exemple, les développeurs peuvent avoir besoin d'accéder à des journaux détaillés pendant une période plus courte, tandis que les analystes financiers peuvent avoir besoin de données à plus long terme.
Prenez en compte les exigences réglementaires et de conformité
Dans certains secteurs, les exigences réglementaires imposent la conservation des données. Pour éviter les risques juridiques et financiers, vous devez vous assurer que vos pratiques de surveillance et de conservation des données vous aident à respecter les réglementations applicables. Parallèlement, vous devez maintenir votre rentabilité. Tenez compte des recommandations suivantes :
- Déterminez les exigences spécifiques de conservation des données pour votre secteur ou votre région, et assurez-vous que votre stratégie de surveillance répond à ces exigences.
- Mettez en place des mécanismes appropriés d'archivage et de récupération des données pour répondre aux besoins d'audit et de conformité tout en minimisant les coûts de stockage.
Implémenter des alertes intelligentes
Les alertes permettent de détecter et de résoudre les problèmes rapidement. Toutefois, il est nécessaire de trouver un équilibre entre une approche qui vous tient informé et une autre qui vous submerge de notifications. En concevant des systèmes d'alerte intelligents, vous pouvez prioriser les problèmes critiques qui ont un impact plus important sur votre activité. Tenez compte des recommandations suivantes :
- Hiérarchisez les problèmes qui affectent les clients : concevez des alertes qui se déclenchent rapidement pour les problèmes qui affectent directement l'expérience client, comme les pannes de site Web, les temps de réponse lents ou les échecs de transaction.
- Ajustez les seuils pour les problèmes temporaires : utilisez des seuils et des mécanismes de délai appropriés pour éviter les alertes inutiles en cas de problèmes temporaires ou de problèmes de système à autoréparation qui n'affectent pas les clients.
- Personnaliser la gravité des alertes : assurez-vous que les problèmes les plus urgents reçoivent une attention immédiate en distinguant les alertes critiques de celles qui ne le sont pas.
- Utilisez les canaux de notification à bon escient : choisissez les canaux appropriés pour les notifications d'alerte (e-mail, SMS ou bipeur) en fonction de la gravité et de l'urgence des alertes.