Upload
normandy-jug
View
761
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Agile Tour Rouen 2010 Les principes de l'intégration continue par Dimitri Baeli
Citation preview
Principes d'intégration continue
Dimitri BAELIVP Quality at eXo Platform
Octobre 2010
Dimitri BAELIEnterprise
Scrum Master
VP Quality
Support Level 3
eXo Platform
Organisation des développements
SysAdmins Teams
Release Process
Ensimag 98
QA Teams
De quoi on va parler ?
Source Green Pepper
Build & Packaging
Les Fondamentaux
Le « Joel Test » La qualité
L’agilité En continu !
Les Fondamentaux
Le « Joel Test »
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 ?
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 !
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 ?
Joel Test
RéférentielGestion des conflitsHistoriqueReproductibilitéTraçabilitéVisibilité (Fisheye, SVNSearch)
Outils : SVN, Mercurial, VSS
1- Un gestionnaire de sources
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
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 !
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é
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 !
Les Fondamentaux
La qualité
1. Les niveaux de finition 2. La gestion du risque
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
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
Les Fondamentaux
L’agilité
1- Le manifeste agile
2- Les principes
3- Les pratiques
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
L'agilité
– Livraison fréquentes– Cycles courts– Une Equipe– Rythme soutenable– Produit en état de marche en continu
Les principes
Du bon sens !
L'agilité
– Test Driven Developpement– Pair Programming– Spécifications exécutables– Démonstration par les développeurs
3- Les pratiques
Scrum - XP - Kanban - Lean
Les Fondamentaux
En continu !
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 !
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é
Connaitre Partager
L’essentiel Prévenir
En continu !
Des questions avant de parler mise en oeuvre ?
La Chaine d’intégration continue
Le cycle de build
La chaine d’intégration
Le minimum vital
La Chaine d’intégration continue
La chaine d’intégration
Chaine d’intégration
Source Vincent Massol - Pivolis 2004
La Chaine d’intégration continue
Le cycle de build
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
La Chaine d’intégration continue
Des exemples
Le strict minimum
Exemple PME
Exemple Editeur
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
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
• 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 !
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
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
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 !
Exemple Editeur
Hudson - eXo - 20100923
Exemple Editeur
Hudson - eXo - 20100923
Mise en oeuvreOutils de build Outils de test
Usines Logicielles Coups de coeur
Outils de build
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
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
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
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
La platform de build sur le nuage- DEV@Cloud- RUN@Cloud
http://www.cloudbees.com
Coups de coeur
o Tests fonctionnels exécutables
Coups de coeur
http://www.greenpeppersoftware.com
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)
MerciEt à bientôt !