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