Juin 2025 Archives
mar. 03 juin 2025 11:03:04 CEST
Construire. Conteneuriser. Automatiser. De la création d'une application web à la mise en place d'un pipeline CI/CD fiable.
Voici deux supports de travaux pratiques qui vous proposent une immersion progressive dans l'intégration et le déploiement continu : du script Bash à la création d’une application web Python conteneurisée avec Podman (Lab 11), puis jusqu'à l'automatisation complète du cycle de vie applicatif grâce à un pipeline CI/CD orchestré par Jenkins (Lab 12). L'objectif est d'acquérir les compétences nécessaires pour industrialiser le déploiement d’applications, garantir leur reproductibilité et leur robustesse à chaque modification du code.
Les 3 points forts du Lab 11 – Build a Sample Web App in a Podman Container

- Maîtrise de l’automatisation avec Bash
Le Lab 11 débute par un court rappel des bases du scripting Bash, indispensable pour automatiser la création de fichiers, la manipulation de répertoires et l'exécution de tâches répétitives. - Développement et conteneurisation d’une application web
Python
Les étudiants développent une application web minimale en Python/Flask, puis l'enrichissent avec des fichiers statiques (HTML/CSS) afin de simuler une expérience utilisateur. La suite du TP les guide dans la création d’un Dockerfile et l’utilisation de Podman pour construire et exécuter l’application dans un conteneur, ce qui permet de se familiariser avec le packaging d’applications. - Cycle complet : build, run, inspect, clean
Le TP ne se contente pas de la simple exécution : il propose une démarche complète incluant la construction, l’inspection, l'accès interactif au conteneur, l'arrêt et la suppression contrôlée des ressources. Cette approche permet de découvrir le cycle de vie d’une application conteneurisée ainsi que la reproductibilité de sa construction.
Les 3 points forts du Lab 12 – Build a Sample Web App CI/CD Pipeline Using Jenkins

- Introduction pratique à CI/CD avec Jenkins
Le Lab 12 s'appuie sur le travail réalisé dans le Lab 11 pour aborder la gestion de code source avec GitLab, puis l'automatisation des builds et des tests via Jenkins. L'installation, la configuration et la sécurisation des accès Jenkins/agent sont détaillées, ce qui permet de rendre l'infrastructure reproductible et de se rapprocher des bonnes pratiques. - Orchestration complète du pipeline : build, test et déploiement
persistant
L’étudiant crée des jobs Jenkins pour construire et tester l’application dans un conteneur Podman, puis intègre ces étapes dans un pipeline déclenché à chaque modification du code. L'utilisation d'un service Quadlet (systemd) garantit que le conteneur reste actif après la fin du job Jenkins, assurant ainsi la persistance du service. - Contrôle qualité automatisé et diagnostic intégré
Le pipeline intègre des scripts de test automatisés qui vérifient non seulement l'état du conteneur, mais aussi l'accessibilité réelle de l'application web. Des diagnostics détaillés (logs, statuts systemd, etc.) sont collectés en cas d’échec, ce qui illustre l'importance du feedback rapide et de la traçabilité dans une démarche DevOps.
L'importance d’une démarche CI/CD avec reconstruction complète à chaque exécution
La mise en place d’un pipeline CI/CD qui reconstruit l'application et son environnement à chaque exécution garantit la cohérence, la sécurité et la reproductibilité du déploiement. À chaque modification du code source, le pipeline :
- Récupère la dernière version depuis le gestionnaire de sources (GitLab)
- Reconstruit intégralement l'image conteneurisée (Podman)
- Déploie l'application dans un environnement propre, géré par systemd (Quadlet)
- Exécute des tests automatisés pour valider le bon fonctionnement
Cette approche élimine les effets de bord liés à des environnements incomplets, réduit les risques d’erreurs humaines et accélère la détection des régressions. Elle s’inscrit dans les bonnes pratiques DevOps, où l'automatisation et la reconstruction systématique sont des gages de qualité et de rapidité de livraison.
Pour conclure
La progression proposée dans ces deux travaux pratiques illustre l'équilibre à trouver entre les métiers du développement et des opérations. Ils insistent sur la reconstruction complète, la persistance des services, l'intégration des tests et la gestion des erreurs. Cette démarche reflète les exigences du monde professionnel, où la robustesse, la traçabilité et l'automatisation sont des critères essentiels pour l'industrialisation des applications.
Posté par Philippe Latu | permalien | dans : formations, m1, travaux_pratiques | Read it in english with Google