L’intégration continue est un des aspects essentiels des Méthodes Agiles. Elle vise à garantir la qualité et la fluidité du cycle de développement ainsi que le déploiement des nouvelles releases. Cette formation présente les bonnes pratiques et techniques associées pour la mettre en œuvre.

Description

Durée : 28 heures
Modalités techniques d’évaluation : Évaluation des connaissances par QCM, évaluation des compétences au travers de travaux pratiques et de cas d’études. Contrôle de l’acquisition des connaissances et des compétences pendant la formation par le formateur.
Moyens pédagogiques : Apports théoriques réalisés en classe et complétés par de nombreux travaux pratiques permettent aux participants de disposer d’une expérience concrète. A l’issue des sessions magistrales, réalisation de cas d’études tutorés.

Objectifs pédagogiques

À l’issue de la formation, le participant sera en mesure de :

  • Comprendre les composantes et les principes de l’intégration continue
  • Manipuler un gestionnaire de contrôle des versions
  • Comprendre les mécanismes de la construction du logiciel et les outils de Build associés
  • Configurer un projet sur un serveur d’intégration continue
  • Déchiffrer les principaux métriques d’outils d’analyse de code
  • Appréhender le rôle des dépôts d’artefacts et la gestion des configurations
PROGRAMME DE FORMATION

Introduction

  • Les différents types d’environnement : développement, recette, production.
  • La gestion des configurations : système et applicative.
  • Le rôle des conteneurs applicatifs : Docker.
  • Centralisation des configurations : puppet, Ansible.
  • Industrialisation des déploiements.
  • Mettre en place une plateforme d’intégration continue.

Gestion des versions

  • Les fonctionnalités.
  • Les différents gestionnaires de sources : centralisée ou distribuée.
  • Les problématiques d’intégration des changements.
  • Le rôle des branches et tags.

Travaux pratiques
Manipulation d’un dépôt Git.

Automatisation des Builds

  • Qu’est-ce que la construction du logiciel ?
  • Les Builds, cycle de vie de projet.
  • Les outils de Build avec Maven.
  • Plug-ins, profils et modules.

Travaux pratiques
Mise en place de la construction d’un projet simple (Maven).

Gestion des dépôts

  • Rôles des gestionnaires de dépôts.
  • Les types de dépôts : public, interne.
  • La gestion des livrables (artfacts): releases, snapshots, déploiement.
  • Organisation des dépôts : développement, test, production.
  • Intégration des gestionnaires des dépôts avec les outils de Build, avec les outils de gestion des taches.
  • Exemples de solutions : Nexus, Artifactory…

Travaux pratiques
Publication d’artefacts dans Nexus.

Automatisation des tests

  • Quels tests et pour faire quoi ?
  • Les environnements de tests.
  • Présentation d’outils de test.
  • La mise en œuvre de l’automatisation des tests.

Travaux pratiques
Mise en place de tests automatisés avec JUnit.

Serveur d’intégration continue

  • Le rôle du serveur d’intégration continue.
  • Les grandes fonctionnalités.
  • La gestion des tâches (job).
  • La dépendance entre tâches.
  • Les serveurs : Hudson/Jenkins, CruiseControle, Bamboo…

Travaux pratiques
Configuration du projet sur un serveur d’intégration continue Jenkins.

Mise en place de métriques

  • La génération de rapports.
  • Les outils d’analyse et de reporting (PMD, Findbugs, Cobertura, Emma, Checkstyle…).
  • La publication des résultats.

Travaux pratiques
Mise en place des outils de métriques.

Gestion du feedback

  • La gestion d’un cycle complet.
  • La traçabilité des changements.

Travaux pratiques
Utilisation de Sonar.