SlideShare une entreprise Scribd logo
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

Contenu connexe

Tendances

Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
 
Cas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCareCas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCare
CloudNetCare
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
Stéphane Liétard
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
Sylvain Leroy
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
CloudNetCare
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
Stéphane Traumat
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagner
Geeks Anonymes
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
Stéphane Traumat
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
ZenikaOuest
 
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 2009 Québec
 
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
Thibaud CAVIN
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
SOAT
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
Olivier BAZOUD
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
LeClubQualiteLogicielle
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
Emmanuel Hugonnet
 
Method XP
Method XP Method XP
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
Rossi Oddet
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
USTHB & DELTALOG
 

Tendances (20)

Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Cas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCareCas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCare
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagner
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
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
 
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
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
Sonar-Hodson-Maven
Sonar-Hodson-MavenSonar-Hodson-Maven
Sonar-Hodson-Maven
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Method XP
Method XP Method XP
Method XP
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 

En vedette

Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielleDavid Buros
 
Déploiement dans Azure depuis Visual Studio Team Services
Déploiement dans Azure depuis Visual Studio Team ServicesDéploiement dans Azure depuis Visual Studio Team Services
Déploiement dans Azure depuis Visual Studio Team Services
Adrien Siffermann
 
Azure camp 26 septembre tips and tools
Azure camp 26 septembre tips and toolsAzure camp 26 septembre tips and tools
Azure camp 26 septembre tips and toolsAymeric Weinbach
 
Wilfried woivré intégration continue
Wilfried woivré   intégration continueWilfried woivré   intégration continue
Wilfried woivré intégration continueAymeric Weinbach
 
Les 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système LinuxLes 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système Linux
jean NZONZIDI
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery Distilled
Matt Callanan
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous Delivery
Damien Goldenberg
 
Il était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticIl était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez Meetic
Joris Calabrese
 
Stack Technologique Google
Stack Technologique GoogleStack Technologique Google
Stack Technologique Google
Lorraine JUG
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Puppet
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Mike McGarr
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
Stephane Manciot
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
John Lynch
 
REX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec DockerREX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec Docker
Yannig Perre
 
Devoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDevoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous delivery
David Caramelo
 
DevOps
DevOpsDevOps
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Jez Humble
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
Ernest Mueller
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
Robert Reiz
 

En vedette (20)

Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
 
Déploiement dans Azure depuis Visual Studio Team Services
Déploiement dans Azure depuis Visual Studio Team ServicesDéploiement dans Azure depuis Visual Studio Team Services
Déploiement dans Azure depuis Visual Studio Team Services
 
Azure camp 26 septembre tips and tools
Azure camp 26 septembre tips and toolsAzure camp 26 septembre tips and tools
Azure camp 26 septembre tips and tools
 
Wilfried woivré intégration continue
Wilfried woivré   intégration continueWilfried woivré   intégration continue
Wilfried woivré intégration continue
 
Commande linux
Commande linuxCommande linux
Commande linux
 
Les 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système LinuxLes 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système Linux
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery Distilled
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous Delivery
 
Il était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticIl était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez Meetic
 
Stack Technologique Google
Stack Technologique GoogleStack Technologique Google
Stack Technologique Google
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
REX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec DockerREX déploiement Ansible et Utilisation avec Docker
REX déploiement Ansible et Utilisation avec Docker
 
Devoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDevoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous delivery
 
DevOps
DevOpsDevOps
DevOps
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 

Similaire à Concept de l’Intégration Continue

Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Publicis Sapient Engineering
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
vlabatut
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
Emmanuel Hugonnet
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
Sid Ahmed Benkraoua
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
gcatt
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
Julien Dubois
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
Nicolas wallerand
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
pprem
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
Francois ANDRE
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
Zenika
 
Microsoft Azure dev Ops pour le Cloud... et réciproquement…
Microsoft Azure dev Ops pour le Cloud... et réciproquement…Microsoft Azure dev Ops pour le Cloud... et réciproquement…
Microsoft Azure dev Ops pour le Cloud... et réciproquement…
Microsoft
 
Microsoft Azure : DevOps pour le Cloud... et réciproquement…
Microsoft Azure : DevOps pour le Cloud... et réciproquement…Microsoft Azure : DevOps pour le Cloud... et réciproquement…
Microsoft Azure : DevOps pour le Cloud... et réciproquement…
Microsoft Technet France
 
qualité logicielle (8).pdf
qualité logicielle (8).pdfqualité logicielle (8).pdf
qualité logicielle (8).pdf
NoamHaythem
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCityUlrich VACHON
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
Mohamed Akrouh
 
Présentation DEVOPS_PO.pptx
Présentation DEVOPS_PO.pptxPrésentation DEVOPS_PO.pptx
Présentation DEVOPS_PO.pptx
ZALIMAZA
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
Francois ANDRE
 
Présentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptxPrésentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptx
ZALIMAZA
 
Présentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptxPrésentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptx
ZALIMAZA
 

Similaire à Concept de l’Intégration Continue (20)

Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
 
Microsoft Azure dev Ops pour le Cloud... et réciproquement…
Microsoft Azure dev Ops pour le Cloud... et réciproquement…Microsoft Azure dev Ops pour le Cloud... et réciproquement…
Microsoft Azure dev Ops pour le Cloud... et réciproquement…
 
Microsoft Azure : DevOps pour le Cloud... et réciproquement…
Microsoft Azure : DevOps pour le Cloud... et réciproquement…Microsoft Azure : DevOps pour le Cloud... et réciproquement…
Microsoft Azure : DevOps pour le Cloud... et réciproquement…
 
qualité logicielle (8).pdf
qualité logicielle (8).pdfqualité logicielle (8).pdf
qualité logicielle (8).pdf
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Présentation DEVOPS_PO.pptx
Présentation DEVOPS_PO.pptxPrésentation DEVOPS_PO.pptx
Présentation DEVOPS_PO.pptx
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
Présentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptxPrésentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptx
 
Présentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptxPrésentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptx
 

Plus de Frédéric Sagez

Threat Modelling and managed risks for medical devices
Threat Modelling and managed risks for medical devicesThreat Modelling and managed risks for medical devices
Threat Modelling and managed risks for medical devices
Frédéric Sagez
 
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité ProjetE-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
Frédéric Sagez
 
Atari ST : Histoire de l'OS
Atari ST : Histoire de l'OSAtari ST : Histoire de l'OS
Atari ST : Histoire de l'OS
Frédéric Sagez
 
HOPEX V2R1 : Database maintenance tasks
HOPEX V2R1 : Database maintenance tasksHOPEX V2R1 : Database maintenance tasks
HOPEX V2R1 : Database maintenance tasks
Frédéric Sagez
 
Atari ST - History of The OS
Atari ST - History of The OSAtari ST - History of The OS
Atari ST - History of The OS
Frédéric Sagez
 
AFUP - Mini conférences PHP - Les LOGs
AFUP - Mini conférences PHP - Les LOGsAFUP - Mini conférences PHP - Les LOGs
AFUP - Mini conférences PHP - Les LOGs
Frédéric Sagez
 
J&Cie - Présentation de la Task Force
J&Cie - Présentation de la Task ForceJ&Cie - Présentation de la Task Force
J&Cie - Présentation de la Task Force
Frédéric Sagez
 
J&Cie - Focus du Projet
J&Cie - Focus du ProjetJ&Cie - Focus du Projet
J&Cie - Focus du Projet
Frédéric Sagez
 
Présentation de l'Architecture de Développement du projet TRANS@ctions
Présentation de l'Architecture de Développement du projet TRANS@ctionsPrésentation de l'Architecture de Développement du projet TRANS@ctions
Présentation de l'Architecture de Développement du projet TRANS@ctions
Frédéric Sagez
 
ASFA - Architecture cible du projet COLSA
ASFA - Architecture cible du projet COLSA ASFA - Architecture cible du projet COLSA
ASFA - Architecture cible du projet COLSA
Frédéric Sagez
 
Présentation de Planete Presse.ppt
Présentation de Planete Presse.pptPrésentation de Planete Presse.ppt
Présentation de Planete Presse.ppt
Frédéric Sagez
 
ASFA - Méthodologie - AGILE
ASFA - Méthodologie - AGILEASFA - Méthodologie - AGILE
ASFA - Méthodologie - AGILE
Frédéric Sagez
 
ASFA - Méthodologie - Domain Driven Design
ASFA - Méthodologie - Domain Driven DesignASFA - Méthodologie - Domain Driven Design
ASFA - Méthodologie - Domain Driven Design
Frédéric Sagez
 
ASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSA
Frédéric Sagez
 
Planète presse : recommandations du futur réseau
Planète presse : recommandations du futur réseauPlanète presse : recommandations du futur réseau
Planète presse : recommandations du futur réseau
Frédéric Sagez
 
Projet COLSA - Story-board v1
Projet COLSA  - Story-board v1Projet COLSA  - Story-board v1
Projet COLSA - Story-board v1
Frédéric Sagez
 
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de VersaillesRapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Frédéric Sagez
 

Plus de Frédéric Sagez (17)

Threat Modelling and managed risks for medical devices
Threat Modelling and managed risks for medical devicesThreat Modelling and managed risks for medical devices
Threat Modelling and managed risks for medical devices
 
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité ProjetE-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
 
Atari ST : Histoire de l'OS
Atari ST : Histoire de l'OSAtari ST : Histoire de l'OS
Atari ST : Histoire de l'OS
 
HOPEX V2R1 : Database maintenance tasks
HOPEX V2R1 : Database maintenance tasksHOPEX V2R1 : Database maintenance tasks
HOPEX V2R1 : Database maintenance tasks
 
Atari ST - History of The OS
Atari ST - History of The OSAtari ST - History of The OS
Atari ST - History of The OS
 
AFUP - Mini conférences PHP - Les LOGs
AFUP - Mini conférences PHP - Les LOGsAFUP - Mini conférences PHP - Les LOGs
AFUP - Mini conférences PHP - Les LOGs
 
J&Cie - Présentation de la Task Force
J&Cie - Présentation de la Task ForceJ&Cie - Présentation de la Task Force
J&Cie - Présentation de la Task Force
 
J&Cie - Focus du Projet
J&Cie - Focus du ProjetJ&Cie - Focus du Projet
J&Cie - Focus du Projet
 
Présentation de l'Architecture de Développement du projet TRANS@ctions
Présentation de l'Architecture de Développement du projet TRANS@ctionsPrésentation de l'Architecture de Développement du projet TRANS@ctions
Présentation de l'Architecture de Développement du projet TRANS@ctions
 
ASFA - Architecture cible du projet COLSA
ASFA - Architecture cible du projet COLSA ASFA - Architecture cible du projet COLSA
ASFA - Architecture cible du projet COLSA
 
Présentation de Planete Presse.ppt
Présentation de Planete Presse.pptPrésentation de Planete Presse.ppt
Présentation de Planete Presse.ppt
 
ASFA - Méthodologie - AGILE
ASFA - Méthodologie - AGILEASFA - Méthodologie - AGILE
ASFA - Méthodologie - AGILE
 
ASFA - Méthodologie - Domain Driven Design
ASFA - Méthodologie - Domain Driven DesignASFA - Méthodologie - Domain Driven Design
ASFA - Méthodologie - Domain Driven Design
 
ASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSA
 
Planète presse : recommandations du futur réseau
Planète presse : recommandations du futur réseauPlanète presse : recommandations du futur réseau
Planète presse : recommandations du futur réseau
 
Projet COLSA - Story-board v1
Projet COLSA  - Story-board v1Projet COLSA  - Story-board v1
Projet COLSA - Story-board v1
 
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de VersaillesRapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
 

Concept de l’Intégration Continue

  • 1. Concept de l’Intégration Continue Publié par Frédéric Sagez Dernière mise à jour le 16/11/2010
  • 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
  • 10. La solution Cruise Control 10
  • 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
  • 12. La solution Team City 12
  • 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