Share
Embed
Les nouveaux défis de l'intégration continue
Jérôme Van Der Linden
July 02, 2009
Transcript
43 slides
-
Les nouveaux défis de l’Intégration Continue Jérôme Van Der Linden
Philippe Guicheney -
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 -
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 -
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 € » -
Gains constatés © OCTO Technology -‐ Université du Système
d’Informa>on 6 -
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 -
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 -
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 -
Gains constatés : Qualité © OCTO Technology -‐ Université
du Système d’Informa>on 10 -
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 ? -
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 -
Problèmes de performance Build Build Build Build
... ... Serveur d’intégra?on con?nue Build Build Build Local Ges?onnaire de sources :-‐( :-‐( :-‐( -
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 -
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 -
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 -
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 -
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) -
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 ! -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
L’IC & les équipes Offshore Sources, docs, indicateurs
, … Partagés ! Serveur(s) d’intégra?on Con?nue Ges?onnaire de sources -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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