Profil du formateur
Formateur consultant, expert, pédagogue et certifié dans son domaine
Méthode pédagogique
La formation est constituée d’apports théoriques et d’exercices pratiques. Chaque stagiaire dispose d’un poste de travail et la gestion en petit groupe (jusqu’à 8 stagiaires) permet un suivi individualisé et adapté. Durant les sessions de formation, un support pédagogique est remis aux stagiaires.
Suivi, évaluation, sanction
Des tours de table permettent de suivre la progression du stagiaire au fur et à mesure de la formation. Un suivi de la formation est réalisé par une feuille de présence émargée par demi-journée par les stagiaires et le formateur. Un questionnaire de satisfaction et une validation des acquis sont complétés par chaque stagiaire en fin de formation.
Plan du cours
Introduction à la formation Jenkins
- Présentation générale de la formation, objectifs et approches pédagogiques.
- Les pratiques agiles, DevOps et la philosophie « continue » (intégration continue, livraison continue, déploiement continu et feedbacks)
- Qu’est-ce que Jenkins ? L’orchestrateur de l’intégration continue
- Bref retour sur les origines de Jenkins (anciennement Hudson)
- Atouts, positionnement et outils concurrents : TravisCI, Bamboo, Teamcity…
- Le workflow Jenkins : les pilelines CI/CD
- Gestion du code source (Source Code Management) : commits, branches et Pull Requests
- Activités de test logiciel et automatisation
- Installer et démarrer le serveur Jenkins
- Exemples de cas pratiques : tour de table, présentation des participants et du formateur ou de la formatrice, échanges sur les différents contextes professionnels, les pratiques d’intégration et de livraison continues, et les perspectives d’application des acquis de la formation.
- Présentation des différentes possibilités d’installation (manuelle, image docker, packages)
Prise en main et configuration
- Terminologie Jenkins : master, node, job, agent…
- Structure des répertoires jenkins_home et jobs
- L’interface utilisateur et ses composants
- Configurer les outils Git, Java, Maven/Make/Gradle/Ant et le serveur de mail
- Gérer les plugins
- Gérer les notifications, en natif ou avec un plugin (Email-Ext, Slack Notification)
- Différents types de projets Jenkins : freestyle vs pipeline
- Exemples de cas pratiques : découverte de l’interface Jenkins, configuration générale du serveur, configuration des outils et manipulations de plugins, mise en place d’un premier build simple, freestyle ou Maven.
Automatisation du build: jobs freestyle
- Jenkins et le build, vue d’ensemble et meilleures pratiques
- Les différentes sections de configuration d’un job freestyle
- Gérer les interactions avec Git
- Définir les déclencheurs et étapes de build
- Les variables d’environnement Jenkins
- Artefacts et bonnes pratiques d’archivage
- Les empreintes (fingerprints)
- Exemple de cas pratiques : création d’un job basé sur un repo Git, mise en œuvre des bonnes pratiques de configuration.
Automatisation des tests de métriques qualité
- Intégrer la qualité dans le processus de build : bonnes pratiques et outils
- Types de tests et automatisation
- Les différents frameworks de test : JUnit, TestNG, JMeter, Cucumber…
- Configurer des rapports
- Mesurer la couverture de test
- Exemples de cas pratiques : configuration d’un projet Jenkins intégrant l’automatisation de tests unitaires, d’intégration, d’acceptance ou de performance, utilisation de différents plugins et outils (Violations, SonarQube, Checkstyle, FindBugs…).
Distribution de jobs : mise en place d’une architecture maître/agent
- Présentation des nœuds maître et agent (esclave)
- Types de nœuds et champs
- Les différentes possibilités pour démarrer les nœuds : SSH, Java Web Start, service Windows ou script manuel
- Agents Cloud et Docker
- Gestion des configurations, utilisation d’outils complémentaires (Puppet, Chef, Ansible…)
- Bonnes pratiques pour dimensionner l’architecture
- Exemples de cas pratiques : utilisation de Jenkins en cluster, configuration des nœuds, répartition de jobs entre agents, utilisation d’agents Docker.
Paramètres et relations entre jobs
- Paramétrer un job (manuellement ou avec le plugin Parameterized Trigger)
- Axes et matrice de configuration : les jobs multi-configurés
- Chaînage de jobs : passer des paramètres ou artefacts entre jobs
- Exemples de cas pratiques : utilisation des paramètres de jobs, multi-configuration, passage de données entre jobs.
Pipelines
- Présentation de l’approche, bénéfices et cas d’usage
- Les syntaxes : déclarative ou de script
- Groovy et DSL
- Le fichier Jenkinsfile : pipeline-as-code
- Sections et étapes d’un pipeline
- Créer et exécuter un pipeline
- Paralléliser des tâches
- Modifier et rejouer un pipeline
- Gérer les erreurs
- Utiliser des images Docker comme environnement d’exécution pour un pipeline
- Introduction aux librairies partagées
- Exemples de cas pratiques : création de pipelines avec l’éditeur Blue Ocean, utilisation de la syntaxe déclarative ou de script, mise en place de tâches parallèles, exécution avec Docker, modification de pipelines.
Administration Jenkins : sécurité, monitoring, sauvegarde…
- Activer la sécurité dans Jenkins
- Les différents niveaux d’authentification
- Gérer les accès et identifiants
- Surveiller les jobs et projets, gestion de l’espace disque et de la charge CPU
- Organiser son monitoring (Views, le plugin Folders, favoris et Search)
- Sauvegarder la configuration
- Jenkins CLI et REST API
- Exemples de cas pratiques : mise en œuvre des meilleures pratiques de sécurité, comparaison des possibilités de monitoring depuis le tableau de bord Jenkins et depuis Blue Ocean, sauvegarde et restauration, automatisation de tâches en ligne de commande ou avec l’API REST.