Platform Engineer · SRE

Maxime Toris — GitOps Lab

Pipeline de livraison complet du commit au déploiement, avec sécurité et observabilité intégrées — sur une infrastructure à 9€/mois.

Observabilité
Status en temps réel
App Demo
Vérification...
ArgoCD
Vérification...
Grafana
Vérification...
Vault
Vérification...
DefectDojo
Vérification...
Accès démo
Explorer le lab
Service URL Login Mot de passe Rôle
ArgoCD argocd.maxto-platform.cloud ↗ guest guest123 read-only
Grafana grafana.maxto-platform.cloud ↗ guest guest123 viewer
Vault vault.maxto-platform.cloud ↗ hvs.CAESIByooeI-v1Ox… ⎘ copier
Method: Token · accès limité à secret/demo/*
token demo
DefectDojo defectdojo.maxto-platform.cloud ↗ guest Guest@Lab2026! reader
Cliquez sur un credential pour le copier dans le presse-papier.
Infrastructure
Architecture
graph LR DEV[👨‍💻 Dev] -->|git push| GL[GitLab CI] subgraph CI ["Pipeline CI"] GL --> T[Tests] GL --> EC2[⚡ EC2 Spot\néphémère] T --> B[Build image] EC2 --> B B --> SC[Trivy\nScan CVE] SC --> UM[Bump tag] end subgraph VPS ["VPS Ionos — prod"] ARGO[🔄 ArgoCD] --> APP[app-demo] ARGO --> PORT[Portfolio] VAULT[🔐 Vault+ESO] -.-> APP APP --> GRAF[📊 Grafana] DOJO[🛡 DefectDojo] end subgraph AWS ["AWS Staging — on-demand"] ARGOS[🔄 ArgoCD] --> APPS[app-demo] VAULTS[🔐 Vault+ESO] -.-> APPS APPS --> DOGS[📊 Datadog] DOJOS[🛡 DefectDojo] end UM --> ARGO UM --> ARGOS SC --> DOJO SC --> DOJOS style CI fill:#1c1400,stroke:#d97706 style VPS fill:#0c1929,stroke:#3b82f6 style AWS fill:#0a1f0a,stroke:#22c55e
← Faire défiler pour voir le schéma complet →
CI/CD
Parcours d'un commit
👨‍💻
git push
Le développeur pousse son code. GitLab CI déclenche automatiquement le pipeline.
Tests unitaires
Exécution de la suite de tests dans un container Go isolé.
golang:1.22-alpine · go test ./...
Provision runner éphémère (AWS Spot)
Une instance EC2 spot est provisionnée via Terraform depuis le VPS. Le runner s'enregistre automatiquement sur GitLab.
aws_spot_instance_request · t3.medium · ~0.005$/pipeline
🐳
Build & Push image
Construction de l'image Docker sur le runner spot (Docker-in-Docker) et push sur la registry privée GitLab.
docker:24 + DinD · registry.gitlab.com/mtoris/app-demo:<sha>
🔍
Scan CVE (Trivy)
Analyse de l'image pour détecter les vulnérabilités. Les CVE CRITICAL bloquent le pipeline.
aquasec/trivy:0.61.0 · rapport JSON
🛡
Import DefectDojo
Le rapport Trivy est automatiquement importé dans DefectDojo pour traçabilité et historique des vulnérabilités.
112 findings · dont CVE-2025-68121 CRITICAL
📝
Bump image tag
Le pipeline met à jour le tag de l'image dans le repo infra-k8s (GitOps).
git commit · infra-k8s/app-demo/deployment.yaml
💥
Destroy runner éphémère
L'instance spot est détruite automatiquement après le pipeline. Zéro coût en idle.
terraform destroy · when: always
🔄
ArgoCD détecte le changement
ArgoCD synchronise automatiquement le cluster avec le nouvel état décrit dans le repo.
sync automatique · <3 min
🚀
App déployée
Le nouveau pod est live. Sur le VPS prod : Prometheus + Grafana. Sur le staging AWS : Datadog.
https://app.maxto-platform.cloud
Stack technique
Outils & Services
k3s — Kubernetes
Orchestrateur léger sur VPS Ionos 4vCPU / 8Go RAM. Production-grade, 9€/mois.
ArgoCD
GitOps — Git est la source de vérité unique. Aucun kubectl apply manuel.
argocd.maxto-platform.cloud ↗
GitLab CI
Pipeline complet test → build → scan → deploy sur runner shell hébergé sur le VPS.
gitlab.com/Mtoris ↗
Prometheus + Grafana
Métriques infra et applicatives. ServiceMonitor, dashboards custom, alerting.
grafana.maxto-platform.cloud ↗
DefectDojo
Gestion centralisée des vulnérabilités CVE importées depuis Trivy à chaque pipeline.
defectdojo.maxto-platform.cloud ↗
HashiCorp Vault + ESO
Gestion des secrets — ExternalSecrets synchronisés depuis Vault vers Kubernetes. Zéro secret en clair dans le code.
vault.maxto-platform.cloud ↗
cert-manager + Let's Encrypt
TLS automatique sur tous les services. Renouvellement automatique. Traefik (staging AWS) + nginx-ingress (prod VPS).
Trivy (Aqua Security)
Scan CVE de chaque image Docker avant déploiement. Les CRITICAL bloquent le pipeline.
Terraform + Terragrunt
Infrastructure as Code — VPC, EC2, SG, DNS Cloudflare. Staging AWS on-demand provisionné en ~15 min.
Datadog
Métriques et logs sur le cluster AWS staging. Approche SaaS en complément de la stack open source (Prometheus/Grafana) sur le VPS prod.
AWS SSM Parameter Store
Stockage sécurisé des credentials générés au boot (Vault unseal key, ArgoCD password). Lecture automatique par Terraform post-apply.
Sécurité
Security by design
🔐
Secrets gérés par Vault
Aucun secret en clair dans le code ou les manifests. Synchronisation via External Secrets Operator.
🔍
Scan CVE systématique
Chaque image scannée par Trivy avant déploiement. Les CRITICAL bloquent automatiquement le pipeline.
📋
Traçabilité totale
Chaque CVE est importée dans DefectDojo avec historique complet. Audit trail par commit.
🚫
Zero accès direct cluster
Tout passe par ArgoCD. Aucun kubectl apply manuel en production.
🔒
TLS partout
Tous les services exposés en HTTPS via cert-manager + Let's Encrypt. Renouvellement automatique.
↩️
Rollback instantané
Un incident = un git revert. ArgoCD reconcilie en moins de 3 minutes.