at2010 principes integration continue
DESCRIPTION
Agile Tour Rouen 2010 Les principes de l'intégration continue par Dimitri BaeliTRANSCRIPT
![Page 1: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/1.jpg)
Principes d'intégration continue
Dimitri BAELIVP Quality at eXo Platform
Octobre 2010
![Page 2: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/2.jpg)
Dimitri BAELIEnterprise
Scrum Master
VP Quality
Support Level 3
eXo Platform
Organisation des développements
SysAdmins Teams
Release Process
Ensimag 98
QA Teams
![Page 3: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/3.jpg)
De quoi on va parler ?
![Page 4: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/4.jpg)
Source Green Pepper
Build & Packaging
![Page 5: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/5.jpg)
Les Fondamentaux
Le « Joel Test » La qualité
L’agilité En continu !
![Page 6: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/6.jpg)
Les Fondamentaux
Le « Joel Test »
![Page 7: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/7.jpg)
Le Joel Test
1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ? 7- Avez-vous des spécifications ? 8- Vos développeurs sont-ils dans un lieu calme ? 9- Avez-vous les meilleurs outils lié à votre budget ? 10- Avez-vous des testeurs ? 11- Les candidats écrive du code ? 12- Les développeurs font-ils faire des tests par des passants ?
![Page 8: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/8.jpg)
Et équipe qui ne fournit pas un niveau de qualité consistant
Le Joel Test
Si vous avez moins de 10 au Test de Joel
Vous avez de sérieux problèmes !
![Page 9: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/9.jpg)
Le Joel Test
1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ? 7- Avez-vous des spécifications ? 8- Vos développeurs sont-ils dans un lieu calme ? 9- Avez-vous les meilleurs outils lié à votre budget ? 10- Avez-vous des testeurs ? 11- Les candidats écrive du code ? 12- Les développeurs font-ils faire des tests par des passants ?
![Page 10: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/10.jpg)
Joel Test
RéférentielGestion des conflitsHistoriqueReproductibilitéTraçabilitéVisibilité (Fisheye, SVNSearch)
Outils : SVN, Mercurial, VSS
1- Un gestionnaire de sources
![Page 11: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/11.jpg)
Joel Test
Sinon Il est source d'erreursSinon il est joué moins souventSinon il dépend de certaines personnesSinon les risques d’échec augmentent à l'approche de la livraisonMais Il faut aller du début à jusqu'au bout !
Outils de build : Maven, Ant, NAnt
2 - Assemblage en une étape
![Page 12: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/12.jpg)
Joel Test
3 - L’assemblage quotidien
Usine de build : Cron, CruiseControl(.net), Hudson, Bambou, ...
Un nouveau jour se lèvePrévenir plutôt que guérirObjectivité (« ça marche chez moi ! »)Donner confiancePrise de conscience de l'impact d'un commitEt les tests !
![Page 13: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/13.jpg)
Joel Test
9- Vous n’avez pas les meilleurs outils que vous puissiez vous payer ?
De gratuit à très cherAdaptés ou non ?Modernes ou historiques ?Maitrisé par vos équipes ? Il en existe beaucoup ! De gratuit ou très cherSimples ou trop compliqué
![Page 14: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/14.jpg)
Joel Test
9- Les meilleurs outils possible
3 - Assemblage quotidien
2 - Assemblage en une étape
1- Un gestionnaire de sources
4 points de gagnés !
![Page 15: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/15.jpg)
Les Fondamentaux
La qualité
1. Les niveaux de finition 2. La gestion du risque
![Page 16: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/16.jpg)
La qualité
– Niveau 0: Prototype / Coin de table : l'idée– Niveau 1: Binaire interne : l'équipe– Niveau 2: Diffusion publique non supportée– Niveau 3: Support en production
Les niveaux de finition
![Page 17: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/17.jpg)
La qualité
– Niveau 0 - Prototype : A chaque grand changement– Niveau 1 - Equipe : Régulièrement– Niveau 2 - Diffusable : 1 ou 2 jours à chaque Jalon– Niveau 3 - Production : Bientôt !
Combien de temps votre dernier livrable à passé dans chaque niveau ?
Les niveaux de finition
![Page 18: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/18.jpg)
Les Fondamentaux
L’agilité
1- Le manifeste agile
2- Les principes
3- Les pratiques
![Page 19: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/19.jpg)
L'agilité
– Collaboration avec le client – Un produit opérationnel– La réactivité face au changement – Des hommes plutôt que des processus
Le manifeste agile
Prendre du plaisir à développer
![Page 20: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/20.jpg)
L'agilité
– Livraison fréquentes– Cycles courts– Une Equipe– Rythme soutenable– Produit en état de marche en continu
Les principes
Du bon sens !
![Page 21: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/21.jpg)
L'agilité
– Test Driven Developpement– Pair Programming– Spécifications exécutables– Démonstration par les développeurs
3- Les pratiques
Scrum - XP - Kanban - Lean
![Page 22: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/22.jpg)
Les Fondamentaux
En continu !
![Page 23: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/23.jpg)
Connaître la qualité des livrableso En toute indépendanceo De façon reproductibleo Sur tous les environnementso En permanence
Prévenir les erreurso Uniquement les vraies erreurso Compréhensibleso Rapidement
En continu !
![Page 24: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/24.jpg)
En continu
Partager un état communo En équipeo Ecrire des tests probantso Commit atomique (un seul sujet)o Régler les problèmes sur le champo Commit fréquent
L'essentiel c’esto La livraison du produit qui marcheo Satisfaire le cliento Avec de la productivité
![Page 25: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/25.jpg)
Connaitre Partager
L’essentiel Prévenir
En continu !
![Page 26: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/26.jpg)
Des questions avant de parler mise en oeuvre ?
![Page 27: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/27.jpg)
La Chaine d’intégration continue
Le cycle de build
La chaine d’intégration
Le minimum vital
![Page 28: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/28.jpg)
La Chaine d’intégration continue
La chaine d’intégration
![Page 29: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/29.jpg)
Chaine d’intégration
Source Vincent Massol - Pivolis 2004
![Page 30: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/30.jpg)
La Chaine d’intégration continue
Le cycle de build
![Page 31: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/31.jpg)
Cycle de build
1. Récupération des sources2. Récupération des binaires tiers3. Compilation 4. Tests unitaires5. Analyse Qualité du code6. Tests de Déploiement / Smoke Test7. Tests d'intégration8. Génération de la Documentation9. Packaging10. Test d'installation11. Publication des binaires12. Notification du résultat
![Page 32: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/32.jpg)
La Chaine d’intégration continue
Des exemples
Le strict minimum
Exemple PME
Exemple Editeur
![Page 33: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/33.jpg)
Le minimum
• 1 Machine isolée• 1 Accès automatique aux sources• 1 Environnement de compilation propre• 1 Environnement d'exécution vièrge• 1 Build automatisé (script)• 1 Lieu de publication et mails des personnes concernées
• … Et de l'huile de coude
Le strict minimum
![Page 34: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/34.jpg)
PME
o Équipe de 4 développeurs/euseso 1 PC a 300€
Exemple PME
• SVNo Historique sources
• Maven2o Build sourceo Gestion (versionnée)
des dépendances• Continuum
o Build Automatiqueo Tests unitaires
• ArtiFactoryo Repository Maven2
• Sonaro Qualité code
![Page 35: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/35.jpg)
• Ressources :o Installer le serveur
Compétences Linuxo Installer les applicatifs
Compétences Java/Linuxo Paramétrer les applicatifso Affiner les réflexions
Coût • 300€ (pc tour)• 5 jours travail
PME
Exemple PME
Bravo Laurent !
![Page 36: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/36.jpg)
eXo Platform
eXo Platform : o 100+ devs sur 4 pays: Vietnam, Ukraine, France, Tunisieo Méthodologie Agile : Scrumo 16+ equipeso 6 Projets Open Source sur 4 Niveaux
o eXo JCRo eXo Portal : GateIn en co-développement avec JBoss (10p)o eXo Content : WCM + DMS + Workflowo eXo Collaboration, eXo Knowledge, eXo Social, xCMIS, eXo IDE
o 1 produit = eXo Platform 3.0.0
Exemple Editeur
![Page 37: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/37.jpg)
eXo Platform
o Environnements cible :o 3 AS = JBoss, Tomcat, Weblogico 2 OS = Windows, RHELo 3DB = MySQL, Oracle, o 3 Navigateurs = Chrome, FF, IE7
=> 300+ configurationso Code : Java, Xml, Html, JavaScript, iPhoneo IDE : Eclipse, Intellij Ideao Source : Svn, GoogleCode, JBoss.org
Exemple Editeur
![Page 38: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/38.jpg)
o Build : Maven + Extensionso 200+ projets de build
o Usine : o Hudson : http://builder.exoplatform.orgo Sonar (en test) : http://sonar.exoplatform.org
o Management : o Jira : http://jira.exoplatform.orgo Fisheye + Crucible : http://fisheye.exoplatform.org
o Serveurs sur Amazon EC2 (mode hébergé) !
Exemple Editeur
Bravo Arnaud !
![Page 39: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/39.jpg)
Exemple Editeur
Hudson - eXo - 20100923
![Page 40: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/40.jpg)
Exemple Editeur
Hudson - eXo - 20100923
![Page 41: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/41.jpg)
Mise en oeuvreOutils de build Outils de test
Usines Logicielles Coups de coeur
Outils de build
![Page 42: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/42.jpg)
Build
• Scripting:• Ant, Nant, Ivy• Maven2, Maven3, NMaven• Gradle• PlayFramework! (c'est embarqué)
• Gestion des binaires (dépendances):• Nexus• Artifactory• Apache, Svn, Ftp !
Outils de build
![Page 43: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/43.jpg)
Testing
- Unitaire: JUnit, TestNG, Nunit- Calcul de couverture : Covertura, Emma- Graphique: Selenium, Abbot- Performances: JMeter, SoapUI, LoadRunner, ...- Analyse de code: FindBug, CheckStyle, - Tests Fonctionnels exécutables:
- FitNess, GreenPepper
Outils de test
![Page 44: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/44.jpg)
Usines
Le précurseur : Cruise Control
Choisir une usine :
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix
Les usines modernes : TeamCity : bonheur du développeur Bamboo : complet et reporting Hudson : simple et efficace Cruise : l'intellectuel
Usines Logicielles
![Page 45: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/45.jpg)
o Analyse du codeo Une plateforme de gestion de la qualitéo Suivi des règles de développemento Suggestion d'action
Coups de coeur
http://nemo.sonar.codehaus.org - Qualité du code de Maven 3.0
La dette technique sous surveillance
http://www.sonarsource.org
![Page 46: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/46.jpg)
La platform de build sur le nuage- DEV@Cloud- RUN@Cloud
http://www.cloudbees.com
Coups de coeur
![Page 47: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/47.jpg)
o Tests fonctionnels exécutables
Coups de coeur
http://www.greenpeppersoftware.com
![Page 48: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/48.jpg)
Bibliographie
- Martin Fowlerhttp://martinfowler.com/articles/continuousIntegration.html
- Joel on softwarehttp://french.joelonsoftware.com/Articles/TheJoelTest.html
- Manifeste Agilehttp://fr.wikipedia.org/wiki/Manifeste_agile
Merci à :- Vincent Massol (PMD Maven, Maitre en Enterprise Build)
- Arnaud Héritier (PMD Maven, Maitre en Hudson, Confluence, Jira)
- Kohsuke Kawaguchi (pour l’invention d’hudson)
![Page 49: AT2010 Principes Integration Continue](https://reader033.vdocuments.us/reader033/viewer/2022052619/5560b5a8d8b42af43b8b4993/html5/thumbnails/49.jpg)
MerciEt à bientôt !