S9 DOSI Plateforme d'intégration continue
Présentation
La production de logicielle à échelle industrielle entraîne de nombreux challenges, entre la nécessité de travailler en équipe (parfois à distance), de s’assurer de la qualité des livrables ou bien encore de toujours mettre à disposition une version stable d’un projet pour validation ou recette. Ce cours permet d’introduire une suite d’outils (IntelliJ, Git, Maven/Gradle, Jenkins, SonarQube, Docker, …) et de méthodes permettant de réduire ces complications et d'automatiser le processus de développement.
Pré-requis nécessaires
- Système d’exploitation Linux et langage de commande bash
- Programmation Java
Objectifs
Ce cours permet d’appréhender un environnement de développement industrialisé et de mettre en pratique les concepts de l'intégration continue :
- Coder et compiler à l’aide d’un IDE comme IntelliJ.
- Travailler en équipe, gérer les versions de son travail, gérer les conflits de code avec Git.
- Gérer ses dépendances et uniformiser ses builds grâce à Maven ou Gradle.
- Dockeriser la chaîne de développement des applications, depuis le poste du développeur jusqu’aux environnements de tests et d’’intégration.
- Intégrer ses modifications en continue avec gitlab-ci.
- Mesurer et améliorer la qualité de ses développements grâce à SonarQube.
- Comprendre les principes de l'intégration continue et son importance dans le cycle de vie du développement logiciel.
- Mettre en place et configurer un pipeline d'intégration continue.
- Automatiser les tests unitaires et d’intégration, l'analyse de code et le déploiement.
Compétences visées
- Savoir utiliser un environnement de développement industriel.
- Maîtriser les outils d'intégration continue
- Être capable de mettre en place et de gérer un pipeline d'intégration continue.
- Comprendre les bonnes pratiques de développement en équipe et de gestion de versions.
- Savoir automatiser les tâches de build, de test et de déploiement.
- Être capable d'analyser et d'améliorer la qualité du code.