Architecture Cloud
Principes fondamentaux
Section titled “Principes fondamentaux”Une infrastructure cloud bien conçue repose sur quatre axes :
- Immuabilité — les serveurs ne sont jamais modifiés en place, ils sont reconstruits
- Infrastructure as Code — toute ressource est déclarée, versionnée et auditée
- Moindre privilège — chaque service n’a que les droits strictement nécessaires
- Observabilité by design — logs, métriques et traces dès la conception
Google Cloud Platform
Section titled “Google Cloud Platform”Organisation des ressources
Section titled “Organisation des ressources”Organisation└── Dossier prod ├── Projet réseau (VPC partagé) ├── Projet données └── Projet applicatif└── Dossier staging └── ...Un VPC partagé (Shared VPC) centralise le routage et les règles de firewall tout en permettant à chaque projet d’évoluer indépendamment.
Terraform / Terragrunt
Section titled “Terraform / Terragrunt”Pour les projets GCP, nous utilisons Terraform avec Terragrunt pour gérer la duplication entre environnements :
# terragrunt.hcl (racine)generate "provider" { path = "provider.tf" if_exists = "overwrite" contents = <<EOFprovider "google" { project = var.project_id region = var.region}EOF}NixOS sur VM
Section titled “NixOS sur VM”Pour les charges de travail nécessitant une reproductibilité totale, NixOS permet de décrire l’état complet d’un serveur dans un fichier .nix versionné, et de le déployer atomiquement via Colmena.
Haute disponibilité
Section titled “Haute disponibilité”| Pattern | Quand l’utiliser |
|---|---|
| Multi-zone (même région) | Applications standard, coût maîtrisé |
| Multi-région active/passive | RPO < 1h, données répliquées |
| Multi-région active/active | RPO ≈ 0, latence globale critique |
Kubernetes (GKE)
Section titled “Kubernetes (GKE)”Pour les architectures microservices, GKE Autopilot réduit la charge opérationnelle en gérant automatiquement le sizing des nœuds. Les points d’attention principaux :
- Resource requests/limits bien calibrés pour éviter l’over-provisioning
- PodDisruptionBudget sur tous les déploiements critiques
- Secrets gérés via Secret Manager (jamais dans le code ou les ConfigMaps)