Formation

Une plateforme IA Google Cloud en modules Terraform

Découper l'infrastructure d'un service IA en modules Terraform réutilisables (réseau, IAM, Artifact Registry, Secret Manager, buckets, journaux, Cloud Run), la composer en dev et en prod avec un état distant verrouillé, puis la créer, l'appeler et la détruire pour de vrai.

Avancé 7 leçons 6h
Commencer la formation
Progression 0% · 0/7

Le ticket arrive un lundi : « Le service de tri des demandes tombe en prod depuis vendredi, mais marche en dev. » Après une heure, la cause apparaît : en dev, le compte de service a été créé à la main avec le rôle editor ; en prod, quelqu'un a appliqué le main.tf de 1 400 lignes avec une variable oubliée, et le rôle Vertex AI manque. Personne ne sait plus quel fichier décrit quel environnement, et l'état Terraform de prod vit sur le portable d'un collègue en congé.

Ce projet reconstruit cette plateforme proprement : des modules petits avec un contrat clair, une composition par environnement, un état distant versionné et verrouillé, des secrets qui ne touchent jamais l'état. Puis il la crée réellement sur Google Cloud, l'appelle, et la détruit en vérifiant qu'il ne reste rien.

L'entreprise, « Logi-Express », un logisticien de 900 personnes, est fictive. Ses contraintes, elles, sont courantes : données dans l'UE, astreinte réduite, budget cloud suivi par centre de coût.

Ce que vous livrez

Appel réel du service de tri déployé par Terraform sur Cloud Run (Swagger UI, 2026-10-15)
  • Sept modules réutilisables : network, service-accounts, artifact-registry, secrets, buckets, logging, cloud-run-service, et une composition platform qui les assemble.
  • Deux environnements, infra/envs/dev et infra/envs/prod, qui n'appellent que platform avec des valeurs différentes.
  • Un bucket d'état GCS versionné, verrou natif, créé par infra/bootstrap.
  • Un service FastAPI de tri des demandes (Gemini 2.5 Flash sur Vertex AI), privé, sans clé, avec un jeton lu dans Secret Manager.
  • Un Makefile qui crée, teste et détruit le tout, nettoyage vérifié.
make cloud-up puis make e2e, sortie réelle du 2026-10-15

Architecture

flowchart TB
  subgraph envs["Racines Terraform"]
    DEV["envs/dev<br/>terraform.tfvars"]
    PROD["envs/prod<br/>terraform.tfvars"]
  end
  DEV --> PF["module platform"]
  PROD --> PF
  PF --> SA["service-accounts"]
  PF --> AR["artifact-registry"]
  PF --> SM["secrets"]
  PF --> BK["buckets"]
  PF --> LG["logging"]
  PF --> NW["network (prod)"]
  PF --> CR["cloud-run-service"]
  STATE[("Bucket d'état GCS<br/>versionné + verrou")] -. "état dev / prod" .- DEV
  STATE -.- PROD
  CR --> VX["Vertex AI<br/>gemini-2.5-flash"]
  SM -. "TICKETING_TOKEN" .-> CR
  CR -. "journaux" .-> LG
  LG --> BK

Stack, coût, durée

ÉlémentChoixPourquoi
Terraform1.16.0 (≥ 1.11 requis)arguments write-only pour les secrets
Providerhashicorp/google 8.7deletion_policy générique, Cloud Run v2
ExécutionCloud Run, à zéro instance au repos en devfacturé à la requête
Modèlegemini-2.5-flash, Vertex AI europe-west1données traitées dans l'UE
ÉtatGCS, versioning, verrou natif du backendpas de table de verrou à gérer

Coût mesuré d'un cycle complet cloud-up + e2e + cloud-down : de l'ordre de quelques centimes (aucune ressource facturée à l'heure en dev). Durée : 6 h de lecture et de pratique ; make cloud-up prend environ une minute.

Prérequis

  • Terraform lu et pratiqué : resource, variable, output, terraform plan/apply.
  • Un projet Google Cloud où vous avez les droits d'administration IAM, et gcloud connecté.
  • Docker en local pour construire l'image.
  • Sans projet Google Cloud : make test et la lecture de toutes les leçons restent possibles ; make plan demande des identifiants.

Programme

#LeçonVous finissez avec
1Découper en modulesmake test vert sur 7 modules
2État distant et environnementsun bucket d'état réel, un verrou démontré
3Identités, registre et secretsun secret absent de l'état, vérifié
4Stockage, journaux et réseauun sink qui a le droit d'écrire
5Le service Cloud Run et la compositionle module platform complet
6Planifier dev et proddeux plans lus et compris
7Appliquer, appeler, détruiremake e2e vert, make cloud-down vérifié

Le code complet est dans files/ ; le projet suivant, Terraform testé et gouverné, ajoute tests natifs, tflint, checkov, politiques OPA et détection de dérive sur ces mêmes modules.

Ressources

Tout télécharger (.zip)

Références