La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Formation INTEGRATION CONTINUE 1 Participant : Mr Frédéric MULLER 15-19 février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE.

Présentations similaires


Présentation au sujet: "Formation INTEGRATION CONTINUE 1 Participant : Mr Frédéric MULLER 15-19 février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE."— Transcription de la présentation:

1 Formation INTEGRATION CONTINUE 1 Participant : Mr Frédéric MULLER février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE

2 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING SOMMAIRE A propos dObjis Introduction intégration continue Gérer les sources avec Subversion Automatiser et générer rapports avec MAVEN Intégration continue avec Cruise Control Contact 2 - Formation INTEGRATION CONTINUE

3 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING A propos dobjis Spécialiste formation JAVA depuis % de travaux pratiques Bilan pédagogique individuel Veille technologique permanente Une approche unique de la formation Expertise, pédagogie, partage 3 - Formation INTEGRATION CONTINUE

4 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING + de 100 tutoriaux Java/j2ee sur Formation INTEGRATION CONTINUE Soa, Web Services, Spring, Struts, Hibernate, Ant, Maven, … Nos tutoriaux pour vous initier Nos formatrions pour maîtriser

5 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING INTRODUCTION Quest ce que lintégration continue ? Pourquoi automatiser ? Par où commencer ? Le cycle vertueux de lintégration continue 5 - Formation INTEGRATION CONTINUE

6 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Quest 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 Formation INTEGRATION CONTINUE

7 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 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 Formation INTEGRATION CONTINUE

8 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 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… 8 - Formation INTEGRATION CONTINUE

9 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Cycle vertueux intégration continue - Formation INTEGRATION CONTINUE

10 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 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 Formation INTEGRATION CONTINUE

11 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Introduction Subversion est un système de contrôle de versions (ou gestionnaire de sources). Subversion autorise plusieurs personnes à travailler sur des documents communs (chacun en ayant une copie locale) Subversion permet : synchronisations entre les différentes versions de ces documents retours arrière (undo) vers versions plus anciennes, suivi modifications au cours du temps Formation INTEGRATION CONTINUE

12 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Problème à résoudre Formation INTEGRATION CONTINUE

13 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Solution 1 : le lock Formation INTEGRATION CONTINUE

14 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Solution 2 : copy-modify-merge (phase1) Formation INTEGRATION CONTINUE

15 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Solution 2 : copy-modify-merge (phase2) Formation INTEGRATION CONTINUE

16 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Architecture SVN 16 Formation SUBVERSION

17 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING URL accès Repository svn checkout svn checkout https://monsite.com:3798/repos svn checkout file:///var/svn/repos svn checkout file:///C:/var/svn/repos svn checkout svn://localhost/repository1 svn checkout ssh+svn://localhost/repository/monprojet Formation INTEGRATION CONTINUE

18 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Arborescence Formation INTEGRATION CONTINUE

19 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Copie de travail (svn checkout) 19 Formation INTEGRATION CONTINUE

20 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Subversion au jour le jour Mettre à jour votre copie de travail svn update Réaliser des modifications svn add svn delete svn copy svn move Examiner vos changements svn status svn diff Publier vos changements svn commit 20 Formation INTEGRATION CONTINUE

21 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Désactivation cache login/passwd Par défaut, et pour vous éviter à chaque fois de fournir login/pwd, Subversion met en cache version criptée login/pwd Répertoire %APPDATA%/Subversion/auth c:\Documents And Settings\douglas\Appli_Datac:\Documents Fichier 'conf' store-auth-creds = no Formation INTEGRATION CONTINUE

22 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Repository & projets Création : svnadmin create c:\svn_repository\repository1 Import d'un projet : svn username douglas password java import monprojet1 svn://localhost/repository1/monprojet1 -m "Import initial projet 1" Contrôle daccès au repository conf\svnserve.conf et conf\passwd Organisation repository & projet 1 repository par projet ? Formation INTEGRATION CONTINUE

23 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Révisions Formation INTEGRATION CONTINUE Dès quun fichier est modifié, cest la révision de tous les fichiers qui sincrémente (différence forte avec CVS)

24 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Branches et Tags Formation INTEGRATION CONTINUE

25 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Branches et Tags Formation INTEGRATION CONTINUE Bonne pratique : répertoires trunk, tags, branches pour chaque projet

26 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Branche Formation INTEGRATION CONTINUE

27 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Création dune branche 27 svn copy -m « création dune branche de trunk»http://svn.example.com/repos/calc/trunk - Formation INTEGRATION CONTINUE

28 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Branches et tags 28 Création dun tag svn copy monprojet/trunk monprojet/tags/release-1.0-snapshot Création dune branche de développement svn copy monprojet/trunk monprojet/branches/prepa-dev-1.1 Changer de branche : svn switch monprojet/branches/prepa-dev-1.1 Merge vers branche principale Juste pour voir : svn merge –r 11:16 –dry-run Pour de vrai : svn merge –r 11:16 Revenir à version précédente svn merge –r 16:11 - Formation INTEGRATION CONTINUE

29 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Administration Subversion svnadmin Création de repository Opérations de maintenance svnlook Examiner révisions (-r) & transactions (-t) Utilisé typiquement par hooks (pré/post commit) svnlook –revision, svnlook –t svnlook info /var/svn/repos –r 19 auteur, date, nb caractère dans log Formation INTEGRATION CONTINUE

30 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Liens utiles SUBVERSION PDF SVN BOOK : Site Subversion : Client svn Subclipse plugin Eclipse 3.x Client svn windows Tortoise SVN Formation INTEGRATION CONTINUE

31 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Gestion de projet avec MAVEN Définition pour un développeur Définition pour un chef de projet Comparaison avec ANT Démo application multi-modules internationale - Formation INTEGRATION CONTINUE 31

32 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Quest ce que MAVEN ? Pour développeur/concepteur : outil de build Pour Chef de projet : outil de gestion de projet Maven est un outil de gestion projet caractérisé par – le modèle POM (Project Object Model) – Un ensemble de standards – Un cycle de vie de projet – Un système de gestion des dépendences – Une stratégie d'exécution d'objectifs (goals) standard à chaque phase d'un projet – Un ensemble de plugins implémentant des services - Formation INTEGRATION CONTINUE 32

33 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING MAVEN : les conventions Propriétés communes à un projet Maven – Installation plus facile !!! – Ex : mvn install Les sources dans $HOME/src/main/java –Ex : Employe.java Les tests dans $HOME/src/test – Ex : EmployeTest.java Les configs dans $HOME/src/main/resources – Ex : database.properties - Formation INTEGRATION CONTINUE 33

34 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING MAVEN : les conventions Dans fichier pom.xml, vous décrivez votre projet : – Quelle licence ? ( ) – Quels développeurs ? ( ) – Quelles dépendences ? ( ) – Quel outil gestion des sources ? ( ) – Quel site web ? ( ) – Quels plugins ( )… Vous définissez de façon unique votre projet, en lui associant des 'coordonées' = ensemble d'identifiants : – GroupId : groupe ds lequel le projet se trouve – ArtifactId : nom du projet – Version : version du projet - Formation INTEGRATION CONTINUE 34

35 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING MAVEN : les conventions Coordonnées MAVEN - Formation INTEGRATION CONTINUE 35

36 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING MAVEN : POM (Project Object Model) Gestion de dépendences Via 'coordonnées' maven de la dépendence Repositories distants Une dépendance peux se trouver sur repository distant (Ex :.jar sur autre serveur) Réutilisabilité Plugins Maven (Installation, configuration, personalisation) Portabilité Intégration avec IDE : Netbeans, Eclipse, jBuilder... Recherche simplifiée d'artifacts mvnrepository.com ou index Nexus - Formation INTEGRATION CONTINUE 36

37 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Comparaison ANT / MAVEN MAVEN a des conventions. Il sait déja où sont les sources, les tests, les fichiers de config... Classes créées dans target/classes Création de Jars. MAVEN est déclaratif. Tout ce que vous avez à faire est de créer un fichier pom.xml et mettre vos sources dans le répertoire par défaut. Un projet MAVEN possède un cycle vie, que vous invoquez lorsque vous lancez mvn install. Maven execute un ensemble d'instructions associées au cycle de vie du projet - Formation INTEGRATION CONTINUE 37

38 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Comparaison ANT / MAVEN Cibles ANT 38

39 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING MAVEN : plugin, goal, Mojo. Exemple avec le plugin help Le plugin help possède 4 goal (taches) Chaque goal implémenté par un Mojo (classe Java) help:describe fournit des infos sur un plugin/goal Mvn help:describe –Dplugin=help Mvn help:describe –Dplugin=help -Ddetail Mvn help:describe –Dplugin=help -Dfull Mvn help:describe –Dplugin=help -DMojo=system –Dfull Les autres ( help:active-profiles, help:effective-pom, help:effective-settings ) se lancent à partir de la racine dun projet maven (pom.xml) - Formation INTEGRATION CONTINUE 39

40 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Cibles Maven # mvn compile Compilation dans target/classes # mvn package Création du Jar # mvn install Création du Jar et install. Repository local $USER_HOME/.m2/repository # mvn package Création du Jar # mvn clean Suppression du répertoire target - Formation INTEGRATION CONTINUE 40

41 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Maven : cycle de vie et relation Phases / Plugins - Formation INTEGRATION CONTINUE 41

42 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Phases Maven - Formation INTEGRATION CONTINUE 42

43 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Sections principales dun pom.xml Coordonnées Maven Construction : Plugins phase build : Génération de rapports : Stockage artifacts (livrables) : Dépendances : Optimisations - Formation INTEGRATION CONTINUE 43

44 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Dépendances : plugin dependency - Formation INTEGRATION CONTINUE mvn dependency:resolve (lister dépendances) mvn dependency:tree (arbre des dépendances) mvn dependency:tree -X (arbre : mode debug) Utile pour résolution de pb Equivalent graphique via plugin m2eclipse 44

45 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Plugin Eclipse m2eclipse - Formation INTEGRATION CONTINUE Création projet Maven Intégration avec serveur gestion sources Combinaison plugins Subclipse / m2eclipse Synchronisation dépendences eclipse / maven Editeur pom.xml Livre maven book Instal. dépendances/plugin (index Nexus) Graphe de dépendances 45

46 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Plugin Eclipse m2eclipse : exemple graphe dépendances - Formation INTEGRATION CONTINUE 46

47 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Plugin Eclipse m2eclipse : lindex Nexus en action pour création projet - Formation INTEGRATION CONTINUE 47

48 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING 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 - Formation INTEGRATION CONTINUE 48

49 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Architecture 49 service Model presentati on persist - Formation INTEGRATION CONTINUE

50 - Formation SPRINGwww.objis.com - Formation SPRING Projet Maven multi-modules 50 Chef de projet principal : vous ! - Formation INTEGRATION CONTINUE

51 - Formation SPRINGwww.objis.com - Formation SPRING Projet Maven multi-modules 51 (Composition) Mvn install sur le parent entraîne aussi mvn install sur modules enfant - Formation INTEGRATION CONTINUE

52 - Formation SPRINGwww.objis.com - Formation SPRING Focus couche persistence : les sources Formation INTEGRATION CONTINUE

53 - Formation SPRINGwww.objis.com - Formation SPRING Focus couche persistence : les fichiers de propriétés Formation INTEGRATION CONTINUE

54 - Formation SPRINGwww.objis.com - Formation SPRING Focus couche persistence : les dépendences Formation INTEGRATION CONTINUE

55 - Formation SPRINGwww.objis.com - Formation SPRING Focus couche persistence : relation avec parent 55 (Héritage) Le module hérite de certaines propriétés du parent (ex : éépendences). Cela allège le pom.xml du module - Formation INTEGRATION CONTINUE

56 - Formation SPRINGwww.objis.com - Formation SPRING Focus couche persistence : les rapports Formation INTEGRATION CONTINUE

57 - Formation SPRINGwww.objis.com - Formation SPRING Focus couche persistence : code DAO Formation INTEGRATION CONTINUE

58 - Formation SPRINGwww.objis.com - Formation SPRING Projet Maven : compilation globale 58 > mvn clean install - Formation INTEGRATION CONTINUE

59 - Formation SPRINGwww.objis.com - Formation SPRING Projet Maven : génération site 59 > mvn site - Formation INTEGRATION CONTINUE

60 - Formation SPRINGwww.objis.com - Formation SPRING Projet Maven : rapport qualité de code (checkstyle) Formation INTEGRATION CONTINUE

61 - Formation SPRINGwww.objis.com - Formation SPRING Projet Maven : rapport respect normes de développement Formation INTEGRATION CONTINUE

62 - Formation SPRINGwww.objis.com - Formation SPRING Rapports Maven : Exemples 1/ Formation INTEGRATION CONTINUE Ajouter dans la section du pom.xml

63 - Formation SPRINGwww.objis.com - Formation SPRING Rapports Maven : Exemples 2/ Formation INTEGRATION CONTINUE Ajouter dans la section du pom.xml

64 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Gestionnaire repository Maven Offre du marché : Archiva : Artifactory : Nexus : 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 : Formation INTEGRATION CONTINUE

65 - Formation SPRINGwww.objis.com - Formation SPRING Liens utiles MAVEN Site Maven : Maven book (pdf) : Anglais : Plugin Eclipse (m2eclipse): Tutoriel Maven Objis : Formation INTEGRATION CONTINUE

66 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING RAPPEL définition intégration continue ? Technique puissante permettant dans le cadre du développement dun logiciel en équipes: Garder en phase les équipes de dév. Limiter risques 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 Formation INTEGRATION CONTINUE

67 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Exemple de produits serveurs intégration continue CruiseControl : 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 dapprentissage & prise en main Hudson : + 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 67

68 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Critères de comparaison de serveurs dintégration continue Matrice de comparaison serveurs 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 ? 68

69 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Configuration CruiseControl Configuration manuelle : fichier CC_HOME\config.xml : nom du projet (attribut name) : méthodes notifications résultat build : quelle tache avant le build ? : où sont les sources à scruter ? : que lancer (script ant, maven…) : pour affichage logs build sur console web Configuration graphique avec CC-Config Instructions : cc-config.sourceforge.net/install.html 69

70 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Exemple configuration 70

71 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Configuration CruiseControl : Notification par mail 1 71

72 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING Configuration CruiseControl : projet Maven 2 sous Subversion 2 3 Déclaration Accès sources SUBVERSION Récupération source SUBVERSION pour un projet maven2 72

73 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING CruiseControl : détail résultat build 73

74 - INTEGRATION CONTINUEwww.objis.com - Formation SPRING CC-Config : Configuration & Monitoring graphique 74

75 - Formation SPRINGwww.objis.com - Formation SPRING Bibliographie 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

76 - Formation SPRINGwww.objis.com - Formation SPRING Contact : Douglas Mbiandou Ingénieur INSA Lyon (2000) 10 ans d'expériences projets SI Architecte / Formateur Java Responsable formations Objis Tél : / Formation INTEGRATION CONTINUE


Télécharger ppt "Formation INTEGRATION CONTINUE 1 Participant : Mr Frédéric MULLER 15-19 février 2009 – Paris La Défense Exemplaire Mr Anthony HERBE."

Présentations similaires


Annonces Google