AT2010 Principes Integration Continue

Post on 24-May-2015

757 views 0 download

Tags:

description

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

Transcript of AT2010 Principes Integration Continue

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 !