Jenkins, intégration continue

Mettre en place un environnement d'intégration continue pour ses projets Java avec Jenkins

  • Filière :

    DevOps & Infrastructure

  • Sous-filière :

    CI/CD

  • Référence

    JENK01

  • Durée

    2 jours (14 h)

  • Prix unitaire HT

    1 390 € HT

Description

Jenkins (anciennement Hudson) est un serveur Open Source d’intégration continue permettant d’automatiser les tâches de build et de déploiement. Sans aucune intervention, les travaux publiés dans l’outil de gestion de configuration (SVN ou autres) sont automatiquement testés, audités et déployés sur une plateforme d’intégration ou même de production. En temps réel, l’équipe agile étendue dispose d’une plateforme d’intégration et peut visualiser tous les métriques du projet (résultats des tests, qualité de code, etc.). La productivité globale de l’équipe est fortement accrue. Le serveur d’intégration continue constitue la fondation de l’approche DevOps et du développement agile

Objectifs pédagogiques

  • Implémenter un environnement d’intégration continue dans leur société
  • Mettre en place un serveur Hudson automatisant les build, les tests, les audits de code  et les déploiements sur une plate-forme d’intégration
  • Intégrer Hudson avec les autres outils de leur environnement (SCM, Gestionnaire de tickets, …)

Public cible

Développeurs, Chefs de projet

Pré-requis

Connaissance du langage JAVA et notions du cycle de développement

Modalités d’évaluation

L’évaluation des acquis se fait tout au long de la session au travers d’ateliers de mise en pratique des notions et concepts abordés pendant la formation.

Méthodes pédagogiques

50% Théorie / 50% Pratique

Programme de la formation

Introduction à l’intégration continue

  • Principes de l’intégration continue
  • Développement agile et intégration continue
  • Pré-requis à l’intégration continue
  • Techniques de développement adaptées à l’intégration continue
  • Différents types de  tests et d’audit d’une application
  • Cycle de vie du processus de développement
  • Outils annexes et intégration

Mise en place et automatisation du build

  • L’offre Jenkins/Hudson. Notion de job, de workspace, 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
  • Automatisation des tâches avec CLI ou l’API Rest

Travaux Pratiques

Installation de Jenkins, Configuration Git, Java, Maven. Mise en place de build Maven

Tests et métriques d’un projet

  • Automatisation des tests unitaires et d’intégration
  • Mise en place de jobs chaînés
  • Configuration des rapports
  • Mesurer la couverture de test
  • Automatisation des tests d’acceptance
  • Automatisation des tests de performance
  • Intégration de la qualité dans le processus de build
  • Outils d’analyse disponibles : Checkstyle, FindBugs, CPD/PMD, Sonar
  • Configuration du rapport qualité avec le plugin Violations

Travaux Pratiques

Installation de différents plugins, exécution de cibles Maven orientées tests, publication des résultats dans Jenkins

Mise en place de pipeline

  • Définition et objectifs d’un pipeline
  • Réutilisation d’artefacts, Interactions avec un dépôt d’artefact
  • Jobs paramétrés, réutilisation d’un commit
  • Job manuel dans un pipeline
  • Les plugins utiles (Dependency, Pipeline, Join)
  • Jobs multi-configuration

Travaux Pratiques

Enchaînement de builds, réutilisation d’un artefact, paramètre de commit

Architecture Maître Esclave

  • Accélération des tests et parallélisme
  • Notion de nœuds, d’exécuteurs
  • Typologie des nœuds, sélection des nœuds pour un job
  • Installation des outils pour un nœud
  • Création dynamique de nœuds, provisionnement
  • Jenkins et Docker
  • Surveillance des nœuds

Travaux Pratiques

Mise en place d’architecture maître/esclave, distribution de charge

Administration d’un serveur Jenkins

  • 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

Travaux Pratiques

Mise en place de la sécurité, sauvegarde et restauration

Qualité

Uniquement en INTRA, sur demande

Cette formation est accessible aux personnes en situation de handicap, nous contacter en cas de besoin d’informations complémentaires.

Programme mis à jour le