SlideShare une entreprise Scribd logo
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 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
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. Retours d'expérience
7. Pour aller plus loin
Intégration Continue
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 !
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 environnements
Alertes / Résultats
Juste celles qu'il faut
Consultables et compréhensibles
Rapides
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é
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
3. Un build de qualité
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
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
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
4. Mise en oeuvre
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
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 / ArtiFactory
Continuum
Sonar
L'IC est souvent la « dernière roue du carrosse »
Pourtant un facteur de productivité et qualité
Vision non « court termiste »
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
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
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
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 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
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é
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 code
Time Machine
Suggestion d'action
http://nemo.sonar.codehaus.org
7. Pour aller plus loin
Hortis Sonar

Contenu connexe

Tendances

Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueOmnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueXavier Callens
 
Pourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codePourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codeRémi Lesieur
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Sylvain Leroy
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsRossi Oddet
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration ContinueFrédéric Sagez
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)Cellenza
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverteEric Mignot
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes PratiquesEmmanuel Hugonnet
 
Les tests behat par la pratique
Les tests behat par la pratiqueLes tests behat par la pratique
Les tests behat par la pratiqueGuilhem Bourgoin
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Fabian Piau
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciellauraty3204
 
TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with ChefOlivier BAZOUD
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 

Tendances (20)

Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueOmnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
 
Pourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codePourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre code
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverte
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 
DevOps
DevOpsDevOps
DevOps
 
Les tests behat par la pratique
Les tests behat par la pratiqueLes tests behat par la pratique
Les tests behat par la pratique
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)
 
Selenium
SeleniumSelenium
Selenium
 
4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel
 
TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with Chef
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 

En vedette

Motion4 oser plusloinplusvite_ps-2012
Motion4 oser plusloinplusvite_ps-2012Motion4 oser plusloinplusvite_ps-2012
Motion4 oser plusloinplusvite_ps-2012OPLPV
 
241150085 cours-college-pilote-francais-description-9eme-2012-2013-mr-hamed-b...
241150085 cours-college-pilote-francais-description-9eme-2012-2013-mr-hamed-b...241150085 cours-college-pilote-francais-description-9eme-2012-2013-mr-hamed-b...
241150085 cours-college-pilote-francais-description-9eme-2012-2013-mr-hamed-b...Ettaoufik Elayedi
 
Guía de Investigación
Guía de InvestigaciónGuía de Investigación
Guía de Investigaciónrocioiam
 
Modelo de negocio indra dzoara muñoz
Modelo de negocio indra dzoara muñozModelo de negocio indra dzoara muñoz
Modelo de negocio indra dzoara muñozIndra Dzoara MJ
 
Errores en la mediciones y Fuentes de Error
Errores en la mediciones y Fuentes de ErrorErrores en la mediciones y Fuentes de Error
Errores en la mediciones y Fuentes de Errorluisangel198
 
Meetup Découverte Coworking - 10 bonnes raisons de travailler en réseau
Meetup Découverte Coworking - 10 bonnes raisons de travailler en réseauMeetup Découverte Coworking - 10 bonnes raisons de travailler en réseau
Meetup Découverte Coworking - 10 bonnes raisons de travailler en réseauSteve Bercy
 
Utensiles de patisserie
Utensiles de patisserieUtensiles de patisserie
Utensiles de patisseriefrculinariouas
 
Présentation de HackYourPhd au colloque "La révolution de la science ouverte....
Présentation de HackYourPhd au colloque "La révolution de la science ouverte....Présentation de HackYourPhd au colloque "La révolution de la science ouverte....
Présentation de HackYourPhd au colloque "La révolution de la science ouverte....Célya Gruson-Daniel
 
Virus informaticossandraykarina
Virus informaticossandraykarinaVirus informaticossandraykarina
Virus informaticossandraykarinaingridsuarez02
 
Historia e introducción a la odontologia
Historia e introducción a la odontologiaHistoria e introducción a la odontologia
Historia e introducción a la odontologiapaulamayorgadominguez
 

En vedette (20)

Vane
VaneVane
Vane
 
Digimood SEOCamp-us lille
Digimood SEOCamp-us lilleDigimood SEOCamp-us lille
Digimood SEOCamp-us lille
 
Les statistiques
Les statistiquesLes statistiques
Les statistiques
 
Louis 6c
Louis 6cLouis 6c
Louis 6c
 
Mission Laurent Grandguillaume rapport final
Mission Laurent Grandguillaume rapport finalMission Laurent Grandguillaume rapport final
Mission Laurent Grandguillaume rapport final
 
Motion4 oser plusloinplusvite_ps-2012
Motion4 oser plusloinplusvite_ps-2012Motion4 oser plusloinplusvite_ps-2012
Motion4 oser plusloinplusvite_ps-2012
 
241150085 cours-college-pilote-francais-description-9eme-2012-2013-mr-hamed-b...
241150085 cours-college-pilote-francais-description-9eme-2012-2013-mr-hamed-b...241150085 cours-college-pilote-francais-description-9eme-2012-2013-mr-hamed-b...
241150085 cours-college-pilote-francais-description-9eme-2012-2013-mr-hamed-b...
 
Manual Balay - campana 3 bi9129
Manual Balay - campana 3 bi9129Manual Balay - campana 3 bi9129
Manual Balay - campana 3 bi9129
 
Guía de Investigación
Guía de InvestigaciónGuía de Investigación
Guía de Investigación
 
Modelo de negocio indra dzoara muñoz
Modelo de negocio indra dzoara muñozModelo de negocio indra dzoara muñoz
Modelo de negocio indra dzoara muñoz
 
Errores en la mediciones y Fuentes de Error
Errores en la mediciones y Fuentes de ErrorErrores en la mediciones y Fuentes de Error
Errores en la mediciones y Fuentes de Error
 
Meetup Découverte Coworking - 10 bonnes raisons de travailler en réseau
Meetup Découverte Coworking - 10 bonnes raisons de travailler en réseauMeetup Découverte Coworking - 10 bonnes raisons de travailler en réseau
Meetup Découverte Coworking - 10 bonnes raisons de travailler en réseau
 
Manual Balay - campana 3 bi999
Manual Balay - campana 3 bi999Manual Balay - campana 3 bi999
Manual Balay - campana 3 bi999
 
Manual Balay - encimera 3 etg395np
Manual Balay - encimera 3 etg395npManual Balay - encimera 3 etg395np
Manual Balay - encimera 3 etg395np
 
Utensiles de patisserie
Utensiles de patisserieUtensiles de patisserie
Utensiles de patisserie
 
sugarsync
sugarsyncsugarsync
sugarsync
 
Présentation de HackYourPhd au colloque "La révolution de la science ouverte....
Présentation de HackYourPhd au colloque "La révolution de la science ouverte....Présentation de HackYourPhd au colloque "La révolution de la science ouverte....
Présentation de HackYourPhd au colloque "La révolution de la science ouverte....
 
Equilibrio qu+ìmico
Equilibrio qu+ìmicoEquilibrio qu+ìmico
Equilibrio qu+ìmico
 
Virus informaticossandraykarina
Virus informaticossandraykarinaVirus informaticossandraykarina
Virus informaticossandraykarina
 
Historia e introducción a la odontologia
Historia e introducción a la odontologiaHistoria e introducción a la odontologia
Historia e introducción a la odontologia
 

Similaire à Normandy JUG integration Continue

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration ContinueNormandy JUG
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011 ALTER WAY
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatiséJérémie Campari
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
 
Tests automatisés java script
Tests automatisés java scriptTests automatisés java script
Tests automatisés java scriptPascal Laurin
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...PimpMySharePoint
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptMichael Akbaraly
 
Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Jean-Marc Fontaine
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outilsAgile Tour 2009 Québec
 
Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défautsJulien Jakubowski
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAntoine Blk
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 

Similaire à Normandy JUG integration Continue (20)

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration Continue
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Tests automatisés java script
Tests automatisés java scriptTests automatisés java script
Tests automatisés java script
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défauts
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defauts
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Conformiq
ConformiqConformiq
Conformiq
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 

Normandy JUG integration Continue

  • 1. L'Intégration Continue dans l'univers Java Juin 2009 Dimitri Baeli Laurent Deséchalliers
  • 2. Introduction The Joel Test by Joel On Software
  • 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
  • 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. 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. 2. Les besoins d'intégration
  • 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. 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. 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. 3. Un build de qualité
  • 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. 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. 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. 4. Mise en oeuvre
  • 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
  • 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. 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. 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. 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. 6. Les outils du moment
  • 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. 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. 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