En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies pour vous proposer des services et offres adaptés à vos centres d’intérêts.
Pour en savoir plus et paramétrer les cookies, suivez ce lien
Développeur de compétences
  •  
  •  
  •  

CI/CD (CONTINUOUS INTEGRATION/CONTINUOUS DELIVERY)


  • Objectifs
  • Profils
  • Pré-requis
  • Moyens pédagogiques
  • Certificat / Attestation
  • Comprendre les fondamentaux et les enjeux de la mise en place de l'intégration au sein de ses projets afin d'améliorer la communication et la collaboration entre les différentes équipes
  • Savoir gérer les dépendances de construction de ses composants
  • Comprendre et résoudre les enjeux de traçabilité des objets construits
  • Connaître les principes et les bonnes pratiques dans la mise en place d'outils de métriques
  • Présentation des principes du Continuous Delivery
  • Comment mettre en place le Continuous Delivery dans un projet existant
  • Comment choisir les meilleurs outils
Trouvez votre prochaine formation

Programme

  • 3 Jours, 21h
  • 1995 HT *
    Comprendre les enjeux de l'intégration continue
    • Première approche et notion de processus d'intégration
    • Les apports de l'intégration continue et les risques réduits dans les équipes de développement
    • De quoi a t-on réellement besoin pour commencer une démarche d'intégration continue?

    Changement, déclenchement et processus d'intégration
    • Notion d’événement
    • Détail des différentes étapes d'un processus d'intégration
    • Les types de déclenchement du processus

    Automatisation de la construction
    • Les enjeux
    • Comparaison de l'utilisation des IDE et de l'intérêt d'un moteur d'intégration couplé à un script de construction
    • Comment démarrer son automatisation?
    • Sensibilisation au temps de construction globale d'une application
    • Validation et traçabilité de la chaîne de construction
    • Problématique de la reproductibilité
       

    La gestion des composants de son application
    • Problématique du découpage en composants de son application
    • Présentation des outils de gestion de dépendances
    • Les stratégies de l'enchainement de la construction des composants
       

    Communication avec un gestionnaire de sources
    • Les différents types de stratégie en fonction de l'outil SCM
    • Politique de branches par version vs politique de branches par fonctionnalité
    • Problématique de traçabilité
    • Exemple de mise en oeuvre avec le triplet Maven, Hudson/Jenkins et SVN
    • Exemple de mise en oeuvre avec le triplet Maven, Hudson/Jenkins et GIT
    • Etude du cas particulier : le mécanisme de livraison (release) de Maven
       


    Introduction au serveur d'intégration continue Jenkins
    • Historique et positionnement vis à vis de la concurrence
    • Panorama des fonctionnalités
    • Les plugins les plus utilisés
    • Installation, configuration et les pièges à éviter
    • Première mise en oeuvre avec un projet Maven

    Gestion des livrables
    • Stratégie de mise à disposition du résultat construit
    • Notion de dépôt d'artefacts
    • Spectre des principaux outils de gestion de dépôt d'artefacts: Nexus, Artifactory et Archiva
    • Problématique de traçabilité du résultat et des informations de build

    Les tests dans le processus de construction
    • Intérêts de l'automatisation des tests
    • Concepts de « l'extreme Programming »
    • Principes des « TestDriven Development »
    • Présentations des familles de tests
    • Tests unitaires, tests d'intégrations et tests fonctionnels
    • Exemple de test d'une application Web avec Selenium

    Qualité de code et traitement des résultats
    • Apports de la mise en place d'outils de métriques
    • Les principaux outils de métriques Java: de la génération de la documentation à la couverture de code en passant par la détection de bugs
    • Exemple du site Maven
    • Installation et configuration de Sonar
    • Mise en oeuvre d'une qualimétrie avec Sonar pour un projet Maven et un projet Ant/Ivy
    • Publication des résultats dans le serveur Hudson/Jenkins à travers ses plugins
    • Les bonnes pratiques d’utilisation

    Communication
    • Indicateurs de visibilité du résultat construit
    • Statut, Santé et tendance
    • Savoir réagir
    • Communication avec des outils externes
    • Notification par email et flux RSS

    Concepts et enjeux
    • Les problématiques de la livraison logicielle (Déploiement manuel, Déploiement dans un environnement différent, configuration manuelle, etc)
    • Qui est concerné?
    • Définition du procesus et l’amélioration de la chaîne de valeur
    • Les bénéfices
    • Mesurer son niveau de maturité et se fixer des objets par palier

    La gestion de configuration
    • L’usage d’un outil de gestion de source
    • La gestion des dépendances (internes et externes)
    • La gestion de la configuration logicielle
    • La gestion des spécificités des différents environnements

    «Continuous Integration» première étape du «Continuous Delivery»
    • Rappel des principes et enjeux de l’intégration continue
    • Liaison entre l’outil de gestion de sources, le build, les tests, le déploiement et la livraison
    • Rappel des meilleures pratiques (TDD, Pre tested commit, etc)

    Continuous Delivery & Continuous Deployment
    • Les différences  impacts (versionning, markering des nouvelles versions, etc)
    • Les cas d’usage et exemples concrets

    Chaîne (Pipeline) de déploiement
    • Les principales étapes
    • Mise en oeuvre
    • Le rôle d’un serveur d’intégration continue comme orchestrateur de déploiement
    • Les critères de validation
    • Illustration avec Jenkins
       

    L'importance des tests
    • Rappel des différents types de tests
    • Les éléments d’automatisation des tests
    • Gestion des tests non automatisés
    • La notion d’environnement de pré-production
       

    Déploiement et Livraison Logicielle
    • Les stratégies de livraisons (release) et utilisation de la notion de promotion logicielle
    • Illustration de la mise en oeuvre d’un projet avec Maven et GIT
    • Les différentes stratégies de déploiement (blue-green deploymen, canary release, etc)
       

    Gestion des infrastructures et des environnements
    • Comprendre le besoin des équipes opérationnelles
    • Gestion du provising de serveurs et de la configuration
    • Présentation des outils Puppet et Ansible
    • Cas de la virtualisation
    • Le monitoring
    • Cas de l’utilisation de Docker
       

    Gestion des données
    • Exemple d’une application avec une base de données relationnelle
    • Les problématiques de la montée de versions du schéma de base
    • Présentation des outils Flyway et Liquibase; et cas d’utilisation

* La durée et le prix de la formation sont donnés à titre indicatif pour une inscription en inter-entreprises. Toute demande intra-entreprise fait systématiquement l’objet d’un devis sur-mesure devant être approuvé pour acceptation.