Description de la formation Intégration Continue Java
Cette formation Intégration continue Maven, Nexus, Jenkins, Sonar a pour objectif de présenter les outils les plus répandus pour mettre en place une intégration continue dans le cadre d’un projet Java.
La formation commence par une introduction à l’intégration continue, les principes, les étapes de mise en place, les relations avec les méthodologies Agile et l’approche DevOps.
La seconde partie traite des outils de gestion des sources, en décrivant les différences entre les SCMs centralisés (SVN) et les SCMs distribués (Git), les principales opérations et les workflows de collaboration associés.
La troisième partie est consacrée à l’outil Maven, outil de build permettant la construction automatisée et reproductible des exécutables à partir des sources. Le cycle de vie projet proposé par Maven est explicité, les notions de plugin, de gestions des dépendances et des dépôts, de personnalisation du cycle de build sont vus en profondeur. En particulier, la gestion de release, les interactions entre Maven et Nexus, l’importance des tests et de l’analyse du code source par SonarQube sont mis en avant.
La quatrième partie présente le serveur d’intégration continue Jenkins, sa mise en place, l’installation de plugins, le modèle maître/esclave, la notion de jobs et de pipeline. Les ateliers consistent à mettre en place une pipeline d’intégration continue exécutant toutes les étapes de construction de logiciel : compilation, tests, analyse de code source, déploiement d’artefact et provisionnement de serveurs d’intégration.
Objectifs
Objectif opérationnel :
Savoir appréhender les outils les plus répandus afin de mettre en place une intégration continue dans le cadre d’un projet.
Objectifs pédagogiques :
À l’issue de cette formation Intégration continue Maven, Nexus, Jenkins, Sonar vous aurez acquis les connaissances et les compétences nécessaires pour :
- Comprendre l’intégration continue, ses principes, les étapes de mise en place, les relations avec les méthodologies Agile et l’approche DevOps
- Gérer les sources avec les SCMs
- Gérer les releases avec l’outil Maven et Nexus
- Analyser le code source avec SonarQube
- Mettre en place le serveur d’intégration continue Jenkins et mettre en place une pipeline d’intégration continue
À qui s’adresse cette formation ?
Public :
Ce cours Intégration continue s’adresse aux développeurs, testeurs, qualificateurs et intégrateurs souhaitant mettre en place une intégration continue dans le cadre d’un projet Java.
Prérequis :
Une connaissance minimale de Java est requise pour suivre ce cours sur l’intégration continue.
Contenu du cours Intégration Continue Java
Intégration continue
Principes de l’intégration continue
Développement agile, DevOps et intégration continue
Pré-requis à l’intégration continue
Typologies des tests et métriques d’un logiciel
Cycle de vie d’un projet ; le modèle Maven
Outils annexes et intégration : Repository artefacts, Tests et qualité de code
Gestion des sources avec les SCMs
Rôle d’un SCM
Typologie des SCM : centralisé ou distribué. Impacts
Les principales opérations d’un SCM, spécificité des SCMs distribués
La notion de branches et de développement – La fusion de branches
Workflows de collaborations
Mise en place de SVN, mise en place de Git. Outils
Travaux Pratiques :
Mise en place de 2 dépôts : SVN et Git. Opérations de commit, update. Opérations Pull et Push de Git
Maven
Le POM, les coordonnées Maven, les différents dépôts, cycle de vie
Notion d’archetype, types d’artefact, options pour le démarrage de projet
Gestion des dépendances, Visualisation arbre de dépendances, Gestion des versions
Plugins Maven, configuration documentation
Ajout de plugin, augmenter le cycle de vie standard,
Structure des projets multi-modules
Travaux Pratiques :
POM d’un projet multi-modules, personnalisation du build pour intégrer des tests d’intégration et des tests de performance
Gestion des releases avec Maven et Nexus
Problématique de la production d’une release
La phase deploy de Maven
Le plugin Release
Intégration Nexus Maven
Fonctionnalités de Nexus
Travaux Pratiques :
Personnalisation du déploiement pour utiliser un dépôt Nexus, gestion des versions avec le plugin Release
Analyse du code source avec SonarQube
Modèle qualité d’un logiciel et métriques associés
L’offre de Sonar (SonarQube et SonarLint)
Architecture Sonar
Concepts Sonar : SonarScanner, Règles, Violations, Profils qualité
Cycle de vie des violations
Métriques qualité, formules de calcul
Leak periodes et porte qualité
Mise en place d’une démarche qualité et personnalisation des règles
Intégration Maven
Travaux Pratiques :
Installation de SonarQube, personnalisation dans le cadre d’un projet, démarrage de l’analyse via Maven
Mise en place du serveur Jenkins
L’offre Jenkins/Hudson. Notion de job, de workspace, de graphique de tendance
L’interface Web
Mise en place du serveur, les différents types d’installation
Contenu du répertoire .jenkins
Configuration des outils (Java, Maven, SCM, Serveur de mail)
Les plugins Jenkins, configuration, documentation
Mise en service, dimensionnement
Travaux Pratiques :
Installation d’un serveur Jenkins et de plugins, démarrage du build Maven précédemment mis au point
Pipeline d’intégration continue
Définition d’une pipeline
Pilpeline legacy et plugins associés
Le plugin BlueOcean et l’approche DevOps
Définition de pipeline avec Groovy
Travaux Pratiques :
Mise en place d’une pipeline avec les plugins legacy, avec BlueOcean
Travaux Pratiques
Des travaux pratiques sont proposés à la fin de chaque module (60% du cours total).