Environnement de Développement Outils Open-Source d'integration Continue. Exemple de Mise en Oeuvre



Documents pareils
Hudson Serveur d Intégration Continue. Adrien Lecharpentier IR3 Ingénieurs2000, Université de Marne la Vallée

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

Quick Start Installation de MDweb version 2.3

SonarQube : une autre vision de votre logiciel

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

TD/TP 1 Introduction au SDK d Android

Eclipse atelier Java

PROCEDURE D'INSTALLATION OPENREPORTS

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

Expert technique J2EE

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

Automatisation de l administration système

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

TechSoftware Présentations

Installer Enterprise Miner 5.1 en SAS environnement Windows

Usine de développement : étude comparative

L Intégration Continue & Agilité

Enterprise Scrum Organisation des développements chez exo. Agile Tour Rennes 2010 / 10 / 07

Open Source Job Scheduler. Installation(s)

Environnements de développement (intégrés)

EJBCA PKI Open Source

J2EE in practice. Olivier Liechti Patrik Fuhrer. Department of Informatics. Computer Science Master Course - SH 2004/05

Consultant MOE/Référent technique JAVA/J2EE JSF, RICH FACES

Serveur Subversion Debian GNU/Linux

Guide d utilisation de Secure Web Access

Utilisation de Jakarta Tomcat

Correspondances Windows-Linux

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

ECLIPSE ET PDT (Php development tools)

Vanilla : Virtual Box

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab

Projet de développement

Bases Java - Eclipse / Netbeans

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Guide d'installation de. Esup-ECM. version G.E.D. Nuxeo

Guide des Développeurs SITools2 V3

Marie-Christine Spengler

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Serveur de travail collaboratif Michaël Hoste -

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Guide d installation rapide

Guide d installation de SugarCRM Open Source version 4.5.1

COMPÉTENCES TECHNIQUES

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA. 32 ans - 6 ans d'expérience

WDpStats Procédure d installation

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Vulgarisation Java EE Java EE, c est quoi?

Documentation Projet ASR : Construction d un système réparti multi-échelle

S10 - Automatisez la compilation et le déploiement de vos applications IBM i avec Arcad Pack for Rational

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Quelques mots à propos de Sage

HISTOIRE D UNE DIGITAL FACTORY

JOnAS Day 5.1. Outils de développements

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Table des matières. Date : Version : 29/06/ Objet : OpenVas 6.0

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

WORKSHOP OBIEE 11g (version ) PRE-REQUIS:

Eclipse Process Framework et Telelogic Harmony/ITSW

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - Android. 29 ans - 5 ans d'expérience

PRODUCTS LIST (updated 11th January 2010)

2 Formation utilisateur

MRTG & RRD Tool. Multi Router Traffic Grapher

Lancelot Bertrand Expert Java J2ee

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Retour d'expérience avec : OCS Inventory & GLP

Editing and managing Systems engineering processes at Snecma

Formation : Langues : Types d Intervention et Secteurs d Activité :

Installation et prise en main

Guide d installation JMap 5.0

An Phong Do. 567 croissant des Glaïeuls Laval (Québec) H7X 3H2 Cellulaire : anphongdo@gmail.com

31 ans - 8 ans d'expérience

Direction des Technologies de l Information. Présentation OCDE. Contribution du Parlement européen. L utilisation de l OPEN SOURCE au PE

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Jean-Philippe VIOLET Solutions Architect

Analyse comparative entre différents outils de BI (Business Intelligence) :

Open Vulnerability Assessment System

BIRT (Business Intelligence and Reporting Tools)

ShareLatex, éditeur Latex collaboratif auto-hebergé : retour d expérience au LE2I

PPE GESTION PARC INFORMATIQUE

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

application Chouette -

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Introduction à Eclipse

Catalogue Formations Jalios

Tutoriel code::blocks

Transcription:

L informatique qui réinvente la finance Environnement de Développement Outils Open-Source d'integration Continue Exemple de Mise en Oeuvre Arnaud NAUWYNCK arnaud.nauwynck@gmail.com

Plan Introduction Cycle en V Junit Méthodes Agiles Maven, outils fédérateur Junit surefire, cobertura... Maven Build CI Server : Hudson Maven Proxy/Repository : Nexus Maven reporting metrics : Sonar Autres Outils : JIRA, Wiki,... 2

Overview Maven Proxy Maven Repo Nexus maven Web Site, Download Site Apache Postes Dev SCM Integration Source Repository Server Eclipse maven cygwin... Time Tracking Prj Mgt Deploy Test Env Svn Git Hudson maven Doc Change Reports Metrics Bug Tracking Issue Mgt Wiki Sonar Jira Integ PROD 3

Cycles de Dev Les méthodologies anciennes Les Cycles en V... peu efficaces Etude fonctionnelle Etude technique, conception (implémentation) Test functionnel vérification adéquation demande/livraison Test technique... Développement 4

Quelques défauts des méthodologies V Cycle très long Pas de feed-back rapides Sur-spécification / sur-conception / formelle Défaut des approches puristes UML, Merise... Tests... en fin de dev!!!! En pratique : n'existe pas Plus de temps (marge non prévue / retard) Impossible (conception incompatible avec tests) Après les devs... plus besoin 5

Cycles en V versus Méthodes Agiles Cycle très long Pas de feed-back rapides Sur-spécification UML Tests inexistant / en fin de dev!!!! Cycles très COURTS Feed-back rapides, heure:outils / jour:hommes Pas de sur-spécification Tests primordiaux / en DEBUT de dev!!!! Recherche systématique d'efficacité 6

Synonymes et Variantes des Méthodes Modernes Extreme Programming Scrum Méthode Agiles Test-Driven development Méthodes à cycle court Intégration Continue Java+Eclipse+JUnit+Maven+SCM+Hudson... 7

Les Tests Unitaires... Révolution JUnit JUnit = librairie simplissime de tests unitaires = Révolution dans le monde du dev Méthodes modernes = Tests Unitaires Beaucoup repose sur les tests!!! Conception, UseCase => remplacer par Tests Vérifications Functionnelles => Tests Vérifications Techniques => Tests Non regression / refactoring => Tests 8

Outils d'exécution des Tests Unitaires Eclipse : right click > Run as Junit test ant junitrunner mvn test:test... implicit dans mvn install Reporting html: mvn surefire... implicit dans mvn site consultable par http après nightly build Reporting historisés, incrémentals: Hudson, sonar 9

Détail Exécution Junit sous Maven 10

Outils de Build pour Méthodes Agiles Projet compilé et testé tous les jours Nightly build... Full Tests... à chaque commit Snapshot... Smoke Tests = Intégration Continue => Outils necessaires : Build automatique (svn, maven, hudson...) Execution de tests (junit, cobertura...) Rapport de tests, métriques (mvn site, sonar.. ) 11

Outil de Bug Tracking, Issues Mngt BTS = Bug Tracking System Workflow typique d'un bug: Open Resolved Homologated Closed Genéralisation Issue, Wish list, todo list : Unit Tested Bug, Task, Enhancement, NewFeature... Outils standards : JIRA (c), free for Open source projects only Bugzilla 12

Outils de Scrum Meeting Taches à courtes échéances... (1-5 jours) Besoin!= suivi historique, audit... Gestion des priorités Répartition des taches, pair-programming Estimation des difficultés, des charges Notions : Story Board, Card, Slot... Outils standards : Oral / Crayon + Papier / Tableau!! Plugin Jira Autres... 13

Hudson Main Page 14

Hudson Project Configuration 15

Hudson Project Page 16

Hudson Autobuild 17

Hudson Build Console 18

Nexus http://www.google.fr nexus maven java sonatype => http://www.sonatype.com/products/nexus => 5 minutes overview video 19

Nexus 20

Nexus Login Page 21

Nexus Repositories Admin Page 22

Nexus Artifact Search Page 23

Sonar 24

Sonar 25

Sonar Project Dashboard Screenshot 26

Sonar Junit Measures 27

Sonar JUnit Screenshot 28

ANNEXE Installation du poste Développeur Installation du Server d'intégration 29

Poste Développeur OS = Linux (unix), Windows, Mac,... outils shell (bash, ls, find, grep, sed, awk...) portés sous Windows, ex: Cygwin Java : Jdk (= Jre + tools) Maven Eclipse Client Subversion / Git Command svn (dans /bin/svn) Plugin Eclipse: subclipse/subversive, Tortoise 30

Poste Dev : Cygwin Cygwin: www.cygwin.com... click install Config factorisée dans setenv-xyz.sh Démarrer dans ~/.profile, ou explicitement source setenv.sh =. setenv.sh!= fork sh!!! Astuces sous cygwin: Cygwin convertit le PATH windows en unix: \ => /, ; => : Filesystem unix + /cygdrive/c/ + mais cmd mount absente Editer cygwin.bat pour customizer les vars et le working dir... use CHERE_INVOKE=1 31

Poste Dev : Jdk Java : Jdk (= Jre + tools)... Cf site www sun, Click install ou unzip (Rq: version avec source jsdk, java.dev.net ) export JAVA_HOME=... export PATH=$PATH:$JAVA_HOME/bin Config version java 1.4 / 5 (generics) / 6... Dans maven pom.xml... Dans Eclipse: Preferences > Java > compiler / jdk 32

Poste Dev : Maven Maven = www.maven.org... unzip export MAVEN_HOME=... Export PATH=$PATH:$MAVEN_HOME/bin ~/.m2/settings.xml optionnel, pour proxy http Hello World project : Mvn archetype:create -DgroupId=fr.iut.tps... nom du package -DartifactId=helloworld... nom du jar -D... optionnel (pom, jar, war, jsp,...) Mvn install 33

Poste Dev : Eclipse Eclipse... www.eclipse.org click unzip Gestion des installs/ plugins : Use Window>Preferences>Install... Update Site copy&paste *.jar dans /dropins copy&paste fichier *.lnk dans /dropins Gestion des multi workspaces Option -data ws1 -showlocation pour chaque launcher starteclipse_ws1_trunk.sh Options jvm: -vm.../jre/bin -vmdata -Xmx1000m... Settings sauvés dans ws1/.metadata/.plugins/... Sources séparés des ws... cf Import project 34

Poste Dev : Eclipse Config Eclipse pour Maven Preferences>Java>BuildPath Variable M2_HOME=~/.m2/repository Optionnel : plugin mevenide Config Eclipse pour Subversion Plugin subclipse www.tigris.org Subversive NB: clients svn et subclipse de même version! (fichiers metadata /.svn/ ) 35

Poste Dev : Config URLs Server Subversion... par projet, lors du checkout: svn co svn://server/repo/prj/trunk Consultable a posteriori par Svn info maven repos et maven proxys Dans pom.xml et/ou settings.xml, et ~/settings repos = ibiblio.org + repos dédiés + repo d'entreprise (nexus) proxy = pour firewall (mieux: cf nexus) Cf infos administratives dans pom.xml (site web, jira, svn...) 36

Poste Dev: Acces via Firewall Si Poste dev caché derrière firewall... Cf config Firefox pour proxy http => auto configuré dans Eclipse Parfois necéssaire pour outils xml (validation schéma xsd/dtd).. Pour Update Site => à configurer dans maven pour proxy http Cf ~/.m2/settings.xml ou prj/settings.xml Mieux: use Nexus maven proxy Sous WinNT... use NTLM Proxy local server 37

Install Serveur d'integration Jdk, maven... Idem poste client OS = Linux... avoid Windows on servers!! Mauvais points Windows... vs Linux Mem par process limité à 1Go en 32bits... version 64 bits meilleure IO moins performants... antivirus/securité/partage très consommateurs et souvent mal installés Moins stable Session mono-utilisateur, administration plus difficile... 38

Server Integ : Subversion / Git Installation svnserve : unzip / apt-get install... Creation Repository svnadmin create myrepo cd myrepo/conf Edit.conf, passwd, authz?, hooks? =>... Start : svnserve -d -r /.../myrepo port...1234 Creation projet: Svn mkdir svn://host:port/...project/trunk -m Test checkout projet: Svn co svn://host:port/...project/trunk 39

Server Integ : Hudson Hudson = click download hudson.war Start: java -jar hudson.war Open browser... http://localhost:8080 Optional config: export HUDSON_HOME=... Edit... hudson > configure Change port? Enable plugins: svn, sonar,... 40

Projects -> Svn -> Hudson Dans Hudson : add project Set project name Set subversion svn://host:port/.../trunk/project Set builder = maven2 + path to pom.xml Svn options: quiet delay + retry Mvn options: -Dvar=value... -P profile... -Xmx... Hudson maven magic : analyse auto des pom.xml multi-projets => définit les modules => compile dans l'ordre et/ou en parallele! 41

Server Integ : Sonar Download, unzip Start: sonar/bin/linux/sonar.sh start Open browser http://localhost:9000 Configure: Change database derby => postgres / mysql... Change jvm (cf wrapper.properties), port,... Import... nothing to do! Cf mvn sonar:sonar Configure for client-side: in hudson / maven Hudson: cf plugin, use sonar postgoal, jdbc Maven: conf jdbc in settings.xml or pom.xml 42

Flux de Données mvn hudson - sonar SVN 1: Detect svn change 2: Svn up Maven Project 3: mvn install Hudson 4: mvn sonar:sonar 5: get plugin + rules setting Hudson DB (builds, junits) 6: save rules results Sonar DB Sonar Server 43

Server Integ: JIRA Download + unzip + start... Open browser http://localhost:8080 Configure Choose data dirs, port, jdbc database... Define Project, Module, Users, Group... Configure url in pom.xml (for info, mvn site) 44

Server Integ: autres... Wiki Ex: confluence (cf jira),... Svn Web viewer Ex: Apache site + download site Email Server Instant Messenger (jabber) Project management... Eclipse Jazz 45

Questions Questions?? arnaud.nauwynck@gmail.com 46