Développement opérationnel (DevOps)

Présentation

Contrairement au cycle de vie du logiciel historique, le Développement opérationnel permet un développement et une intégration continue des fonctionnalités d’un système. Les avantages sont nombreux puisqu’il offre une plus grande flexibilité aux clients qui peuvent ajuster leur besoin en fonction de l’avancement du projet. De même pour le concepteur de l’application ou son développeur, l’automatisation du processus de déploiement offre une meilleure qualité de code en permettant de tester ou de valider le code de manière unitaire mais également lors de son intégration.

Le cycle de vie du développement opérationnel se base fortement sur le cycle de vie du logiciel historique tout en ajoutant des étapes pour gérer le déploiement de l’architecture. Nous étudierons dans cet enseignement l’intégralité du cycle de vie du DevOps que ce soit les étapes de planification, d’implémentation, de construction, de test qui représentent la partie développement et les étapes opérationnelles qui sont la publication, le déploiement, l’opération et la supervision de l’application.

La partie développement sera intégralement réalisée en utilisant les outils classiques comme le langage UML, le langage Java, Maven et la réalisation de tests unitaires avec JUnit. La partie opérationnelle se basera fortement sur les technologies de virtualisation et permettra d’acquérir les compétences pour publier un programme avec Gitlab, pour déployer ce dernier dans une architecture de pré-production en utilisant les containeurs et Kubernetes, la gestion des bugs avec Jenkins et la supervision de l’application avec Nagios.

Pré-requis nécessaires

Bonnes connaissances de la programmation java, bonnes connaissances de l’ingénierie logicielle, bonnes connaissances des réseaux

Compétences visées

  • Pouvoir modéliser une application complexe
  • Assurer l’intégration et le développement continues d’un projet informatique
  • Maîtriser les technologies de virtualisation