Title: INTEGRATION CONTINUE
1Introduction INTEGRATION CONTINUE
Participant Mr Frédéric MULLER
1
2A propos dobjis
- 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 - Formation INTEGRATION CONTINUE
2
3 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 - Formation INTEGRATION CONTINUE
3
4INTRODUCTION
- Quest ce que lintégration continue ?
- Pourquoi automatiser ?
- Par où commencer ?
- Le cycle vertueux de lintégration continue
www.objis.com - Formation INTEGRATION CONTINUE
4
5Quest ce que lintégration continue ?
- Technique puissante permettant dans le cadre du
développement dun 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 - Formation INTEGRATION CONTINUE
5
6Pourquoi 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 - Formation INTEGRATION CONTINUE
6
7Par 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 - Formation INTEGRATION CONTINUE
7
8Cycle vertueux intégration continue
www.objis.com - Formation INTEGRATION CONTINUE
9Gé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 - Formation INTEGRATION CONTINUE
9
10MAVEN les conventions
Coordonnées MAVEN
www.objis.com - Formation INTEGRATION CONTINUE
10
11Comparaison ANT / MAVEN
Cibles ANT
11
12Phases Maven
www.objis.com - Formation INTEGRATION CONTINUE
12
13Exemple 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 - Formation INTEGRATION CONTINUE
13
14Architecture
Model
service
presentation
persist
www.objis.com - Formation INTEGRATION CONTINUE
14
15Projet Maven multi-modules
Chef de projet principal vous !
www.objis.com - Formation INTEGRATION CONTINUE
15
16Projet Maven multi-modules
(Composition)
Mvn install sur le parent entraîne aussi mvn
install sur modules enfant
www.objis.com - Formation INTEGRATION CONTINUE
16
17Focus couche persistence les sources
www.objis.com - Formation INTEGRATION CONTINUE
17
18Focus couche persistence les fichiers de
propriétés
www.objis.com - Formation INTEGRATION CONTINUE
18
19Focus couche persistence les dépendences
www.objis.com - Formation INTEGRATION CONTINUE
19
20Focus 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 INTEGRATION CONTINUE
20
21Focus couche persistence les rapports
www.objis.com - Formation INTEGRATION CONTINUE
21
22Focus couche persistence code DAO
www.objis.com - Formation INTEGRATION CONTINUE
22
23Projet Maven compilation globale
gt mvn clean install
www.objis.com - Formation INTEGRATION CONTINUE
23
24Projet Maven génération site
gt mvn site
www.objis.com - Formation INTEGRATION CONTINUE
24
25Projet Maven rapport qualité de
code (checkstyle)
www.objis.com - Formation INTEGRATION CONTINUE
25
26Projet Maven rapport respect normes de
développement
www.objis.com - Formation INTEGRATION CONTINUE
26
27Rapports Maven Exemples 1/2
Ajouter dans la section ltreportinggt du pom.xml
www.objis.com - Formation INTEGRATION CONTINUE
27
28Rapports Maven Exemples 2/2
Ajouter dans la section ltreportinggt du pom.xml
www.objis.com - Formation INTEGRATION CONTINUE
28
29Gestionnaire 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 dinclusion / 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
RepositoryManagerFeatureMatrix
www.objis.com - Formation INTEGRATION CONTINUE
29
30Exemple de produits serveurs intégration
continue
- CruiseControl http//cruisecontrol.sourceforge.n
et - 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,x
10 - builds parrallèles et distribués
- - courbe dapprentissage 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
30
31Critères de comparaison de serveurs
dintégration continue
- Matrice de comparaison serveurs
- http//confluence.public.thoughtworks.org/display/
CC/CIFeatureMatrix - Critères comparaison
- Combien de serveurs gestion version supportés ?
- Combien de stratégies de notification ?
- Combien doutils 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é dinstallation ? Administration ?
31
32CruiseControl détail résultat build
32
33Bibliographie
- SVN Book
- Editions OReilly
- 407 pages
- Java Power Tools
- Editions OReilly
- 932 pages
- Ant in action
- Editions Manning
- 600 pages
- Maven book
- Editions OReilly
- 420 pages
120