Optimiser l'utilisation des ressources

Last reviewed 2024-09-25 UTC

Ce principe du pilier d'optimisation des coûts du framework d'architecture Google Cloud fournit des recommandations pour vous aider à planifier et à provisionner des ressources en fonction des exigences et des tendances de consommation de vos charges de travail cloud.

Présentation des principes

Pour optimiser les coûts de vos ressources cloud, vous devez comprendre en détail 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ût tout au long de votre parcours d'adoption du cloud. En analysant et en prévoyant de manière proactive les dépenses cloud, vous pouvez prendre des décisions éclairées 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 alignées sur les 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 pendant de courtes durées, mais qui n'a pas besoin d'une haute disponibilité. En revanche, un environnement de production nécessite généralement une haute disponibilité. Pour maximiser l'utilisation de vos ressources, définissez des exigences spécifiques à l'environnement en fonction de vos besoins métier. Le tableau suivant présente 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é à pointes
  • Infrastructure éphémère lorsque la persistance des données n'est pas nécessaire
Autres environnements (comme les environnements de préproduction et de contrôle 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 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é ni de fiabilité qu'un backend avec état. Le tableau suivant présente d'autres exemples d'exigences spécifiques à la charge de travail.

Type de charge de travail Exigences relatives aux charges de travail Options de ressources
Mission Critical Disponibilité continue, sécurité robuste et hautes performances Ressources premium et services gérés tels que Spanner pour une haute disponibilité et une cohérence globale des données
Non critique Infrastructure économique et évolutive Ressources avec des fonctionnalités de base et ressources éphémères telles que les VM Spot.
En fonction des événements Évolutivité 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 un développement, une itération, des tests et une innovation rapides Ressources avec des fonctionnalités de base, ressources éphémères telles que les VM Spot et environnements de bac à sable avec des limites de dépenses définies.

L'un des avantages du cloud est de pouvoir exploiter la puissance de calcul la plus adaptée à 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 benchmarks et des profils de vos charges de travail en conséquence. Catégoriser vos charges de travail et choisir des ressources spécifiques à la charge de travail (par exemple, choisir 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.

Vous trouverez ci-dessous des exemples de mise en œuvre de cette recommandation:

  • Pour les charges de travail critiques qui servent 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 garantissant 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 vous assurer de ne pas encourir de 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 services Google Cloud, y compris les VM Compute Engine, les clusters Google Kubernetes Engine (GKE) et Cloud Run. Lorsque vous configurez l'autoscaling, vous pouvez configurer 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 Cloud disponibles et choisissez celles qui correspondent à vos objectifs de coût. La région la moins chère n'offre peut-être pas une latence optimale ou ne répond pas à vos exigences de durabilité. Prenez des décisions éclairées sur l'emplacement où déployer vos charges de travail pour obtenir l'équilibre souhaité. Vous pouvez utiliser l'outil de sélection de région Google 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 produits Google Cloud fournissent des fonctionnalités intégrées pour vous aider à optimiser l'utilisation des ressources et à contrôler les coûts. Le tableau suivant présente des exemples de fonctionnalités d'optimisation des coûts que vous pouvez utiliser dans certains produits Google Cloud:

Produit Fonctionnalité 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 suspendant ou arrêtant les VM 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
  • Transférez automatiquement les données vers des classes de stockage moins coûteuses en fonction de leur ancienneté 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 Autoclass.
BigQuery
  • Réduisez les coûts de traitement des requêtes pour les charges de travail à l'état stable à l'aide de la facturation basée sur la capacité.
  • Optimisez les performances et les coûts des requêtes à l'aide de techniques de partitionnement et de clustering.
Google Cloud VMware Engine
  • Réduisez les coûts VMware en utilisant des stratégies d'optimisation des coûts telles que les remises sur engagement d'utilisation, l'optimisation de la consommation de stockage et le dimensionnement approprié 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 répondant aux exigences de sécurité et autres 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.

Vous trouverez ci-dessous des exemples de mise en œuvre 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 à l'aide de la fonctionnalité de gestion d'équipe 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 liés aux GPU à l'aide de 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 de différents environnements de déploiement et types de charges de travail. Pour simplifier le processus de conception et d'implémentation de projets individuels, les modèles peuvent être gérés de manière centralisée par une équipe telle qu'un centre d'excellence cloud (CCoE). Les équipes de projet peuvent choisir des modèles adaptés en fonction de critères clairement définis, afin de garantir la cohérence architecturale et l'adoption des bonnes pratiques. Pour les exigences propres à un projet, l'équipe de 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 l'ensemble de l'organisation pour favoriser le partage des connaissances et développer le référentiel de solutions disponibles. Cette approche garantit la cohérence, accélère le développement, simplifie la prise de décision et favorise une 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 de sélection, de dimensionnement, de configuration et de 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 une discipline budgétaire à l'aide de règles d'administration

Envisagez d'utiliser des règles d'administration pour limiter les emplacements et les produits Google Cloud disponibles que les membres de l'équipe peuvent utiliser. Ces règles permettent de s'assurer que les équipes respectent des solutions rentables et provisionnent des ressources dans des emplacements conformes à 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 de respecter vos objectifs financiers, 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 de quota proactives pour identifier rapidement les dépassements de budget potentiels et prendre les mesures correctives nécessaires.

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 inattendus. 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 les types de ressources spécifiques.

Vous trouverez ci-dessous des exemples de mise en œuvre 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 au service: configurez des quotas pour des services Google Cloud spécifiques, tels que Compute Engine ou BigQuery, afin de limiter le nombre d'instances, de processeurs ou de capacités de stockage pouvant être provisionnés.
  • Quotas spécifiques au type de ressource: 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 en limiter l'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 plus de la budgétisation et de la surveillance, vous pouvez créer une approche proactive et multicouche du contrôle des coûts. Cette approche permet de s'assurer que vos dépenses cloud restent dans des limites définies et qu'elles correspondent à 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 du secteur et reflètent les besoins en constante évolution de votre entreprise, vous devez les examiner régulièrement et les ajuster pour inclure les nouvelles technologies et les bonnes pratiques.