Aller au contenu

Déploiement

Pipeline CI/CD

Utilisation de GitHub Actions avec deux workflows :

1. Intégration Continue (.github/workflows/ci.yml) Déclenché sur PR et push vers main. Vérifie le Protobuf, lance les tests unitaires et linting par service, build Docker dry-run et validation Terraform.

2. Déploiement Continu (.github/workflows/cd-dev.yml) Déclenché sur push main ou manuel. Applique Terraform, build et push les images Docker sur Artifact Registry, déploie sur Cloud Run/Cloud Run Jobs et configure Cloud Scheduler.

Déploiement manuel (GCP Dev)

# Authentification
gcloud auth login
gcloud config set project drone-fleet-optimizer-dev

# Infrastructure
cd infra/terraform/environments/dev
terraform init
terraform apply

# Image (exemple Ingestion)
docker build -t europe-west1-docker.pkg.dev/drone-fleet-optimizer-dev/drone-fleet/ingestion:latest \
  -f services/ingestion/Dockerfile .
docker push europe-west1-docker.pkg.dev/drone-fleet-optimizer-dev/drone-fleet/ingestion:latest

# Cloud Run
gcloud run deploy ingestion \
  --image europe-west1-docker.pkg.dev/drone-fleet-optimizer-dev/drone-fleet/ingestion:latest \
  --region europe-west1 \
  --platform managed

Monitoring et Observabilité

  • Logging : Logs JSON structurés via Cloud Logging.
  • Metrics : Métriques natives Cloud Run (latence, erreurs), Firestore et Pub/Sub.
  • Alertes : Alertes budgétaires via Terraform, surveillance DLQ et taux d'erreurs élevé.