2. 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
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é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
5. 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
6. 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
7. 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
8. 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
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
11. 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
13. 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
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…
Le concept de l’Intégration Continue et cette présentation ont été utilisés sur le projet TRANS@actions.
17