Pipeline CI/CD automatisé
Pipeline CI/CD automatisé avec conteneurisation et déploiement continu d'une application web d'entreprise
Date
Mars 2026
Durée
5 semaines
Équipe
3 personnes
Rôle
Ingénieur DevOps & Intégrateur
Description du projet
Ce projet avait pour but de moderniser le cycle de déploiement d'une application web interne
(gestion de tickets d'incidents) en mettant en place une chaîne CI/CD complète.
L'application Flask/PostgreSQL a été conteneurisée via Docker, orchestrée avec Docker Compose,
puis intégrée dans un pipeline Jenkins automatisant les phases de build, tests unitaires,
analyse de code et déploiement sur serveur de production Nginx.
GitHub Actions a été utilisé pour les vérifications de qualité de code à chaque pull request.
Ce projet s'inscrit dans une logique d'amélioration continue des processus IT en entreprise.
Objectifs
- 💡 Conteneuriser une application web Flask avec Docker pour garantir la portabilité
- 💡 Orchestrer les services (app + base de données) avec Docker Compose
- 💡 Mettre en place un pipeline CI/CD Jenkins automatisant build, tests et déploiement
- 💡 Intégrer GitHub Actions pour l'analyse qualité et la validation des pull requests
- 💡 Configurer un reverse proxy Nginx pour la mise en production
- 💡 Réduire le temps de déploiement manuel et les risques d'erreur humaine
Défis techniques & Solutions
Cohérence des environnements dev/prod
Utilisation de fichiers .env et de Docker multi-stage builds pour garantir des images identiques entre les environnements
Persistance des données PostgreSQL
Mise en place de volumes Docker nommés et de scripts de backup automatisés via cron
Temps de build trop long
Optimisation du Dockerfile avec cache des layers et parallélisation des étapes Jenkins pour réduire le temps de pipeline de 12 min à 4 min