49
Principes d'intégration continue Dimitri BAELI VP Quality at eXo Platform Octobre 2010

AT2010 Principes Integration Continue

Embed Size (px)

DESCRIPTION

Agile Tour Rouen 2010 Les principes de l'intégration continue par Dimitri Baeli

Citation preview

Page 1: AT2010 Principes Integration Continue

Principes d'intégration continue

Dimitri BAELIVP Quality at eXo Platform

Octobre 2010

Page 2: AT2010 Principes Integration Continue

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

De quoi on va parler ?

Page 4: AT2010 Principes Integration Continue

Source Green Pepper

Build & Packaging

Page 5: AT2010 Principes Integration Continue

Les Fondamentaux

Le « Joel Test » La qualité

L’agilité En continu !

Page 6: AT2010 Principes Integration Continue

Les Fondamentaux

Le « Joel Test »

Page 7: AT2010 Principes Integration Continue

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

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

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

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

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

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

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

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

Les Fondamentaux

La qualité

1. Les niveaux de finition 2. La gestion du risque

Page 16: AT2010 Principes Integration Continue

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

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

Les Fondamentaux

L’agilité

1- Le manifeste agile

2- Les principes

3- Les pratiques

Page 19: AT2010 Principes Integration Continue

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

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

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

Les Fondamentaux

En continu !

Page 23: AT2010 Principes Integration Continue

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

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

Connaitre Partager

L’essentiel Prévenir

En continu !

Page 26: AT2010 Principes Integration Continue

Des questions avant de parler mise en oeuvre ?

Page 27: AT2010 Principes Integration Continue

La Chaine d’intégration continue

Le cycle de build

La chaine d’intégration

Le minimum vital

Page 28: AT2010 Principes Integration Continue

La Chaine d’intégration continue

La chaine d’intégration

Page 29: AT2010 Principes Integration Continue

Chaine d’intégration

Source Vincent Massol - Pivolis 2004

Page 30: AT2010 Principes Integration Continue

La Chaine d’intégration continue

Le cycle de build

Page 31: AT2010 Principes Integration Continue

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

La Chaine d’intégration continue

Des exemples

Le strict minimum

Exemple PME

Exemple Editeur

Page 33: AT2010 Principes Integration Continue

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

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

• 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

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

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

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

Exemple Editeur

Hudson - eXo - 20100923

Page 40: AT2010 Principes Integration Continue

Exemple Editeur

Hudson - eXo - 20100923

Page 41: AT2010 Principes Integration Continue

Mise en oeuvreOutils de build Outils de test

Usines Logicielles Coups de coeur

Outils de build

Page 42: AT2010 Principes Integration Continue

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

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

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

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

La platform de build sur le nuage- DEV@Cloud- RUN@Cloud

http://www.cloudbees.com

Coups de coeur

Page 47: AT2010 Principes Integration Continue

o Tests fonctionnels exécutables

Coups de coeur

http://www.greenpeppersoftware.com

Page 48: AT2010 Principes Integration Continue

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

MerciEt à bientôt !