Concept de l’Intégration Continue 
Publié par Frédéric Sagez 
Dernière mise à jour le 16/11/2010
Introduction 
La solution BluePrints est utilisée pour identifier et organiser des unités logiques de travail qui seront 
exécutées pendant certaines phases d’un projet. Ces unités logiques de travail seront ensuite planifiées et 
gérées tout au long du cycle de vie du projet. 
Depuis le début de la création de la plate-forme Java/JEE, le programme Java BluePrints défini le modèle de 
programmation d'application pour les solutions de bout en bout en utilisant la technologie Java. 
Les outils BluePrints indique les lignes directrices, les modèles et le code pour les scénarios d'application 
dans le monde réel, vous permettant de construction robuste, évolutive et des solutions portables. 
Les BluePrints sont disponibles gratuitement vous permettant ainsi d'apprendre les plans et la réutilisation du 
code dans vos propres applications. 
2
Java BluePrints : le renforcement des programmes Java portables 
3 
Rational Rational SSooffttwwaarree AArrcchhiitteecctt 
 Test unitaire et d’assemblage 
JJUUnniitt ((SSqqlUlUnnitit, , HHTTTTPPUUnniitt)) 
Analyse et couverture des tests 
CCoobbeerrttuurraa 
MMaavveenn 22 
CCrruuiisseeCCoonnttrrooll 
EEcclliippssee 
 Génération de documentation automatique 
CChheecckkssttyyllee 
PPMMDD 
++ FFiinnddBBuuggss 
Automatisation des builds et test de regressions 
 Environnement de développement intégré 
Profilage automatisé de code statique 
 Environnement de conception intégré 
JJaavvaaddoocc
Intégration Continue 
L'intégration continue est une technique consistant à vérifier qu’à chaque modification de code source que le 
résultat des modifications ne produit pas de régression de l'application en cours de développement : c’est 
maintenir une source unique de référentiel. Elle est issue de la pratique de l’eXtreme Programming, elle 
permet l’intégration de développements en continue. 
 Avantages 
 Intégration périodique multiplateformes (Scheduling) 
 Mise à jour du code depuis un gestionnaire de versioning 
 Vérification, compilation et tests unitaires d’une application 
 Gestion rigoureuse des développements : permet d’assurer la cohérence d‘une application 
 La compilation du code source n'est plus dépendante de la machine d'un développeur 
 Déploiement d’une application sur un serveur distant 
 Reporting des résultats 
 Inconvénients 
 Nécessite un développement rigoureux de la part des développeurs 
 Certains produits ne sont pas « multi-techno » ou « 100% » open source 
 Nécessite une administration du serveur d’intégration continue (Serveur dédié) 
4
Principe de fonctionnement de l’Intégration Continue 
ININSSPPEECCTTIOIONN 
CCOOMMPPILILAATTIOIONN 
TTEESSTT 
PPAACCKKAAGGININGG 
DDEEPPLLOOIEIEMMEENNTT 
REFERENTIEL DE 
REFERENTIEL DE 
SOURCES 
SOURCES 
5 
1 1 
- Détection de nouvelles intégrations dans le référentiel de sources 
2 2 
Création du Build suivant les étapes de construction de 
l’application 
3 
3 - Publication des résultats 
1 
3 2
Les serveurs d’Intégration Continue 
 Cruise Control 
Open source et gratuit : il permet de tester des applications JEE et des applications en .Net. 
Avantage : supporte bien plusieurs petits projets 
Inconvénient : plusieurs outils open source passent sous licence commerciale 
 Team City 
Open source et gratuit (avec limitation ou sous licence) : il permet de tester des applications JEE et des 
applications en .Net. 
Avantage : interfaçage et intégration pratique avec les logiciels Microsoft 
Inconvénient : nécessite d’acheter des licences pour utiliser pleinement le logiciel 
 Hudson 
Open source et gratuit : il permet de tester des applications JEE. 
Avantage : la multitude de plug-ins que l’on peut développer soi-même 
Inconvénient : un « build » instable peut quand même être déployé sur un serveur distant 
 Continuum (Fondation Apache) 
Open source et gratuit : il permet de tester des applications JEE. 
Avantage : constructions sur d’autres machines des « build » en mode distribué grâce à des agents de constructions 
Inconvénient : interface peu conviviale 
6
Démarrer un projet Java avec un serveur d’intégration continue 
Il est nécessaire d’avoir des éléments utiles pour bien démarrer un projet Java avec un serveur d’intégration 
continue : 
o Il faut un gestionnaire de code source, 
o Un Serveur d’Intégration continue, 
o La nécessité de vérifier le code source et de pouvoir le compiler, (mais cela n’est pas une nécessité) 
o De permettre l’exécution de tests unitaires, 
o De « Packager » et déployer un « build » sur un serveur distant, 
o D’utiliser un Dashboard de suivi des opérations, 
o De communiquer les résultats sous forme de compte rendu, 
o De pouvoir alerter par n’importe qu’elle type de flux les différents intervenants (email, SMS, flux RSS., etc.) 
7
Exemple d'intégration d'applications en mode continue 
8 
CHECKOUT / COMM IT 
Serveur de versioning 
Serveur d’Intégration 
Continue (CIS) 
Rapports 
Poste(s) de développement 
Serveur LDAP 
Publication 
Serveur distant 
Déploiement 
INTEGRATION CONTINUE 
Compte rendu 
Détection de 
la MAJ 
du référentiel 
de source
Cruise Control 
 Avantages 
II est le plus ancien serveur d’intégration continue. Il bénéficie ainsi d’une douzaine de plugins facilitant son 
intégration avec de nombreuses solutions de gestion de configuration et de stratégies de build. 
Il s’intègre parfaitement avec des outils de gestion de code source (exemple: CVS, SVN, ClearCase, etc.) et 
aussi avec des outils de build . (exemple: Ant, NAnt, Maven, etc.) 
 Inconvénients 
Là ou d’autres produits (Hudson, Continuum ou Team City) se configurent graphiquement, il encapsule toute la 
configuration dans un fichier unique de configuration. (Fichier config.xml) 
Quelques produits tiers contribuent cependant à une meilleur administration : 
• Une interface swing CC-Config qui permet d’administrer Cruise Control, en mettant à jour de façon 
persistante le fichier config.xml. 
• Un plugin Firefox Cruise Control Monitor qui permet le « Monitoring » du serveur d’intégration continue. 
Téléchargement sur le site de l’éditeur ThoughtWorks : http://cruisecontrol.sourceforge.net/download.html 
9
La solution Cruise Control 
10
Team City 
TeamCity est un système d'intégration continue dont le principal mérite est la facilité de mise en oeuvre, d'être 
très graphique, et de contenir quelques très bonnes idées. 
 Avantages 
•L'interface graphique « full » Web 2.0 et l'aspect visuel général 
•Les « COMMIT » pré-testés 
•Les différents Runners (construction de projet, recherche de duplicats, inspection, etc.) 
•La possibilité de tester les « build » sur le serveur avant de faire un check-in 
• L’intégration aux principaux environnements de développements (Plugin sous Eclipse et Microsoft Visual 
Studio) 
• Statistiques très complètes 
 Inconvénient(s) 
• Il n’est pas tout à fait gratuit, il existe une version « Entreprise » payante. (Utilisation limitée à 20 projets de 
configurations avec 20 utilisateurs et 3 agents) 
Téléchargement sur le site de l’éditeur Jet Brains : http://www.jetbrains.com/teamcity/download/index.html 
11
La solution Team City 
12
Conclusion (1/4) 
L’intégration continue est une pratique qui consiste à mettre à jour périodiquement, voir 
continuellement un environnement par un système de « build ». Elle permet de détecter 
immédiatement les bugs et de remonter des alertes. Cela permet de fournir au 
responsable de projet un état de l’avancement en temps réel du développement. On peut 
également y intégrer des tests unitaires qui permettront de vérifier que les nouvelles 
modifications n’ont pas d’effets de bords. 
13
Conclusion (2/4) 
14 
Le processus de l’intégration continue a un mécanisme de feedback et toute l’équipe connaît le statut du 
dernier build, ce qui permet entre autres de savoir si le projet est dans le « vert » ou pas.
Conclusion (3/4) 
15 
De même, le feedback permet d’identifier des bugs au plus tôt car les impacts peuvent être très importants.
Conclusion (4/4) 
16 
Et cela permet aussi de connaitre de façon certaine le ou les développeurs incriminés…
Pour finir… 
Le concept de l’Intégration Continue et cette présentation ont été utilisés sur le projet TRANS@actions. 
17

Concept de l’Intégration Continue

  • 1.
    Concept de l’IntégrationContinue Publié par Frédéric Sagez Dernière mise à jour le 16/11/2010
  • 2.
    Introduction La solutionBluePrints est utilisée pour identifier et organiser des unités logiques de travail qui seront exécutées pendant certaines phases d’un projet. Ces unités logiques de travail seront ensuite planifiées et gérées tout au long du cycle de vie du projet. Depuis le début de la création de la plate-forme Java/JEE, le programme Java BluePrints défini le modèle de programmation d'application pour les solutions de bout en bout en utilisant la technologie Java. Les outils BluePrints indique les lignes directrices, les modèles et le code pour les scénarios d'application dans le monde réel, vous permettant de construction robuste, évolutive et des solutions portables. Les BluePrints sont disponibles gratuitement vous permettant ainsi d'apprendre les plans et la réutilisation du code dans vos propres applications. 2
  • 3.
    Java BluePrints :le renforcement des programmes Java portables 3 Rational Rational SSooffttwwaarree AArrcchhiitteecctt  Test unitaire et d’assemblage JJUUnniitt ((SSqqlUlUnnitit, , HHTTTTPPUUnniitt)) Analyse et couverture des tests CCoobbeerrttuurraa MMaavveenn 22 CCrruuiisseeCCoonnttrrooll EEcclliippssee  Génération de documentation automatique CChheecckkssttyyllee PPMMDD ++ FFiinnddBBuuggss Automatisation des builds et test de regressions  Environnement de développement intégré Profilage automatisé de code statique  Environnement de conception intégré JJaavvaaddoocc
  • 4.
    Intégration Continue L'intégrationcontinue est une technique consistant à vérifier qu’à chaque modification de code source que le résultat des modifications ne produit pas de régression de l'application en cours de développement : c’est maintenir une source unique de référentiel. Elle est issue de la pratique de l’eXtreme Programming, elle permet l’intégration de développements en continue.  Avantages  Intégration périodique multiplateformes (Scheduling)  Mise à jour du code depuis un gestionnaire de versioning  Vérification, compilation et tests unitaires d’une application  Gestion rigoureuse des développements : permet d’assurer la cohérence d‘une application  La compilation du code source n'est plus dépendante de la machine d'un développeur  Déploiement d’une application sur un serveur distant  Reporting des résultats  Inconvénients  Nécessite un développement rigoureux de la part des développeurs  Certains produits ne sont pas « multi-techno » ou « 100% » open source  Nécessite une administration du serveur d’intégration continue (Serveur dédié) 4
  • 5.
    Principe de fonctionnementde l’Intégration Continue ININSSPPEECCTTIOIONN CCOOMMPPILILAATTIOIONN TTEESSTT PPAACCKKAAGGININGG DDEEPPLLOOIEIEMMEENNTT REFERENTIEL DE REFERENTIEL DE SOURCES SOURCES 5 1 1 - Détection de nouvelles intégrations dans le référentiel de sources 2 2 Création du Build suivant les étapes de construction de l’application 3 3 - Publication des résultats 1 3 2
  • 6.
    Les serveurs d’IntégrationContinue  Cruise Control Open source et gratuit : il permet de tester des applications JEE et des applications en .Net. Avantage : supporte bien plusieurs petits projets Inconvénient : plusieurs outils open source passent sous licence commerciale  Team City Open source et gratuit (avec limitation ou sous licence) : il permet de tester des applications JEE et des applications en .Net. Avantage : interfaçage et intégration pratique avec les logiciels Microsoft Inconvénient : nécessite d’acheter des licences pour utiliser pleinement le logiciel  Hudson Open source et gratuit : il permet de tester des applications JEE. Avantage : la multitude de plug-ins que l’on peut développer soi-même Inconvénient : un « build » instable peut quand même être déployé sur un serveur distant  Continuum (Fondation Apache) Open source et gratuit : il permet de tester des applications JEE. Avantage : constructions sur d’autres machines des « build » en mode distribué grâce à des agents de constructions Inconvénient : interface peu conviviale 6
  • 7.
    Démarrer un projetJava avec un serveur d’intégration continue Il est nécessaire d’avoir des éléments utiles pour bien démarrer un projet Java avec un serveur d’intégration continue : o Il faut un gestionnaire de code source, o Un Serveur d’Intégration continue, o La nécessité de vérifier le code source et de pouvoir le compiler, (mais cela n’est pas une nécessité) o De permettre l’exécution de tests unitaires, o De « Packager » et déployer un « build » sur un serveur distant, o D’utiliser un Dashboard de suivi des opérations, o De communiquer les résultats sous forme de compte rendu, o De pouvoir alerter par n’importe qu’elle type de flux les différents intervenants (email, SMS, flux RSS., etc.) 7
  • 8.
    Exemple d'intégration d'applicationsen mode continue 8 CHECKOUT / COMM IT Serveur de versioning Serveur d’Intégration Continue (CIS) Rapports Poste(s) de développement Serveur LDAP Publication Serveur distant Déploiement INTEGRATION CONTINUE Compte rendu Détection de la MAJ du référentiel de source
  • 9.
    Cruise Control Avantages II est le plus ancien serveur d’intégration continue. Il bénéficie ainsi d’une douzaine de plugins facilitant son intégration avec de nombreuses solutions de gestion de configuration et de stratégies de build. Il s’intègre parfaitement avec des outils de gestion de code source (exemple: CVS, SVN, ClearCase, etc.) et aussi avec des outils de build . (exemple: Ant, NAnt, Maven, etc.)  Inconvénients Là ou d’autres produits (Hudson, Continuum ou Team City) se configurent graphiquement, il encapsule toute la configuration dans un fichier unique de configuration. (Fichier config.xml) Quelques produits tiers contribuent cependant à une meilleur administration : • Une interface swing CC-Config qui permet d’administrer Cruise Control, en mettant à jour de façon persistante le fichier config.xml. • Un plugin Firefox Cruise Control Monitor qui permet le « Monitoring » du serveur d’intégration continue. Téléchargement sur le site de l’éditeur ThoughtWorks : http://cruisecontrol.sourceforge.net/download.html 9
  • 10.
  • 11.
    Team City TeamCityest un système d'intégration continue dont le principal mérite est la facilité de mise en oeuvre, d'être très graphique, et de contenir quelques très bonnes idées.  Avantages •L'interface graphique « full » Web 2.0 et l'aspect visuel général •Les « COMMIT » pré-testés •Les différents Runners (construction de projet, recherche de duplicats, inspection, etc.) •La possibilité de tester les « build » sur le serveur avant de faire un check-in • L’intégration aux principaux environnements de développements (Plugin sous Eclipse et Microsoft Visual Studio) • Statistiques très complètes  Inconvénient(s) • Il n’est pas tout à fait gratuit, il existe une version « Entreprise » payante. (Utilisation limitée à 20 projets de configurations avec 20 utilisateurs et 3 agents) Téléchargement sur le site de l’éditeur Jet Brains : http://www.jetbrains.com/teamcity/download/index.html 11
  • 12.
  • 13.
    Conclusion (1/4) L’intégrationcontinue est une pratique qui consiste à mettre à jour périodiquement, voir continuellement un environnement par un système de « build ». Elle permet de détecter immédiatement les bugs et de remonter des alertes. Cela permet de fournir au responsable de projet un état de l’avancement en temps réel du développement. On peut également y intégrer des tests unitaires qui permettront de vérifier que les nouvelles modifications n’ont pas d’effets de bords. 13
  • 14.
    Conclusion (2/4) 14 Le processus de l’intégration continue a un mécanisme de feedback et toute l’équipe connaît le statut du dernier build, ce qui permet entre autres de savoir si le projet est dans le « vert » ou pas.
  • 15.
    Conclusion (3/4) 15 De même, le feedback permet d’identifier des bugs au plus tôt car les impacts peuvent être très importants.
  • 16.
    Conclusion (4/4) 16 Et cela permet aussi de connaitre de façon certaine le ou les développeurs incriminés…
  • 17.
    Pour finir… Leconcept de l’Intégration Continue et cette présentation ont été utilisés sur le projet TRANS@actions. 17