Description de la formation Jenkins
Jenkins est un serveur Open Source d’intégration continue permettant d’automatiser les tâches de build, tests, déploiement, production de release. Sans aucune intervention, les travaux validés dans l’outil de gestion de configuration (Git, SVN ou autres) sont automatiquement testés, audités et déployés sur les plateformes d’intégration ou même de production.
En temps réel, l’équipe agile étendue peut alors visualiser toutes les métriques du projet pour chaque branche et commit (résultats des tests, qualité de code, etc.). La productivité globale de l’équipe s’en montre fortement accrue. Le serveur d’intégration continue, tel que Jenkins, est une brique essentielle de l’approche DevOps et du développement agile.
Objectifs
Objectif opérationnel :
Savoir installer, configurer et dimensionner un serveur Jenkins.
Objectifs pédagogiques :
Concrètement, à l’issue de cette formation Jenkins, vous aurez acquis les connaissances et compétences nécessaires pour :
- Comprendre les principes et les bénéfices de l’intégration continue
- Savoir installer, configurer et dimensionner un serveur Jenkins
- Être capable d’intégrer Jenkins avec d’autres outils (SCMs, Sonar, Nexus, Gestionnaire de tickets, Docker)
- Savoir définir des pipelines d’intégration ou de déploiement continue via l’interface Jenkins et via des scripts Pipelines
- Comprendre comment exploiter un serveur Jenkins
- Savoir utiliser l’API Rest et la CLI de Jenkins pour automatiser les builds
- Savoir automatiser les tests et les audits de code
- Être capable d’automatiser et de déployer Jenkins sur un projet
À qui s’adresse cette formation ?
Public :
Ce cours Jenkins s’adresse à des développeurs, architectes et ingénieurs désireux de mettre en place un environnement d’intégration et de déploiement continus pour leurs projets.
Prérequis :
Les participants possèdent nécessairement des notions du système et du cycle de développement d’un logiciel. Une expérience collaborative de développement (idéalement en Java) est recommandée pour avoir une bonne vision d’ensemble des différents rôles et implications des acteurs du projet. Si elle est éloignée du développement, cette participation en équipe à un projet doit au moins s’être inscrite dans une démarche agile.
Contenu du cours Jenkins
Jour 1
Introduction à l’intégration et au déploiement continus (Concepts Clés)
Les méthodes agiles et la transition DevOps
Cycle de vie du code jusqu’à la production
Intégration, Livraison, déploiement continus
Le rôle du SCM, utilisation des branches
Typologies des tests et des analyses statiques, positionnement dans les pipelines CI/CD
Automatisation des déploiement : Problématique de provisionnement et outils d’IaaC
Déployer Jenkins dans un projet
Mise en place du serveur Jenkins (Jenkins usage CJE)
L’offre Jenkins/Hudson. Notion de job, de workspace, graphes de tendance
L’interface Web
Mise en place du serveur, les différents types d’installation
Structure du JENKINS_HOME
Configuration générale, configuration des outils,
Les plugins Jenkins, configuration, documentationTravaux pratiquesInstallation de Jenkins en service, Configuration Git, Java, Maven. Mise en place de build Maven
Intégration Jenkins (Jenkins usage CJE)
Intégration SCM et WebHooks
Intégration avec les outils de gestion de tickets
Intégration Outils de Test (unitaires, intégration, fonctionnel, performance)
Intégration de la qualité avec SonarQube, intégrer les rapports des audits qualité
Intégration Repository d’artefact, Registres Docker
Notification de l’équipe, les différentes solutionsTravaux pratiquesIntégrations avec dépôt Gitlab, avec Jira, publication des rapports de tests et d’analyse Sonar, intégration NexusJour 2
Architecture Maître Esclave (Best Practices CJE)
Architecture maître esclave, les différents types d’agents
Provisionnement des agents et pré-installation d’outil, classification par labels
Agent sur le cloud, agents Docker
Dimensionnement des nœuds maîtres et des agents
Architecture HA avec CloudBees EnterpriseTravaux pratiquesMise en place d’agent SSH, Windows et JNLP, Utilisation d’agent docker
Les Pipelines (Building Continuous Delivery Pipelines CJE)
Concepts de pipeline, phases et promotions
Relation amont/aval entre jobs, Passage de paramètres, Copy d’artefacts
Plugins de synchronisation de jobs, Join Plugin, Dependency Plugin, Pipeline View
Le plugin Pipeline, Le système d’aide intégré, la documentation
Distinction de 2 syntaxes disponibles, Rappels sur Groovy
Syntaxe déclarative, les différentes directives
Construction pour la syntaxe script
Utilisation de Docker
Les librairies partagéesTravaux pratiquesPlusieurs travaux pratiques progressifs ayant pour but de mettre en place un pipeline typique de livraison continue sur une infrastructure docker incluant les phases de compilation, test, métriques qualités, déploiement en intégration et approbation manuelle
Exploitation d’un serveur Jenkins (Jenkins Usage CJE)
Activation de la sécurité, alternatives pour la gestion des utilisateurs
Gestion des autorisations et des rôles
Journalisation des actions utilisateur
Gestion de l’espace disque Monitoring de la charge CPU
Sauvegarde de la configuration
Automatisation des tâches avec CLI ou l’API RestTravaux pratiquesMise en place de la sécurité, sauvegarde et restauration