0
L'Intégration Continue
dans l'univers Java
Juin 2009
Dimitri Baeli
Laurent Deséchalliers
Introduction
The Joel Test
by Joel On Software
1- Utilisez vous un gestionnaire de sources ?
2- Pouvez-vous faire un build en une seule étape ? ?
3- Avez-vous des Builds...
L'intégration Continue
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. Ret...
1. Que celui qui n'a jamais ...
Commité sans vérification
Fait de commit partiel
Commité du code qui compile mais ne
march...
2. Les besoins d'intégration
2. Les besoins d'intégration
Garantir la qualité des livrables
En toute indépendance
De façon reproductible
Sur tous les e...
2. Les besoins d'intégration
L'automatisation !!
Minimiser les étapes manuelles
Profiter de la puissance des
machines
Para...
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 ...
3. Un build de qualité
3. Un build de qualité : Le Processus
Compilation
Tests unitaires
Analyse Qualité du code
Tests de Déploiement / Smoke Tes...
3. Un build de qualité : L'automatisation
Automatisation
Doit pouvoir être joué en local
Exécuté sur un serveur isolé et d...
3. Un build de qualité
Les facteurs de qualité
Tests rapides et couvrants
Code propre (format, warnings)
IDE Correctement ...
4. Mise en oeuvre
4. Mise en oeuvre : Les étapes
1. Gestionnaire de sources
Référence
Gestion des contributions (Commit)
Résolution des conf...
5. Retours d'expérience
5. Retour d'expérience : PME
Exemple concret
Équipe de 4 développeurs/euses
1 PC a 300€
Logiciels open-source
Svn / Maven2...
SVN
Historique sources
Maven2
Build source
Gestion
(versionnée) des
dépendances
Continuum
Build Automatique
Test unitaire
...
Ressources :
Installer le serveur
Compétences
Linux
Installer les
applicatifs
Compétences
Java/Linux
Paramétrer les
applic...
5. Retours d'expérience : Build eXo
16 Projets :
+1-4 branches par projets
80 développeurs sur 4 pays
Scrum
Dépendances en...
6. Les outils du moment
6. Les outils du moment
IntelliJ TeamCity
Intégration Eclipse/Idea top !
Build distant, Pre-Commit depuis l'IDE
Build dist...
6. Les outils du moment
Atlassian Bamboo
Build distribués
Analysis du code, Statisitques
Collaboration, Telemetrie
http://...
7. Pour aller plus loin
7. Pour aller plus loin
Sonar by SonarSources
Open Source, initié par Hortis
Collecte des rapports de build
Analyse du cod...
7. Pour aller plus loin
Hortis Sonar
Upcoming SlideShare
Loading in...5
×

Normandy JUG integration Continue

909

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
909
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×