AT2010 Principes Integration Continue

1,028 views
936 views

Published on

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

Published in: Education
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
1,028
On SlideShare
0
From Embeds
0
Number of Embeds
86
Actions
Shares
0
Downloads
23
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

AT2010 Principes Integration Continue

  1. 1. Principes d'intégration continue Dimitri BAELI VP Quality at eXo Platform Octobre 2010
  2. 2. Dimitri BAELI Enterprise Scrum Master VP Quality Support Level 3 eXo Platform Organisation des développements SysAdmins Teams Release Process Ensimag 98 QA Teams
  3. 3. De quoi on va parler ?
  4. 4. Source Green Pepper Build & Packaging
  5. 5. Les Fondamentaux Le « Joel Test » La qualité L’agilité En continu !
  6. 6. Les Fondamentaux Le « Joel Test »
  7. 7. 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 ?
  8. 8. 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 !
  9. 9. 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 ?
  10. 10. Joel Test Référentiel Gestion des conflits Historique Reproductibilité Traçabilité Visibilité (Fisheye, SVNSearch) Outils : SVN, Mercurial, VSS 1- Un gestionnaire de sources
  11. 11. Joel Test Sinon Il est source d'erreurs Sinon il est joué moins souvent Sinon il dépend de certaines personnes Sinon les risques d’échec augmentent à l'approche de la livraison Mais Il faut aller du début à jusqu'au bout ! Outils de build : Maven, Ant, NAnt 2 - Assemblage en une étape
  12. 12. Joel Test 3 - L’assemblage quotidien Usine de build : Cron, CruiseControl(.net), Hudson, Bambou, ... Un nouveau jour se lève Prévenir plutôt que guérir Objectivité (« ça marche chez moi ! ») Donner confiance Prise de conscience de l'impact d'un commit Et les tests !
  13. 13. Joel Test 9- Vous n’avez pas les meilleurs outils que vous puissiez vous payer ? De gratuit à très cher Adaptés ou non ? Modernes ou historiques ? Maitrisé par vos équipes ? Il en existe beaucoup ! De gratuit ou très cher Simples ou trop compliqué
  14. 14. 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 !
  15. 15. Les Fondamentaux La qualité 1. Les niveaux de finition 2. La gestion du risque
  16. 16. 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
  17. 17. 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
  18. 18. Les Fondamentaux L’agilité 1- Le manifeste agile 2- Les principes 3- Les pratiques
  19. 19. 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
  20. 20. L'agilité – Livraison fréquentes – Cycles courts – Une Equipe – Rythme soutenable – Produit en état de marche en continu Les principes Du bon sens !
  21. 21. L'agilité – Test Driven Developpement – Pair Programming – Spécifications exécutables – Démonstration par les développeurs 3- Les pratiques Scrum - XP - Kanban - Lean
  22. 22. Les Fondamentaux En continu !
  23. 23. Connaître la qualité des livrables o En toute indépendance o De façon reproductible o Sur tous les environnements o En permanence Prévenir les erreurs o Uniquement les vraies erreurs o Compréhensibles o Rapidement En continu !
  24. 24. En continu Partager un état commun o En équipe o Ecrire des tests probants o Commit atomique (un seul sujet) o Régler les problèmes sur le champ o Commit fréquent L'essentiel c’est o La livraison du produit qui marche o Satisfaire le client o Avec de la productivité
  25. 25. Connaitre Partager L’essentiel Prévenir En continu !
  26. 26. Des questions avant de parler mise en oeuvre ?
  27. 27. La Chaine d’intégration continue Le cycle de build La chaine d’intégration Le minimum vital
  28. 28. La Chaine d’intégration continue La chaine d’intégration
  29. 29. Chaine d’intégration Source Vincent Massol - Pivolis 2004
  30. 30. La Chaine d’intégration continue Le cycle de build
  31. 31. Cycle de build 1. Récupération des sources 2. Récupération des binaires tiers 3. Compilation 4. Tests unitaires 5. Analyse Qualité du code 6. Tests de Déploiement / Smoke Test 7. Tests d'intégration 8. Génération de la Documentation 9. Packaging 10. Test d'installation 11. Publication des binaires 12. Notification du résultat
  32. 32. La Chaine d’intégration continue Des exemples Le strict minimum Exemple PME Exemple Editeur
  33. 33. 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
  34. 34. PME o Équipe de 4 développeurs/euses o 1 PC a 300€ Exemple PME • SVN o Historique sources • Maven2 o Build source o Gestion (versionnée) des dépendances • Continuum o Build Automatique o Tests unitaires • ArtiFactory o Repository Maven2 • Sonar o Qualité code
  35. 35. • Ressources : o Installer le serveur  Compétences Linux o Installer les applicatifs  Compétences Java/Linux o Paramétrer les applicatifs o Affiner les réflexions Coût • 300€ (pc tour) • 5 jours travail PME Exemple PME Bravo Laurent !
  36. 36. eXo Platform eXo Platform : o 100+ devs sur 4 pays: Vietnam, Ukraine, France, Tunisie o Méthodologie Agile : Scrum o 16+ equipes o 6 Projets Open Source sur 4 Niveaux o eXo JCR o eXo Portal : GateIn en co-développement avec JBoss (10p) o eXo Content : WCM + DMS + Workflow o eXo Collaboration, eXo Knowledge, eXo Social, xCMIS, eXo IDE o 1 produit = eXo Platform 3.0.0 Exemple Editeur
  37. 37. eXo Platform o Environnements cible : o 3 AS = JBoss, Tomcat, Weblogic o 2 OS = Windows, RHEL o 3DB = MySQL, Oracle, o 3 Navigateurs = Chrome, FF, IE7 => 300+ configurations o Code : Java, Xml, Html, JavaScript, iPhone o IDE : Eclipse, Intellij Idea o Source : Svn, GoogleCode, JBoss.org Exemple Editeur
  38. 38. o Build : Maven + Extensions o 200+ projets de build o Usine : o Hudson : http://builder.exoplatform.org o Sonar (en test) : http://sonar.exoplatform.org o Management : o Jira : http://jira.exoplatform.org o Fisheye + Crucible : http://fisheye.exoplatform.org o Serveurs sur Amazon EC2 (mode hébergé) ! Exemple Editeur Bravo Arnaud !
  39. 39. Exemple Editeur Hudson - eXo - 20100923
  40. 40. Exemple Editeur Hudson - eXo - 20100923
  41. 41. Mise en oeuvre Outils de build Outils de test Usines Logicielles Coups de coeur Outils de build
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. o Analyse du code o Une plateforme de gestion de la qualité o Suivi des règles de développement o 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
  46. 46. La platform de build sur le nuage - DEV@Cloud - RUN@Cloud http://www.cloudbees.com Coups de coeur
  47. 47. o Tests fonctionnels exécutables Coups de coeur http://www.greenpeppersoftware.com
  48. 48. Bibliographie - Martin Fowler http://martinfowler.com/articles/continuousIntegration.html - Joel on software http://french.joelonsoftware.com/Articles/TheJoelTest.html - Manifeste Agile http://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)
  49. 49. Merci Et à bientôt !

×