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 liées au 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 d'une 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
  • Haute disponibilité
  • Prévisibilité des performances
  • Stabilité opérationnelle
  • Sécurité avec des ressources robustes
Développement et tests
  • Rentabilité
  • Infrastructure flexible avec capacité extensible
  • Infrastructure éphémère lorsque la persistance des données n'est pas nécessaire
Autres environnements (comme la préparation et l'assurance qualité)
  • Allocation de ressources personnalisée en fonction des exigences spécifiques à l'environnement

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 vos 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, sélectionnez 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 l'outil de sélection de régionGoogle 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
  • Ajoutez ou supprimez automatiquement des VM en fonction de la charge actuelle à l'aide de l'autoscaling.
  • Évitez le surprovisionnement en créant et en utilisant des types de machines personnalisés.
  • qui répondent aux exigences de votre charge de travail.
  • Pour les charges de travail non critiques ou tolérantes aux pannes, réduisez les coûts en utilisant des VM Spot.
  • Dans les environnements de développement, réduisez les coûts en limitant la durée d'exécution des VM ou en les suspendant ou en les arrêtant lorsque vous n'en avez pas besoin.
GKE
  • Ajustez automatiquement la taille des clusters GKE en fonction de la charge actuelle à l'aide de l'autoscaler de cluster.
  • Créez et gérez automatiquement des pools de nœuds en fonction des exigences de la charge de travail, et assurez une utilisation optimale des ressources à l'aide du provisionnement automatique des nœuds.
Cloud Storage
  • Passez automatiquement les données à des classes de stockage moins coûteuses en fonction de leur âge ou de leurs modèles d'accès à l'aide de la gestion du cycle de vie des objets.
  • Déplacez dynamiquement les données vers la classe de stockage la plus rentable en fonction des modèles d'utilisation à l'aide de la classe automatique.
BigQuery
  • Réduisez les coûts de traitement des requêtes pour les charges de travail en régime permanent en utilisant la tarification basée sur la capacité.
  • Optimisez les performances et les coûts des requêtes en utilisant des techniques de partitionnement et de clustering.
Google Cloud VMware Engine
  • Réduisez vos coûts VMware en utilisant des stratégies d'optimisation des coûts, comme les remises sur engagement d'utilisation, l'optimisation de la consommation de stockage et le dimensionnement des clusters ESXi.

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 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 liés aux 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 le processus de conception et d'implémentation des 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 les plans approprié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épart.

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 produits et les emplacements Google Cloud 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 appliquer une 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.