R5.07 • S5

Automatisation de la Chaîne de Production

DevOps, intégration & déploiement continus (CI/CD), conteneurs & sécurité

🏛️ BUT Info 🎯 Parcours A — Réalisation d'applications : conception, développement, validation ⏱️ 12h (3 séances de 4h TP machines) ⚖️ Contrôle Continu Intégral (CCI)
👤
Responsable du module
Pierre Ramet
👥
Chargés de TD ou TP
Florent Pruvost, Pierre Ramet

📋 Cadrage Pédagogique & Fiche du Module

Compétences du Programme National (PN), volume horaire et objectifs d'apprentissage

R5.07 — Automatisation de la Chaîne de Production

Cadrage Institutionnel & Pédagogique

  • Code National : R5.07 (R5.A.07 / R5.B.05)
  • Formation : BUT Informatique — 3ème Année — Semestre 5
  • Parcours :
    • Parcours A : Réalisation d’applications : conception, développement, validation (parcours cible pour ce contenu)
    • Parcours B : Déploiement d’applications communicantes et sécurisées
  • Volume horaire : 12 heures (3 séances de 4h de Travaux Pratiques sur machines)
  • Modalités d’évaluation : Contrôle Continu Intégral (CCI)
  • Équipe pédagogique :
    • Responsable du module : Pierre Ramet
    • Chargés de TD ou TP : Florent Pruvost & Pierre Ramet

Objectifs du Module

L’objectif de cette ressource est de concrétiser la chaîne de production complète d’une application afin de développer les aptitudes nécessaires pour travailler efficacement et en autonomie au sein d’une équipe informatique moderne orientée DevOps.

À l’issue de ce module, les étudiants sont capables de :

  1. Contrôler et fiabiliser l’environnement de test : construire et maintenir des recettes de conteneurs (Docker/Podman), déployer des runners dédiés ou partagés, et automatiser le cycle de vie des images de qualification logicielle.
  2. Industrialiser la distribution logicielle : mettre en œuvre le versioning sémantique (SemVer), publier automatiquement des paquets applicatifs (Debian, Python, Java) et déployer des sites documentaires via GitLab Pages.
  3. Mettre en place l’inspection continue de la qualité : configurer l’analyse statique de code avec SonarQube, évaluer la dette technique, appliquer des Quality Gates strictes et corréler les rapports de couverture de tests.

Compétences Ciblées (Programme National)

  • Administrer des systèmes informatiques communicants complexes : Déployer et configurer des environnements d’exécution isolés et reproductibles adaptés aux contraintes de qualification industrielle.
  • Réaliser un développement applicatif de qualité : Intégrer des suites de tests automatisées, surveiller la non-régression et auditer la conformité du code source face aux vulnérabilités et mauvaises pratiques.
  • Automatiser la livraison logicielle : Concevoir des pipelines d’intégration et de déploiement continus (CI/CD) fiables, performants et sécurisés.

Savoirs de Référence Étudiés

  • Intégration & Déploiement Continus (CI/CD) : Syntaxe GitLab CI, étagement des jobs (stages, artifacts, cache, rules), orchestration de runners multi-machines, gestion sécurisée des variables d’environnement et tokens d’accès.
  • Conteneurisation Applicative : Dockerfile, Podman rootless, registres de conteneurs locaux et distants, stratégies de cache et nettoyage périodique (cleanup).
  • Distribution & Versioning : Semantic Versioning 2.0.0, génération d’artefacts binaires, packaging Debian, paquets Python (pip), archives Java (jar), hébergement statique GitLab Pages.
  • Inspection Continue de la Qualité : SonarQube, SonarScanner CLI, règles de conformité, seuils de qualité (Quality Gates), métriques de couverture Cobertura/LCOV, analyse de fuites mémoire (Valgrind).

📖 Séquences du Module

Supports de cours, travaux pratiques et scripts associés par séance de 4h

Séquence 1 ⏱️ 4 heures (TP)

Maintenance de l'environnement de test via pipeline automatique

Contrôle de l'environnement de qualification, construction et maintenance de recettes de conteneurs (Docker/Podman), déploiement sur runners GitLab (machines IUT et shared runners), politiques de mise à jour des dépendances et nettoyage automatisé du registre.

DockerPodmanGitLab CIRunners

📖 Support principal & Travaux Pratiques

Recette Dockerfile, configuration des runners et gestion des cycles de vie des images.

⚙️ Scripts & Recettes d'Environnement

Fichiers de configuration et scripts d'initialisation pour Podman et GitLab Runner.

Séquence 2 ⏱️ 4 heures (TP)

Distribution de paquets et automatisation des déploiements

Déploiement automatisé d'artefacts logiciels : release source, paquets Debian, images conteneurisées. Principes du versioning sémantique (SemVer 2.0), publication sur GitLab Pages, et simulation de la production via des pipelines planifiés (schedules).

SemVerGitLab PagesPackaging DebianReleasePipelines planifiés

📖 Support principal & Travaux Pratiques

Distribution continue, tags Git, packaging et publication automatique.

Séquence 3 ⏱️ 4 heures (TP)

Inspection continue de la qualité

Mesure et fiabilisation de la qualité logicielle : badges de couverture, rapports JUnit et Cobertura, analyseurs intégrés à GitLab, déploiement d'un serveur SonarQube, exécution de SonarScanner, Quality Gates et détection de la dette technique.

SonarQubeCouverture de testsQuality GateSonarScannerDette technique

📖 Support principal & Travaux Pratiques

Analyse statique de code, métriques de complexité et seuils de qualité.

⚙️ Configurations SonarQube

Recette de conteneur pour Sonar-Scanner.

🎯 Évaluation pratique : Mise en situation DevSecOps

Épreuve pratique en binôme (2h) : basée sur les TP des sessions 1 à 3.

Épreuve sur machine (CCI)
DevSecOpsCCIAudit qualitéTests unitairesAnalyse statique

Évaluation pratique : Mise en situation DevSecOps

Épreuve pratique en binôme (2h) : basée sur les TP des sessions 1 à 3.

📌 Ressources & Documentations

Documentation technique de référence et passerelles vers les modules connexes

🔗 Cours Connexes & Continuité Pédagogique