Voir la demande exploser pour vos solutions logicielles, voilà qui devrait être une bonne nouvelle, non ? C'est en effet souvent une raison de se réjouir, mais un angle mort revient régulièrement dans l'hébergement cloud public et peut paralyser votre entreprise, voire provoquer une panne : les limites et les quotas.
Ne soyez pas pris de court au pire moment
Chez DoiT International, nous accompagnons des milliers d'organisations dans le monde entier en tant que partenaire cloud de confiance et éditeur de solutions FinOps. Nos cloud architects traitent chaque mois des dizaines de milliers de demandes clients, et un oubli revient souvent : ne pas anticiper l'atteinte des limites de quotas. Résultat : des demandes urgentes pour faire accélérer le traitement des hausses de quotas auprès du fournisseur cloud.

Demandes d'assistance pour augmentation de quotas reçues de nos clients
Depuis dix ans, nous mettons un point d'honneur à innover pour tenir les vraies promesses du cloud : simplicité, élasticité et efficacité. Pour aider nos clients à surmonter ce problème récurrent, nous avons intégré le suivi et les alertes de quotas à notre propre plateforme logicielle multicloud, la DoiT Console.

Exemple : fonctionnalité de suivi des quotas de la DoiT Console pour les clients AWS
Malheureusement, tous les utilisateurs d'hébergement cloud public ne sont pas (encore) clients de DoiT. Heureusement, l'équipe Google a elle aussi identifié ce problème et publié en open source un projet baptisé Quota Monitoring Solution (QMS).
La Quota Monitoring Solution open source de Google
Le dépôt GitHub de la solution propose des instructions pas à pas, mais cet article vise à condenser les étapes pour vous permettre de la déployer rapidement. Pour des explications plus détaillées, n'hésitez pas à consulter la documentation du dépôt.
En moins de vingt minutes, à l'aide de commandes gcloud et terraform dans un terminal, vous obtenez un dashboard semblable à celui ci-dessous, puis vous personnalisez les alertes en fonction des besoins de votre organisation.

Dashboard Looker Studio affichant l'utilisation de vos quotas au niveau organisation, dossier, région ou projet
Fonctionnalités
Source : Google
Architecture
Source : Google
Cet article vous guidera à travers les étapes suivantes :
- Préparer et configurer votre environnement QMS
- Installer QMS avec Terraform
- Mettre en place votre dashboard Looker Studio
C'est parti !
Prérequis
Pouvoir exécuter des commandes gcloud dans un terminal ou Cloud Shell
Bien qu'il soit possible de configurer le service manuellement depuis la Cloud Console, celui-ci a été conçu pour être installé et configuré via un terminal et des commandes shell. Vous pouvez utiliser votre client de terminal habituel ou tout simplement le Cloud Shell intégré à la GCP Console.
Pouvoir exécuter Terraform
Vous devrez installer l'outil en ligne de commande Terraform sur votre machine ou dans Cloud Shell. La configuration de l'infrastructure cloud et des fonctions serverless est automatisée via l'infrastructure as code (IaC).
Pouvoir attribuer des rôles IAM
Pour avancer, vous aurez besoin de plusieurs rôles IAM afin de créer un projet de monitoring, un service account et d'attribuer des rôles à ce service account. Nous recommandons que vous-même ou un membre de votre équipe disposant du rôle Organization Administrator vérifie que vous disposez bien des rôles ci-dessous :
- Project Creator
- Service Account Creator
- [ Organization | Folder | Project ] IAM Admin
- Service Account Token Creator
1\. Préparer et configurer votre environnement QMS
Pour simplifier la préparation et la configuration, j'ai préparé un script qui réalise pour vous les opérations suivantes :
- Création du projet de monitoring, du service account et des permissions IAM associées
- Permissions IAM sur la cible (organisation ou dossier)
- Configuration et instructions Terraform
Exécutez la commande ci-dessous dans votre terminal ou Cloud Shell pour lancer la configuration.
Astuces
- Appuyez simplement sur ENTRÉE pour accepter les [valeurs par défaut] dans les invites
- Ayez votre billing ID (xxxxxx-xxxxxx-xxxxxx) à portée de main pour le copier-coller
bash <(curl -L https://bit.ly/gcp-qms-setup)
Vous pouvez consulter le code source ici : https://bit.ly/gcp-qms-setup

Exemple d'invites du terminal lors de l'exécution du script d'installation ci-dessus
2\. Installer QMS avec Terraform
Une fois la configuration initiale terminée, le script vous invitera à vous authentifier et à exécuter Terraform vous-même, ce qui vous permet d'inspecter le plan avant de l'appliquer (et de relancer en cas d'erreur).

Exemple d'invite du terminal après le script de configuration, fournissant les commandes finales pour exécuter Terraform
Commandes d'installation (remplacez <your-…> par les bonnes valeurs)
PROJECT_ID=<your-project-id>
SA_EMAIL=<your-sa-email-address>
REGION=<your-region>
# configure gcloud sdk
gcloud config set core/project $PROJECT_ID
# set up short-lived oauth token
gcloud config set auth/impersonate_service_account $SA_EMAIL
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
# run terraform (re-run `terraform plan` and `terraform apply` if errors)
cd quota-monitoring-solution/terraform/example
terraform init
terraform plan
terraform apply
# unset service account impersonation
gcloud config unset auth/impersonate_service_account
# return to project directory
cd ../../../
# start cloud scheduler jobs to begin monitoring quotas
gcloud scheduler jobs run quota-monitoring-cron-job --location $REGION
gcloud scheduler jobs run quota-monitoring-app-alert-config --location $REGION
3\. Mettre en place votre dashboard Looker Studio
Une fois la configuration et l'installation effectuées via Terraform, vous mettrez en place votre dashboard en suivant les étapes ci-dessous (l'ordre compte, je l'ai constaté).
Ouvrez le modèle Looker Studio
Cliquez sur le menu en haut à droite (les 3 points), puis sur Faire une copie

Lorsque la source de données vous est demandée, conservez la sélection par défaut

Vous devriez désormais voir une copie du modèle de dashboard Looker Studio dans un autre onglet de navigateur. L'étape suivante consiste à le connecter au dataset créé précédemment dans votre projet.
Se connecter à votre dataset
J'ai trouvé cette étape capricieuse et l'ordre compte, mais si vous n'y parvenez pas du premier coup, recommencez.

Un panneau apparaîtra en bas avec une requête SQL ; vous devrez la modifier pour y indiquer votre [project ID].[dataset].[table].
À gauche, les projets sont listés et le vôtre peut ne pas y figurer. Essayez de le rechercher, et si la saisie automatique ne fait pas remonter votre projet, cliquez sur l'onglet Recent Projects et sélectionnez votre projet -> dataset -> table.

Revenez à l'onglet de la requête de test et vérifiez que votre project ID figure toujours dans la requête (et n'est pas revenu à la valeur par défaut du modèle).

Exemple : assurez-vous que votre PROJECT ID apparaît bien aux deux endroits
Cliquez sur le bouton Reconnect en haut à droite du panneau. Lorsque vous y êtes invité, confirmez le changement de source de données et cliquez sur Apply

Félicitations !
Les données devraient s'afficher dans le dashboard. Si ce n'est pas le cas, recommencez les étapes ci-dessus : l'opération est parfois capricieuse, et quelques tentatives suffisent en général à régler le problème.
Cliquez simplement sur Done pour fermer le panneau, puis éventuellement sur View pour consulter votre dashboard.
Configurer le suivi et les alertes
La documentation de Google détaille les options de personnalisation et de configuration des alertes.
Vous pouvez désormais garder un œil sur vos quotas et détecter les problèmes potentiels avant qu'ils ne provoquent une panne.