Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Google Cloud Platform : bonnes pratiques pour le labeling des ressources

By Sayle MatthewsNov 13, 202310 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Au fait, c'est quoi un label ?

La documentation GCP définit les labels comme un moyen léger de regrouper des ressources liées ou associées entre elles.

Cette définition résume bien ce qu'ils sont, mais une meilleure question serait : à quoi servent-ils ?

L'objectif principal d'apposer un label sur une ressource est de pouvoir suivre facilement le coût d'une ressource spécifique dans vos données de facturation. Par défaut, chaque service apparaît dans votre facturation regroupé en une seule ligne.

Par exemple, une ligne de facture pour l'exécution d'une instance Compute Engine pourrait ressembler à ceci : Compute Engine Small Instance with 1 VCPU running in Americas: 15342.56 Hours.

Cela paraît simple à première vue, jusqu'à ce qu'on réalise qu'un mois compte en moyenne 730 heures. Plusieurs instances ont donc tourné durant ce mois, mais combien ? Et lesquelles ont tourné, pendant combien de temps, et dans quel projet ? Le rapport de facturation dans la console GCP n'est guère plus parlant.

Ces données sont presque impossibles à extrapoler à partir des chiffres fournis par Google dans la facture et la console. C'est là que les labels entrent en jeu.

Lorsque vous utilisez des labels dans votre projet, votre rapport de facturation se présente ainsi :

Rapport de facturation GCP (certains noms ont été masqués)

Notez la ventilation par labels qui rend la lecture beaucoup plus simple. Je reviendrai plus loin dans cet article sur la partie iris_name des labels.

Labels et tags

Une première distinction s'impose : la différence entre les labels et les tags dans GCP.

Jusqu'à récemment, ils entretenaient une relation quasi 1-pour-1, mais ce sont désormais des entités distinctes au fil de l'évolution de GCP. La différence : les tags servent à regrouper des ressources pour leur appliquer une politique réseau, tandis qu'un label regroupe des ressources à des fins de facturation et de recherche (et probablement d'autres usages à l'avenir).

Par exemple, si vous créez une règle de firewall et y ajoutez un target tag, elle s'appliquera à toute ressource portant ce même network tag, comme des instances Compute Engine. La principale différence que la plupart remarqueront concerne la terminologie : GCP emploie désormais le mot tags pour désigner les network tags (ou target tags dans les règles de firewall) et labels pour les labels, alors qu'auparavant les deux étaient indistinctement appelés tags.

L'adoption de cette nouvelle terminologie prendra du temps. Lorsque vous entendez parler de quelque chose qui est tagué dans GCP, vérifiez bien s'il s'agit d'un tag ou d'un label. Après des années à parler de tagging, ce sera une habitude difficile à perdre quand on parle en réalité de labels.

DoiT Console et Cloud Analytics

L'un des secrets les mieux gardés pour gérer la facturation et les coûts sur GCP est la section Cloud Analytics de la DoiT Console, un outil de découverte et d'optimisation des coûts proposé au public par DoiT International.

Grâce aux rapports, vous obtenez instantanément des informations sur votre facturation Google Cloud Platform, vous gérez vos budgets, vous configurez l'allocation des coûts, vous recevez des alertes sur les budgets et les anomalies, et vous explorez différentes stratégies d'optimisation.

En utilisant les rapports, vous bénéficiez d'une visibilité encore plus grande sur vos coûts Google Cloud, avec une série d'améliorations :

  • Jusqu'à 36 mois d'historique (contre 3 à 6 mois)
  • Chargement et actualisation des rapports 100 fois plus rapides
  • Nombre illimité de labels utilisateurs et système (au lieu de l'un ou l'autre)
  • Prise en charge des rapports sur les crédits tels que les SUDs ou CUDs
  • Rapports intégrés
  • Beaucoup plus de types de graphiques
  • Rapports adaptés au mobile
  • Mises à jour régulières des rapports par e-mail ou Slack

Note : certaines de ces images peuvent être obsolètes en raison du grand nombre de nouvelles fonctionnalités ajoutées à la DoiT Console depuis la publication initiale de cet article.

Dès le départ, nous fournissons un ensemble de rapports prédéfinis utilisables immédiatement. Ces rapports sont partagés à l'échelle de l'organisation, ce qui permet à vos équipes et à vous-même de rester alignés sans effort.

Les Cloud Reports reprennent le principe d'un tableau croisé dynamique pour vous permettre de créer des rapports hautement configurables selon n'importe quelle dimension ou mesure :

Configurez les Cloud Reports en faisant simplement glisser des dimensions et mesures

Si vous appliquez des labels à vos ressources ou utilisez Iris3 pour les générer automatiquement, vous pouvez extraire des informations précieuses de vos données de facturation, comme le coût Google Cloud Storage par bucket :

Coût GCS par bucket

L'outil propose des métriques horaires de vos données de facturation, ce qui simplifie le repérage des problèmes ou des pics liés à un déploiement récent ou à un changement de configuration.

Les données horaires permettent de suivre facilement les changements dans votre environnement cloud

Si votre équipe et vous souhaitez accéder à la DoiT Console (et à de nombreux autres outils) sans coût supplémentaire, contactez-nous pour en savoir plus sur la façon de devenir client de DoiT International, sans frais additionnels.

Bonnes pratiques pour les labels

Voici un ensemble de bonnes pratiques compilées par l'équipe Customer Reliability Engineering de DoiT International sur l'utilisation des labels dans GCP.

Avant de configurer des labels, il convient de connaître leurs restrictions et les ressources auxquelles ils peuvent s'appliquer. Je vous recommande de lire d'abord la documentation de Google sur le sujet, d'autant qu'elle est susceptible d'évoluer après la rédaction de cet article.

Tous les produits ne prennent pas encore en charge les labels, mais beaucoup le font sans figurer dans la documentation. Le meilleur moyen de savoir si un service les accepte est simplement de consulter ses pages de création et d'édition d'instance.

Utilisez toujours des labels

Il arrive qu'on oublie d'apposer un label lors de la création d'une instance Compute Engine ou d'une image dérivée, jusqu'à ce que la comptabilité revienne s'enquérir d'une dépense sur la facture.

Pour éviter cela, intégrez à votre workflow l'application systématique d'un label lors de la création d'une ressource, et veillez à ce que ce soit également le cas pour toute création automatisée.

Utilisez un outil de labeling automatisé

Dans la continuité du conseil précédent, Iris3 est un outil open-source récemment réécrit par nos équipes chez DoiT pour labeliser automatiquement les ressources lors de leur création. Ainsi, aucun label ne manque jamais à l'appel.

Iris3 peut être personnalisé pour prendre en charge des types de ressources supplémentaires si celui que vous souhaitez utiliser n'est pas encore supporté.

Labelisez tout ce dont vous avez besoin

Les labels sont des paires clé-valeur ; profitez-en pour y inclure autant d'informations que nécessaire.

Voici quelques exemples de labels à utiliser :

  1. Noms d'environnements

    Indiquer qu'une ressource appartient à un environnement de développement, staging, test, production, etc. est toujours un choix sûr : rechercher plus tard toutes les ressources de production pour un rapport de facturation devient nettement plus simple.

  2. Rôle

    Si vous avez un ensemble de ressources Compute Engine qui font office de serveurs web, un autre dans un cluster GKE et un autre encore pour un serveur de base de données, labelisez-les en conséquence.

  3. Nom d'application Utiliser le nom d'application comme label facilite le regroupement des ressources par projet métier ou application, et permet d'analyser plus aisément les coûts par application.

  4. Nom de région Si votre application ou projet s'étend sur plusieurs régions, ajouter la valeur de région aidera à les trier par la suite. Il peut s'agir du nom de région GCP, d'une région logique définie dans votre application, ou d'un label pour chacune.

  5. Créateur de la ressource Inscrire le nom du créateur dans un label aide à retrouver qui a créé quelle ressource sans avoir à fouiller dans des logs d'audit qui n'ont pas forcément été conservés.

  6. Propriétaire ou mainteneur Labeliser une ressource avec le nom du propriétaire ou du mainteneur permet de savoir qui contacter en cas de problème ou de question. Exemple courant : l'équipe qui possède ou maintient la ressource.

  7. Code de coût, de facturation ou de budget Certaines organisations utilisent des codes pour différentes dépenses ou budgets. Les inclure dans le label facilite le suivi par les administrateurs facturation ou les auditeurs.

  8. Département

    Si la ressource appartient à un département donné, l'ajouter en label simplifie la traçabilité par département.

  9. Nom de bucket (Google Cloud Storage uniquement) Si vous avez déjà consulté un rapport de facturation ou une facture GCP, vous savez que tous les buckets de stockage sont regroupés sur une seule ligne. C'est un cauchemar lorsqu'on veut connaître le coût de chacun ; ajouter le nom du bucket en label permet de le ventiler en lignes distinctes.

  10. Nom de ressource associée Si une ressource est liée à une autre, il est judicieux d'ajouter un label nommant cette ressource. Exemple : un disque persistant lié à une instance Compute Engine ou à un cluster Dataproc. Une IP externe rattachée à un managed instance group Compute Engine en est un autre excellent exemple.

  11. Classification des données Cas d'usage large, mais si vous disposez de données qui doivent être marquées dans un bucket ou un dataset BigQuery, ajoutez un label pour le signaler. Exemples : données soumises à une conformité réglementaire (HIPAA, PCI) ou données chiffrées. Mieux vaut labeliser ces ressources : ainsi, lorsqu'un dirigeant demande combien coûte mensuellement le stockage des PHI (protected health information), la réponse est immédiate.

  12. État de la ressource

    Si une ressource est active, en attente de suppression, désactivée, etc., un label correspondant facilite l'identification du montant facturé pour les ressources dans un état donné.

  13. Nom de dossier ou d'organisation Si vous utilisez des dossiers ou différentes unités organisationnelles dans votre structure, créez-leur un label pour pouvoir consulter ultérieurement le coût de chaque organisation ou dossier.

    Pour une excellente discussion sur ce sujet et la structure organisationnelle pour GCP, je vous invite à lire cet article remarquable de mon collègue .

Standardisez les labels

Définissez un ensemble standard de labels à appliquer à chaque ressource et tenez-vous-y. Il peut être pertinent de prévoir un jeu standard par type de ressource. Cela facilite considérablement la recherche de ressources ainsi que le suivi de groupes de ressources dans un rapport de facturation.

Là encore, utiliser Iris3 pour automatiser cette tâche permet de maintenir bien plus aisément le standard.

Recherchez des ressources à l'aide de filtres et de labels

Dans toute la console, dans les barres de filtres, si vous commencez à taper le mot labels, une sélection apparaît dans une liste déroulante. Une fois sélectionné, tapez le nom du label après les deux-points et l'autocomplétion vous permettra de filtrer par ce label précis.

Notez qu'au moment de la rédaction de cet article, cette fonctionnalité n'est pas encore disponible sur la page Cloud Storage.

Utilisez les labels Kubernetes dans GKE

GKE vous permet de labeliser chaque nœud d'un cluster via la fonctionnalité de labels Kubernetes (sur la page Metadata lors de la création d'un cluster).

Astuce : à l'intérieur de Kubernetes, vous pouvez utiliser un selector pour cibler ces nœuds. Notez que cela ne s'applique qu'à GKE et non aux clusters autonomes.

Utilisez les labels dans vos requêtes BigQuery de facturation

Si vous avez déjà utilisé BigQuery comme destination pour vos données de facturation, vous avez sûrement remarqué un enregistrement labels dans les tables qu'il crée. Chaque label que vous ajoutez à un service apparaît dans cet enregistrement pour la ressource associée à la ligne. Exploiter ces données permet une exploration bien plus poussée via BigQuery.

Utilisez des labels sur vos files d'attente

Si vous utilisez Pub/Sub pour des files d'attente ou dans le cadre d'un workflow, créez un label sur votre topic pour l'identifier comme appartenant à une application ou au workflow concerné. C'est un coût souvent négligé, en particulier chez les gros utilisateurs de Pub/Sub. À noter qu'au moment de la rédaction, Pub/Sub Lite ne prend pas en charge les labels.

Tenez votre politique de labels à jour

Lors de la mise à jour ou du déploiement d'un nouveau projet, ou de l'utilisation d'un nouveau service GCP, vérifiez s'il prend en charge les labels. Si c'est le cas, mettez à jour votre politique de labels pour les inclure, ou ajoutez-le à Iris3 pour une mise à jour automatique.