Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Les nouveaux défis de l'intégration continue

Les nouveaux défis de l'intégration continue

Jérôme Van Der Linden

July 02, 2009
Tweet

More Decks by Jérôme Van Der Linden

Other Decks in Technology

Transcript

  1. Plan Quelques rappels Défi #0 : La qualité de service,

    un pré-requis ! Défi #1 : Booster les performances Défi #2 : Gérer les déclinaisons d’une application Défi #3 : Les équipes Offshore Défi #4 : Eviter l’instabilité du build Et après ? ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   2  
  2. Build Vérifier  la  qualité     du    code  

    Compiler   Récupérer     les  dépendances   Déployer   Documenter   Exécuter  les  tests   Packager   L’intégration continue en images ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   4   Référen?el   binaires   Référen?el  de  tâches     et  anomalies   Plateforme   de  tests   Documenta?on   &  Indicateurs   No?fica?ons   Serveur   d’intégra?on   con?nue   Build   Ges?onnaire     de  sources   Build   Local  
  3. Pourquoi faire de l’intégration continue ? Plus un défaut est

    détecté tard… …plus il coûte cher à corriger. ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   5   € »
  4. Gains constatés : productivité •  La « phase d’intégration »

    n’existe plus ! •  Cercle vertueux de la productivité : ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   7   Anomalies détectées plus tôt Anomalies plus simples à corriger Plus de temps pour développer et tester
  5. Gains constatés : dynamique d’équipe •  Création d’un rituel autour

    de l’usine –  « Celui qui fait échouer le build paye les croissants » •  Responsabilisation des développeurs •  Alignement de l’équipe sur la qualité du code ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   8  
  6. Gains constatés : Qualité •  Pas de tâche manuelle =

    moins de risque •  Vérification en continu de la non régression –  Tests, couverture, … •  Analyse automatique de la qualité du code ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   9  
  7. Qualité de service : le défi ? ©  OCTO  Technology

     -­‐    Université  du  Système   d’Informa>on   12   Objectif Répondre à toutes ces questions A  quoi  ca  sert   l’intégra1on   con1nue  ?   L’IC  est  encore  plantée   @          #M  !!!   T’as  rebooté  ton   poste  ?     Comment   puis-­‐je  ajouter   un  job  ?  
  8. La Qualité de service : un pré-requis •  Une infrastructure

    de Production à Performance, fiabilité, disponibilité maximale •  Et des personnes dédiées –  Mails de sensibilisation, Guides, Formations 1-3j –  Expertise et support à Confiance, maximisation de l’usage ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   13  
  9. Problèmes de performance Build   Build   Build   Build

      ... ... Serveur   d’intégra?on   con?nue   Build   Build   Build   Local   Ges?onnaire     de  sources   :-­‐(   :-­‐(   :-­‐(  
  10.     Les performances: le défi ? ©  OCTO  Technology

     -­‐    Université  du  Système   d’Informa>on   16   •  Toujours plus –  de code à traiter –  de tests à exécuter –  de projets à gérer •  Tout le monde veux tout… tout de suite ! Objectif Garantir un retour rapide aux développeurs
  11. Build profilé Ges?onnaire     de  sources   Serveur  

    d’intégra?on   con?nue   Build  rapide  :  tests  unitaires   ... Build  documenta?on   Build  tests  intégra?on   Build  qualimétrie   ... Build  packaging   Build  complet   Toutes  les...   10  min   A  la     demande   nuits   4  h   nuits   A  la     demande   Build   Local  
  12. Build profilé : gain de performance ©  OCTO  Technology  -­‐

       Université  du  Système   d’Informa>on   18   Pour chaque besoin •  Un profil •  Une fréquence d’exécution
  13. Build distribué Serveur   d’intégra?on   Con?nue   Build  rapide

     :  tests  unitaires   Build  documenta?on   Build  tests  intégra?on   Build  qualimétrie   Build  complet   Build  packaging   Build   Local   Ges?onnaire     de  sources   10   240   ƒ   ƒ   N   N  
  14. Build distribué Serveur   d’intégra?on   Con?nue   Build  rapide

     :  tests  unitaires   Build  documenta?on   Build  tests  intégra?on   Build  qualimétrie   Build  complet   Build  packaging   Build   Local   Ges?onnaire     de  sources   10   240   ƒ   ƒ   N   N   Agent     Agent   (maître)  
  15. Build distribué : gain de performance ©  OCTO  Technology  -­‐

       Université  du  Système   d’Informa>on   21   Les agents : Les avantages d’un serveur unique ... sans les limites !
  16. Applications multi-tout : le défi ? ©  OCTO  Technology  -­‐

       Université  du  Système   d’Informa>on   23   •  Créer des déclinaisons différentes d’une application •  Tester sur des environnements différents Pro
  17. Build distribué & plateformes Serveur   d’intégra?on   Con?nue  

    (maître)   Build  tests  interface   Build  complet   Build   Local   Ges?onnaire     de  sources   Agent     Agent   Agent     Build  tests  interface  IE  6   Build  tests  interface  Chrome   Build  tests  interface  IE  7   Build  tests  interface  FF  
  18. Build distribué : les outils •  Serveurs d’Intégrations –  Hudson

    –  TeamCity € –  Bamboo € –  Pulse € –  CruiseControl –  Continuum –  QuickBuild € –  Team Fundation Server € –  LuntBuild ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   25  
  19. Build profilé & internationalisation Serveur   d’intégra?on   Con?nue  

    Build  tests  interface   Ges?onnaire     de  sources   Version  Anglaise   Build  tests  interface   Version  Française   Build  tests  interface   Version  Espagnole  
  20. Build profilé & internationalisation Serveur   d’intégra?on   Con?nue  

    Build  tests  interface   Ges?onnaire     de  sources   Version  Anglaise   Build  tests  interface   Version  Française   Build  tests  interface   Version  Espagnole  
  21. Build profilé : multi-tout ©  OCTO  Technology  -­‐    Université

     du  Système   d’Informa>on   28   Attention aux cas d’usage ! •  Tests multi-environnements : •  Déclinaisons différentes binaires différents
  22. Equipes Offshore : le défi ? ©  OCTO  Technology  -­‐

       Université  du  Système   d’Informa>on   30   •  Aligner les équipes sur un but et une feuille de route •  Partager des normes et standards •  Intégrer le code sans douleur •  Donner à tous les mêmes tableaux de bords
  23. L’IC & les équipes Offshore     Sources,  docs,  indicateurs

     ,  …   Partagés  !   Serveur(s)   d’intégra?on   Con?nue   Ges?onnaire     de  sources  
  24. Instabilité du build : le problème Serveur   d’intégra?on  

    Con?nue   Build   Récupérer     les  dépendances   Compiler   Exécuter  les  tests   Ges?onnaire     de  sources   Développeurs  
  25. Instabilité du build : le défi ? ©  OCTO  Technology

     -­‐    Université  du  Système   d’Informa>on   34   •  Conserver un référentiel de sources « propre » •  Empêcher un développeur de bloquer les autres •  Favoriser l’utilisation décomplexée du référentiel de sources Ges?onnaire     de  sources  
  26. Une solution : le build incassable Serveur   d’intégra?on  

    Con?nue   Ges?onnaire     de  sources   protégé   Développeurs   Build   Récupérer     les  dépendances   Compiler   Exécuter  les  tests  
  27. Build incassable : les outils ©  OCTO  Technology  -­‐  

     Université  du  Système   d’Informa>on   36   + + •  Serveur d’Intégration –  Hudson –  TeamCity € –  Bamboo € –  Pulse € –  CruiseControl –  Apache Continuum –  QuickBuild € –  Team Fundation Server € –  LuntBuild
  28. Autre solution : Le gestionnaire de sources décentralisé Ges?onnaire  de

     sources  Distribué   Branche  principale  protégée     Développeurs   Ges?onnaire  de  sources   Branches  individuelles   Serveur   d’intégra?on   Con?nue   Build   Récupérer     les  dépendances   Compiler   Exécuter  les  tests  
  29. Aller plus loin ?… Jusqu’en prod ! •  Tous les

    grands du Web le font déjà ! –  Déploiements en production en continu ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   39   •  Un exemple : –  6 fois / heure –  Vérifications 100% automatisées
  30. Aller plus loin ?… Sur le nuage ! •  Amazon

    EC2 –  Infrastructure déportée et extensible –  UDD java prête à l’usage –  Dernières versions des outils •  Hudson, Nexus, OpenJDK, Maven ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   40  
  31. Copyright •  Toutes les images sont la propriété exclusive de

    leurs auteurs respectifs. •  Images pays : © Ljin •  http://www.customxp.net/PngFactory/galerie-png-16409-Ljin.html •  Images navigateurs : –  Firefox : Benjigarner •  http://www.customxp.net/PngFactory/icone-png-7563-Firefox-Benjigarner.html –  IE 6 : © Microsoft –  IE 7 : © skorpiux •  http://www.customxp.net/PngFactory/icone-png-8642-Internet-Explorer-7-skorpiux.html –  Opera : © Acua0 •  http://www.customxp.net/PngFactory/icone-png-10849-Opera-9-AcuaO.html –  Chrome : © Maxime •  http://www.customxp.net/PngFactory/icone-png-13067-Google-Chrome-Maxime.html •  Nabaztag : © TPDK •  http://www.customxp.net/PngFactory/icone-png-5235-Nabaztag-02-TPDK.html •  Panneau Info : © UnLiMiTeD •  http://www.customxp.net/P •  Photo et logo IMVU : © IMVU •  Logos Google , ebay, Flikr aux compagnies respectives •  Logo Amazon et Amazon Web services : © Amazon •  Photos d’écrans Sonar, Eclipse, … aux auteurs des produits respectifs. •  Autres images et contenus : Octo Technology. ©  OCTO  Technology  -­‐    Université  du  Système   d’Informa>on   43