Scenario concret : deployer une application web
Voici comment les outils s'enchainent dans un workflow reel :
Etape 1 : Provisionner l'infrastructure
# Terraform cree le cluster Kubernetes et la base de donnees
terraform init
terraform plan # Previsualiser les changements
terraform apply # Creer l'infrastructure
# Resultat : un cluster K8s + une BDD PostgreSQL sur le cloud
Etape 2 : Configurer les serveurs
# Ansible configure les nœuds du cluster
ansible-playbook -i inventory.yml setup-cluster.yml
# Installe les outils de monitoring, configure les certificats TLS,
# deploie Keycloak pour l'authentification
Etape 3 : Developper et pousser le code
# Le developpeur travaille sur une branche
git checkout -b feature/login-page
# ... ecrit du code ...
git add .
git commit -m "feat: ajout page de login avec Keycloak"
git push origin feature/login-page
# Cree une Merge Request sur GitLab
Etape 4 : Pipeline CI/CD (automatique)
# GitLab CI detecte le push et execute :
# 1. Tests unitaires et integration
# 2. Analyse de securite (SAST)
# 3. Build de l'image Docker
# 4. Push vers le registry GitLab
# 5. Deploy sur l'environnement de staging (K8s)
# 6. Tests end-to-end
# 7. Deploy en production (apres validation manuelle)
Etape 5 : Monitoring continu
# Prometheus scrape les metriques de l'application
# Grafana affiche les dashboards
# Alertmanager envoie des alertes si probleme
# Loki centralise les logs de tous les pods K8s
GitOps : Dans un workflow GitOps, meme l'infrastructure Kubernetes est decrite dans Git. Un outil comme ArgoCD synchronise automatiquement le cluster avec le depot Git.