Réalisation

CI/CD & containerisation Docker.

Containerisation de l'ensemble des projets, pipelines automatisés sur Azure DevOps et déploiements orchestrés par Dokploy : du code à la production en quelques minutes.

DockerAzure DevOpsDokployDevOps
Réalisation de nos fondateurs. Ce projet a été mené par Cédric Santiago avant la constitution de Sanfytech en juillet 2026. Il est présenté ici comme référence du savoir-faire de l'équipe, aujourd'hui mis en œuvre au sein de la société.
CI/CD Docker Infrastructure

Vision du projet

L'implémentation d'une infrastructure CI/CD (Continuous Integration / Continuous Deployment) complète représente un pilier fondamental d'une stratégie de développement moderne. En containerisant l'ensemble des projets avec Docker, en orchestrant les déploiements via Dokploy, et en automatisant les pipelines avec Azure DevOps, nous avons créé un écosystème qui garantit des déploiements rapides, fiables et un développement plus sûr. Cette approche DevOps permet de passer du code au déploiement en production en quelques minutes, tout en maintenant une qualité et une cohérence exemplaires.

Problématiques résolues

Avant la mise en place du CI/CD :
  • Déploiements manuels longs et fastidieux — plusieurs heures pour déployer une mise à jour.
  • Incohérences environnementales— « ça marche sur ma machine » mais pas en production.
  • Risques élevés lors des mises à jour — downtime important et rollback complexe.
  • Configurations serveur complexes — dépendances système difficiles à gérer.
  • Scalabilité limitée— duplication d'environnements très coûteuse en temps.

Stack technique CI/CD

Docker — 100 % containerisé

Containerisation de tous les projets pour garantir la portabilité et l'isolation. Images optimisées multi-stage, Docker Compose pour orchestration locale.

Azure DevOps — automatisation complète

Pipelines CI/CD automatisés : build, tests, scan sécurité, push vers registre Docker et déploiement. Gestion des releases et environments.

Dokploy — PaaS auto-hébergé

Alternative open-source auto-hébergée à Vercel/Netlify. Gestion simplifiée des déploiements Docker, webhooks GitHub, SSL automatique, monitoring intégré.

Docker Registry — images sécurisées

Registre Docker privé auto-hébergé pour stocker et versionner toutes les images. Gestion des tags, nettoyage automatique des anciennes versions.

Pipeline CI/CD complet

Workflow automatisé

  • 1. Git Push vers Azure DevOps — le développeur pousse son code sur la branche main/develop, ce qui déclenche automatiquement le pipeline CI/CD via Azure DevOps.
  • 2. Build & tests automatisés— compilation du projet .NET, exécution des tests unitaires et d'intégration, vérification de la couverture de code (minimum 80 %).
  • 3. Scan sécurité & qualité — analyse de vulnérabilités des dépendances NuGet, scan SonarQube pour la qualité du code, vérification OWASP Top 10.
  • 4. Build image Docker multi-stage— construction d'une image Docker optimisée avec build multi-stage pour réduire la taille finale. Tag avec version sémantique (v1.2.3).
  • 5. Push vers Docker Registry— upload de l'image Docker vers le registre privé auto-hébergé avec tags latest et version. Signature de l'image pour sécurité.
  • 6. Déploiement via Dokploy — Dokploy récupère la nouvelle image, effectue un rolling update sans downtime, configure SSL automatique et met à jour le monitoring.
  • 7. Health checks & monitoring— vérification automatique de la santé de l'application déployée. Uptime Kuma surveille la disponibilité, rollback automatique en cas d'échec.

Containerisation avec Docker

Images Docker multi-stage

Utilisation de Dockerfiles multi-stage pour optimiser la taille des images finales : stage de build avec SDK complet, puis stage runtime avec uniquement les binaires nécessaires.

  • réduction de taille : de 1.2GB à 180MB pour application .NET ;
  • utilisation d'images de base Alpine Linux légères ;
  • layers cachés pour build ultra-rapides (< 30s).

Docker Compose pour stacks complètes

Configuration de stacks multi-containers avec Docker Compose : application + base de données + Redis + reverse proxy. Environnement de développement identique à la production.

  • réseaux isolés par projet pour sécurité ;
  • volumes persistants pour bases de données ;
  • variables d'environnement pour configuration.

Sécurité des containers

Application des meilleures pratiques de sécurité Docker : utilisateur non-root, scan de vulnérabilités, secrets management avec Docker secrets.

  • images scannées avec Trivy et Grype ;
  • pas de credentials en clair dans images ;
  • read-only filesystem quand possible.

Optimisations de performance

Multiples optimisations pour performances maximales : .dockerignore pour réduire contexte, build cache optimisé, health checks pour garantir disponibilité.

  • startup time réduit de 80 % avec AOT .NET ;
  • health checks toutes les 30s ;
  • resource limits pour éviter memory leaks.

Dokploy : PaaS auto-hébergé

Dokploy est une alternative open-source auto-hébergée à Vercel, Netlify et Heroku. Installé sur notre infrastructure Proxmox, il offre une expérience PaaS complète avec interface web intuitive :

  • Déploiements Git automatiques — webhooks GitHub/Azure DevOps pour déclencher déploiements à chaque push.
  • SSL automatique Let's Encrypt — certificats SSL générés et renouvelés automatiquement pour tous les domaines.
  • Monitoring intégré — métriques CPU, RAM, réseau et logs en temps réel pour chaque container.
  • Zero-downtime deployments — rolling updates sans interruption de service grâce à health checks.
  • Rollback instantané — retour à version précédente en un clic si problème détecté.
  • Multi-projets & multi-domaines — gestion centralisée de tous les projets containerisés.

Avantages du CI/CD containerisé

Déploiements ultra-rapides

De la validation du code en local au déploiement en production en moins de 5 minutes. Automatisation complète du pipeline.

Fiabilité maximale

Environnements identiques dev/staging/prod grâce aux containers. Élimination du « ça marche sur ma machine ».

Sécurité renforcée

Scan automatique des vulnérabilités, isolation des containers, secrets management, mises à jour automatiques des dépendances.

Scalabilité simplifiée

Duplication d'environnements en quelques secondes. Scaling horizontal facilité grâce à la containerisation.

Résultats et gains

-90 % de temps de déploiement, 100 % des projets containerisés, 0 downtime lors des mises à jour.
  • Déploiement de 2h à 5 minutes — automatisation complète du processus de release.
  • Zéro incident de production — depuis implémentation CI/CD grâce aux tests automatisés.
  • Environnements 100 % cohérents — dev, staging et production identiques grâce à Docker.
  • Rollback en < 30 secondes — retour à version précédente instantané si nécessaire.
  • +300 % fréquence de déploiement — releases multiples par jour vs hebdomadaires auparavant.

Conclusion

L'implémentation d'une infrastructure CI/CD complète avec Docker, Azure DevOps et Dokploy a transformé radicalement notre façon de développer et déployer des applications. La containerisation garantit la portabilité et l'isolation, Azure DevOps automatise l'ensemble du pipeline de build à production, et Dokploy offre une expérience PaaS moderne tout en conservant le contrôle total sur l'infrastructure. Cette stack permet de déployer en production plusieurs fois par jour avec une confiance totale, grâce aux tests automatisés, scans de sécurité et zero-downtime deployments. Le développement est plus sûr, les déploiements sont plus rapides, et la qualité globale des applications s'en trouve considérablement améliorée. Cette approche DevOps moderne est devenue un standard pour tous nos nouveaux projets et migrations.

Besoin d'une infrastructure CI/CD pour vos projets ?

Nous vous accompagnons dans la mise en place de pipelines automatisés et de la containerisation. Premier échange offert.