Filière: Informatique et systèmes de communication
Orientation: Ingénierie des données
Module: Méthodologie DevOps

Descriptif de cours

Retour DevOps

  • Objectifs

    A la fin du cours, l'étudiant est capable de:

    • Témoigner de l'importance de rédiger (ou de faire rédiger) un code informatique de qualité.
    • Rappeler et appliquer des bonnes pratiques contribuant à l'écriture d'un code de qualité, donc facilement lisible, documenté, testable, reproductible et maintenable à moyen voir long terme
    • Justifier l'importance des outils de build et de gestion de dépendances tel que make, ant, maven ou npm, savoir en mettre en oeuvre certains, les utiliser et les configurer au mieux pour garantir la robustesse.
    • Comprendre le concept de la dette technique, saisir les risques associés, et adopter des pratiques permettant de maîtriser sa dette.
    • Mettre en oeuvre des méthodes contribuant à la production et à la conservation d'une base de code de qualité, quasi toujours opérationnelle et maîtrisée, telle que le pair programming, la revue de code ou le test-driven development.
    • Résumer l'origine de la philosophie DevOps, mentionner les sources d'inspiration, citer les trois grands principes (flow, feedback, continuous improvement), et surtout comprendre comment appliquer cette philosophie à ses futurs projets.
    • Décrire les principes d'intégration continue (CI) et de déploiement continu (CD).
    • Rappeler les étapes standards d'un pipeline de livraison ou de déploiement.
    • Saisir l'ultime importance de soigner son travail et ses développements, par égard pour ses futurs clients, collègues ou mandataires, et par égard pour lui-même.
  • Contenu
    • Introduction au DevSecOps, aux meilleures pratiques en matière de sécurité et maintenance évolutive de developement (SSDLC: clean code, secure code, code review, threat modeling, automated code and security testing, security configuration management, operations).
    • Intégration et Déploiement continu (CI/CD): concepts, processus et d'outils (tels Gitlab, Github Actions).
    • Automatisation des tests: Approches de test (BDDs, TDD) et types de tests (unitaires, test d'intégration, tests UI automatisés), couverture des tests.
    • Outils de monitoring de la qualité de code tels que SonarLint, SonarCube. Règles basiques de robustesse
    • MLOps: DevOps appliqué au machine learning: meilleures pratiques, versioning des données.
    • Optionnel: Orchestration de services (avec des platformes tels Kubernetes) et le scaling qui vient avec ces technologies
    • - Le rôle et l'importance des outils de compilation, de gestion des dépendances, d'assemblages etc. L'importance de rendre les processus de build reproductibles, si possible sur n'importe quel environnement. Bonnes pratiques pour la gestion de dépendances (e.g. maven, gradle).
    • - Problématique de la maintenance du code, surtout dans le contexte moderne de mise à jour quasi continue et d'évolutivité des produits logiciels. Introduction au concept de la dette technique.
    • Règles d'or pour un code lisible, en particulier longueur des classes et méthodes, nommage, complexité, commentaires, documentation.
    • Utilisation raisonnée de GIT : noms des commit, soumission de merge request. Comment procéder à une revue de code.
    • Fondements de la doctrine devOps : principes de flux, de feedback et d'amélioration continue. Origines de la doctrine.

Forme d'enseignement et volume de travail

Cours magistral (y compris exercices)
32 périodes
Travail personnel
28 périodes

Spécification du cours

Année de validité
2025-2026
Année du plan d'études
3ème année
Semestre
Printemps
Programme
Français,Bilingue
Filière
Informatique et systèmes de communication
Langue d'enseignement
Français
Identifiant
B3C-DEOP-S
Niveau
Avancé
Type de cours
Fondamental
Formation
Bachelor

Modalités d'évaluation

  • Contrôle continu: La note est donnée au niveau du module. Se référer au descriptif du module pour les modalités d'évaluation.

Mode de calcul de la note de cours

La note est donnée au niveau du module. Se référer au descriptif du module pour les modalités d'évaluation.

Enseignant(s) et/ou coordinateur(s)

Sandy Ingram, Philippe Joye, Michael Mäder, Sébastien Rumley, Jacques Supcik, Beat Wolf