Click here to load reader

Normandy JUG integration Continue

  • View
    989

  • Download
    1

Embed Size (px)

DESCRIPTION

 

Text of Normandy JUG integration Continue

  • 1. L'Intgration Continue dans l'univers Java Juin 2009 Dimitri Baeli Laurent Deschalliers
  • 2. Introduction The Joel Test by Joel On Software
  • 3. The Joel Test 1- Utilisez vous un gestionnaire de sources ? 2- Pouvez-vous faire un build en une seule tape ? ? 3- Avez-vous des Builds journaliers ? 4- Avez-vous un gestionnaire de Bugs ? 5- Corrigez-vous les bugs avant d'crire du code ? 6- Votre planning est-il jour ? 7- Avez-vous des spcifications ? 8- Vos dveloppeurs travaillent-ils au calme ? 9- Avez-vous les meilleurs outils permis par votre budget ? 10- Avez-vous des tests / testeurs ? 11- Les candidats crivent-ils du code ? 12- Testez-vous l'utilisabilit avec vos collgues ?
  • 4. L'intgration Continue
  • 5. Intgration Continue 1. Que celui qui n'a jamais ... 2. Les besoins d'intgration 3. Un build de qualit 4. Mise en Oeuvre 5. Les outils 6. Retours d'exprience 7. Pour aller plus loin
  • 6. 1. Que celui qui n'a jamais ... Commit sans vrification Fait de commit partiel Commit du code qui compile mais ne marche pas Fait de rgressions inadmissibles Fait des changements d'API Fait un commit tardif impactant en a dj t victime !
  • 7. 2. Les besoins d'intgration
  • 8. 2. Les besoins d'intgration Garantir la qualit des livrables En toute indpendance De faon reproductible Sur tous les environnements Alertes / Rsultats Juste celles qu'il faut Consultables et comprhensibles Rapides
  • 9. 2. Les besoins d'intgration L'automatisation !! Minimiser les tapes manuelles Profiter de la puissance des machines Parallliser les environnements Multiplier les chances de trouver des problmes Monitoring qualit et traabilit
  • 10. 2. Les besoins d'intgration Rgles d'quipe Commit frquent Commit atomique Rgler les problmes sur le champ Ecrire des tests dterminants Se concentrer sur l'essentiel La fabrication Ragir aux rsultat de l'intgration
  • 11. 3. Un build de qualit
  • 12. 3. Un build de qualit : Le Processus Compilation Tests unitaires Analyse Qualit du code Tests de Dploiement / Smoke Tests Tests d'intgration Gnration de la Documentation Packaging Publication
  • 13. 3. Un build de qualit : L'automatisation Automatisation Doit pouvoir tre jou en local Excut sur un serveur isol et ddi Aussi souvent que possible A la demande Attention !! Le build doit tre rapide Le build ne doit pas chouer tord Les notifications doivent tre pertinentes Ne pas dclencher trop vite un build
  • 14. 3. Un build de qualit Les facteurs de qualit Tests rapides et couvrants Code propre (format, warnings) IDE Correctement configurs Analyse du code (findbug, pmd, ) Historique des builds par version/rvisions et informations complmentaires
  • 15. 4. Mise en oeuvre
  • 16. 4. Mise en oeuvre : Les tapes 1. Gestionnaire de sources Rfrence Gestion des contributions (Commit) Rsolution des conflits 2. Script de build Maven, Ant/Ivy, Gradle, Gant, Easyant, ... 3. Ecriture de tests automatiques 4. Plannification des builds 5. Analyses de code, reporting 5. Publier les rsultats
  • 17. 5. Retours d'exprience
  • 18. 5. Retour d'exprience : PME Exemple concret quipe de 4 dveloppeurs/euses 1 PC a 300 Logiciels open-source Svn / Maven2 / ArtiFactory Continuum Sonar L'IC est souvent la dernire roue du carrosse Pourtant un facteur de productivit et qualit Vision non court termiste
  • 19. 5. Retour d'exprience : PME SVN ArtiFactory Historique sources Repository Maven2 Maven2 Sonar Build source Qualit code Gestion (versionne) des dpendances Continuum Build Automatique Test unitaire
  • 20. 5. Retour d'exprience : PME Ressources : Cot Installer le serveur 300 (pc tour) Comptences 5 jours travail Linux Installer les applicatifs Comptences Java/Linux Paramtrer les applicatifs Affiner les rflexions
  • 21. 5. Retours d'exprience : Build eXo 16 Projets : +1-4 branches par projets 80 dveloppeurs sur 4 pays Scrum Dpendances entre les projets 3 AppServs, 2 OS, 3DB : 18 configurations Svn, Hudson, Maven2, Emma, Jira, Eclipse Tous les serveurs sur Amazon EC2 ! A venir: Sonar sous peu Site de centralisation des binaires et rsultats
  • 22. 6. Les outils du moment
  • 23. 6. Les outils du moment IntelliJ TeamCity Intgration Eclipse/Idea top ! Build distant, Pre-Commit depuis l'IDE Build distribu Suivi des responsabilits http://teamcity.jetbrains.com/overview.html Hudson Open source Build distribu Beaucoup de plugins (emma, violations, ...) http://hudson.jboss.org/hudson
  • 24. 6. Les outils du moment Atlassian Bamboo Build distribus Analysis du code, Statisitques Collaboration, Telemetrie http://opensource.bamboo.atlassian.com/ ThoughtWork Cruise Issue de CruiseControl Gestion du cycle de release ! Build distribu
  • 25. 7. Pour aller plus loin
  • 26. 7. Pour aller plus loin Sonar by SonarSources Open Source, initi par Hortis Collecte des rapports de build Analyse du code Time Machine Suggestion d'action http://nemo.sonar.codehaus.org
  • 27. 7. Pour aller plus loin Hortis Sonar