Normandy JUG integration Continue

1 185 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 185
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
39
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Normandy JUG integration Continue

  1. 1. L'Intégration Continue dans l'univers Java Juin 2009 Dimitri Baeli Laurent Deséchalliers
  2. 2. Introduction The Joel Test by Joel On Software
  3. 3. 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 spécifications ? 8- Vos développeurs 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 collègues ? The Joel Test
  4. 4. L'intégration Continue
  5. 5. 1. Que celui qui n'a jamais ... 2. Les besoins d'intégration 3. Un build de qualité 4. Mise en Oeuvre 5. Les outils 6. Retours d'expérience 7. Pour aller plus loin Intégration Continue
  6. 6. 1. Que celui qui n'a jamais ... Commité sans vérification Fait de commit partiel Commité du code qui compile mais ne marche pas Fait de régressions inadmissibles Fait des changements d'API Fait un commit tardif impactant … en a déjà été victime !
  7. 7. 2. Les besoins d'intégration
  8. 8. 2. Les besoins d'intégration Garantir la qualité des livrables En toute indépendance De façon reproductible Sur tous les environnements Alertes / Résultats Juste celles qu'il faut Consultables et compréhensibles Rapides
  9. 9. 2. Les besoins d'intégration L'automatisation !! Minimiser les étapes manuelles Profiter de la puissance des machines Paralléliser les environnements Multiplier les chances de trouver des problèmes Monitoring qualité et traçabilité
  10. 10. 2. Les besoins d'intégration Règles d'équipe Commit fréquent Commit atomique Régler les problèmes sur le champ Ecrire des tests déterminants Se concentrer sur l'essentiel La fabrication Réagir aux résultat de l'intégration
  11. 11. 3. Un build de qualité
  12. 12. 3. Un build de qualité : Le Processus Compilation Tests unitaires Analyse Qualité du code Tests de Déploiement / Smoke Tests Tests d'intégration Génération de la Documentation Packaging Publication
  13. 13. 3. Un build de qualité : L'automatisation Automatisation Doit pouvoir être joué en local Exécuté sur un serveur isolé et dédié 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 déclencher trop vite un build
  14. 14. 3. Un build de qualité Les facteurs de qualité Tests rapides et couvrants Code propre (format, warnings) IDE Correctement configurés Analyse du code (findbug, pmd, …) Historique des builds par version/révisions et informations complémentaires
  15. 15. 4. Mise en oeuvre
  16. 16. 4. Mise en oeuvre : Les étapes 1. Gestionnaire de sources Référence Gestion des contributions (Commit) Résolution 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 résultats
  17. 17. 5. Retours d'expérience
  18. 18. 5. Retour d'expérience : PME Exemple concret Équipe de 4 développeurs/euses 1 PC a 300€ Logiciels open-source Svn / Maven2 / ArtiFactory Continuum Sonar L'IC est souvent la « dernière roue du carrosse » Pourtant un facteur de productivité et qualité Vision non « court termiste »
  19. 19. SVN Historique sources Maven2 Build source Gestion (versionnée) des dépendances Continuum Build Automatique Test unitaire ArtiFactory Repository Maven2 Sonar Qualité code 5. Retour d'expérience : PME
  20. 20. Ressources : Installer le serveur Compétences Linux Installer les applicatifs Compétences Java/Linux Paramétrer les applicatifs Affiner les réflexions Coût 300€ (pc tour) 5 jours travail 5. Retour d'expérience : PME
  21. 21. 5. Retours d'expérience : Build eXo 16 Projets : +1-4 branches par projets 80 développeurs sur 4 pays Scrum Dépendances 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 résultats
  22. 22. 6. Les outils du moment
  23. 23. 6. Les outils du moment IntelliJ TeamCity Intégration Eclipse/Idea top ! Build distant, Pre-Commit depuis l'IDE Build distribué Suivi des responsabilités http://teamcity.jetbrains.com/overview.html Hudson Open source Build distribué Beaucoup de plugins (emma, violations, ...) http://hudson.jboss.org/hudson
  24. 24. 6. Les outils du moment Atlassian Bamboo Build distribués Analysis du code, Statisitques Collaboration, Telemetrie http://opensource.bamboo.atlassian.com/ ThoughtWork Cruise Issue de CruiseControl Gestion du cycle de release ! Build distribué
  25. 25. 7. Pour aller plus loin
  26. 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. 27. 7. Pour aller plus loin Hortis Sonar

×