Qu`est ce que l`intégration continue
Download
Report
Transcript Qu`est ce que l`intégration continue
Introduction
INTEGRATION CONTINUE
Participant : Mr Frédéric MULLER
1
A propos d’objis
Spécialiste formation JAVA depuis 2005
70% de travaux pratiques
Pédagogie participative
+ de 100 tutoriaux Java / J2ee sur www.objis.com
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation -INTEGRATION
CONTINUE
CONTINUEwww.objis.com
Formation
2
+ de 100 tutoriaux Java/j2ee
sur www.objis.com
Nos tutoriaux
pour vous initier
Nos formatrions
pour maîtriser
Soa, Web Services, Spring, Struts, Hibernate, Ant, Maven, …
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation -INTEGRATION
CONTINUE
CONTINUEwww.objis.com
Formation
3
INTRODUCTION
Qu’est ce que l’intégration continue ?
Pourquoi automatiser ?
Par où commencer ?
Le cycle vertueux de l’intégration continue
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
4
Qu’est ce que l’intégration continue ?
Technique puissante permettant dans le cadre du
développement d’un logiciel en équipes de:
Garder en phase les équipes de dév
Limiter risques de dérive
Limiter la complexité
A intervalles réguliers, vous allez construire (build)
et tester la dernière version de votre logiciel.
Parrallèlement, chaque développeur teste et valide
(commit) son travail en ajoutant son code dans un
lieu de stockage unique.
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
5
Pourquoi automatiser ?
Gagner du temps
Vous ne faîtes pas de taches répétitives
Gagner en confiance
Indépendant de votre efficacité du moment
Procédures répétables
Diminue le besoin de documentation
Pour nouveaux entrants projet, utiliser
scripts !
…et + en analysant le script.
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
6
Par où commencer ?
1) Outil centralisé gestion versions code sources
Lieu unique de partage
Retour arrières, snapshots, branches…
2) Tests unitaires automatisés
Chaque développeur
3) Scripts
Coté serveur pour automatiser (Ex : crontab)
4)Outils de communication
Mail, Tél, Rss…
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
7
Cycle vertueux intégration continue
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
Gérer les sources avec SUBVERSION
Introduction et problème à résoudre
Concepts fondamentaux
Subversion au jour le jour
Branches et Tags
Administration
Ressources et liens utiles
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
9
MAVEN : les conventions
Coordonnées MAVEN
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
10
Comparaison ANT / MAVEN
Cibles ANT
www.objis.com - INTEGRATION
CONTINUEwww.objis.com - Formation
SPRING
11
Phases Maven
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
12
Exemple de projet multi modules
Plusieurs équipes de développements
• France, Suède, Maroc, Brésil, Italie, USA
Chef de projets basé en France
• Besoin de suivi avancement travaux
(Quantité + qualité)
Architecture en couche
Technologies : Struts, Spring, Hibernate
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
13
Architecture
Model
presentati
on
service
www.objis.com - INTEGRATION
SPRING
persist
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
14
Projet Maven multi-modules
Chef de projet principal : vous !
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
15
Projet Maven multi-modules
(Composition)
Mvn install sur le parent entraîne aussi
mvn install sur modules enfant
www.objis.com - Formation
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
SPRING
16
Focus couche persistence :
les sources
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
17
Focus couche persistence :
les fichiers de propriétés
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
18
Focus couche persistence :
les dépendences
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
19
Focus couche persistence :
relation avec parent
Le module hérite de certaines propriétés
du parent (ex : éépendences) .
Cela allège le pom.xml du module
(Héritage)
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
20
Focus couche persistence :
les rapports
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
21
Focus couche persistence :
code DAO
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
22
Projet Maven : compilation globale
> mvn clean install
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
23
Projet Maven : génération site
> mvn site
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
24
Projet Maven : rapport qualité de code
(checkstyle)
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
25
Projet Maven : rapport
respect normes de développement
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
26
Rapports Maven : Exemples 1/2
Ajouter dans la section <reporting> du pom.xml
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
27
Rapports Maven : Exemples 2/2
Ajouter dans la section <reporting> du pom.xml
www.objis.com - Formation
SPRING
www.objis.com
- Formation
INTEGRATION CONTINUE
SPRINGwww.objis.com
- Formation
28
Gestionnaire repository Maven
Offre du marché :
Archiva : http://archiva.apache.org
Artifactory : http://jfrog.org
Nexus : http://nexus.sonatype.org
par équipe Maven, + moderne, nombreux plugins
Critères d’évaluation
Cycle de livraison
Modèle de déploiement (war)
Proxy/Cache de repositories (maven central, codehaus..)
Règles d’inclusion / exclusion
Conversion à la volée de Maven2/Maven1
integration eclipse (Uniquement index Nexus)
Recherche/indexation
Matrice de comparaison :
http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
www.objis.com - INTEGRATION
SPRING
www.objis.com
- Formation INTEGRATION
CONTINUE
CONTINUEwww.objis.com
- Formation
29
Exemple de produits
serveurs intégration continue
CruiseControl : http://cruisecontrol.sourceforge.net
Le plus ancien. Couplage historique avec ANT
+ intégration repositories marché :cvs,svn,cc,vss…
+ plugins pour intégration Maven1, Maven2, Nant
+ nombreuses notifications :mail,ftp,rss,im,blog,x10
+ builds parrallèles et distribués
- courbe d’apprentissage & prise en main
Hudson : http://hudson-ci.org
+ prise en main très rapide (hudson.war)
+ Administration full web & intuitive
+ intégration avec Bugzilla
- faible intégration repositories (cvs/svn en natif). Ajouter plugins
www.objis.com - INTEGRATION
CONTINUEwww.objis.com - Formation
SPRING
30
Critères de comparaison de serveurs
d’intégration continue
Matrice de comparaison serveurs
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix
Critères comparaison :
Combien de serveurs gestion version supportés ?
Combien de stratégies de notification ?
Combien d’outils de build supportés ?
Capacité à réaliser des builds en parralèle ?
Capacité à réaliser des builds distribués ?
Capacité à réaliser builds manuel ou planifiés ?
Intégration avec outil gestion bug ?
Intégration IDE ?
Facilité d’installation ? Administration ?
www.objis.com - INTEGRATION
CONTINUEwww.objis.com - Formation
SPRING
31
CruiseControl : détail résultat build
www.objis.com - INTEGRATION
CONTINUEwww.objis.com - Formation
SPRING
32
Bibliographie
SVN Book
Editions O’Reilly
407 pages
Java Power Tools
Editions O’Reilly
932 pages
Ant in action
Editions Manning
600 pages
Maven book
Editions O’Reilly
www.objis.com - Formation
420 pages
SPRINGwww.objis.com - Formation
SPRING
120