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 |
|
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 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 |
|
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 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.