SlideShare una empresa de Scribd logo
1 de 70
Petit Déjeuner EUROSITES GEORGE V
Industrialisation PHP




Hervé Leclerc : CTO Alter Way Solutions
Agenda
Point de situation
     Constat
     Objectifs de l'industrialisation
     Défis
Solutions
     Axes
     IDE + SCM
     Frameworks
     Tests
     Intégration continue
     Audit Statique : Cornac
     Gestion des environnements
     Automatisation des déploiements
     Implémentation type d'une PIC
Bénéfices

13 octobre 2011                         Copyright Alter Way       2
Constat

L'utilisation de PHP en entreprise hors des directions
métiers et gouvernée par la DSI est relativement récente




13 octobre 2011      Copyright Alter Way              3
Constat

Les DSI se retrouvent désormais confrontées à différentes
problématiques




13 octobre 2011       Copyright Alter Way              4
Constat

                  Applicatifs hétérogènes




13 octobre 2011        Copyright Alter Way        5
Constat


Bonnes pratiques de développement non définies ou
dépendantes des applicatifs




13 octobre 2011    Copyright Alter Way          6
Constat


                  Qualité de code disparate




13 octobre 2011         Copyright Alter Way        7
Constat

       Base de code non testée de manière automatique




13 octobre 2011         Copyright Alter Way             8
Constat


Pas ou peu d'indicateurs de qualité, de performance, de
maintenabilité du code




13 octobre 2011      Copyright Alter Way              9
Constat


      Pas de processus unifié sur l'ensemble des acteurs




13 octobre 2011         Copyright Alter Way                10
Constat

                  Pression continue de la production




13 octobre 2011             Copyright Alter Way            11
Industrialisation : une définition
Mise en œuvre de pratiques et d'outils visant à rendre les
logiciels produits plus robustes, tout en restant dans des
délais et des coûts maîtrisés.




13 octobre 2011        Copyright Alter Way               12
Objectifs


Gagner du temps en automatisant au maximum toutes les
tâches récurrentes




13 octobre 2011     Copyright Alter Way            13
Objectifs


Gagner en qualité (documentation, tests unitaires, normes,
respect des licences, mutualisation…)




13 octobre 2011       Copyright Alter Way              14
Objectifs

             Raccourcir les cycles de mise en production




13 octobre 2011             Copyright Alter Way              15
Objectifs


   Suivre l’évolution des projets par des indicateurs clés




13 octobre 2011         Copyright Alter Way                  16
Défis


Exemples de défis quotidiens
   65 portails à refaire en 6 mois

   120 événements par an, sur 150 serveurs

   6 personnes pour mettre à niveau 350
    intranets

   Une application sur une ville : 12 villes pour
    Noël, 2 pays l’an prochain


   Un employé      à   temps    plein     pour       le
    déploiement




13 octobre 2011                 Copyright Alter Way          17
Outillage




  Les outils sont nombreux et dissociés
  Il faut du temps pour les mettre en place et les entretenir
  Pour de nombreux petits projets, il faut les automatiser
13 octobre 2011             Copyright Alter Way                        18
Agenda
Point de situation
     Constat
     Objectifs de l'industrialisation
     Défis
Solutions
     Axes
     IDE + SCM
     Frameworks
     Tests
     Intégration continue
     Audit Statique : Cornac
     Gestion des environnements
     Automatisation des déploiements
     Implémentation type d'une PIC
Bénéfices

13 octobre 2011                         Copyright Alter Way       19
Axes




3 axes majeurs
 Libération du code

 Capitalisation

 Implication des utilisateurs




13 octobre 2011            Copyright Alter Way    20
Axes → Relations

                           Code                Capitalisation

                    ●IDE                ●Conception
                                       ●Déploiement
                   ●Framework           ●SCM

                                                             ●Tests
                  ●Debugging
                             ●IC
                           ●Docs Techniques
                           ●Méthodes              ●Bug
                                                  Tracking

                               ●Tests Fonctionnels
                           ●Documentation Utilisateur

                                  Implication

13 octobre 2011                 Copyright Alter Way                        21
IDE

             IDE : Integrated Development Environment




13 octobre 2011            Copyright Alter Way          22
IDE
 Pourquoi utiliser un IDE ?
 Un éditeur simple n'est souvent pas suffisant
 Donner aux développeurs un environnement complet qui
 accélère et simplifie son travail




13 octobre 2011      Copyright Alter Way            23
IDE

Comment un IDE augmente la productivité et la
qualité du travail :

 En fournissant un outil d'édition puissant,
  graphique

 En utilisant des composants réseaux (SCM
  SSH/FTP/WEBDAV...)

 En gérant les différents librairies et
  frameworks

 En fournissant un environnement de débogage
  et tests intégrés

 En facilitant la production de documentation

 13 octobre 2011              Copyright Alter Way   24
IDE

   Fonctions intégrées
    Colorisation syntaxique
      Auto-complétion
      Intégration aux dépôts de code
      Intégration avec un ou plusieurs
       frameworks
      Débogueur
      Profiler
      Intégration d'outils externes
       (Tests unitaires, déploiement,..)
      Refactoring et génération de code


   Quelques IDE open source
    Eclipse
           PDT, DLTK, Pulse, RT …
      NetBeans
      Aptana


13 octobre 2011                            Copyright Alter Way   25
SCM

    SCM : Source Control Management
     Gestion des versions et révisions
      de code
     Outils très puissants permettant de
      gérer dans des dépôts centralisés ou
      non du code source
     Facilite le travail en équipe
     Historisation du code
     Pérennité du code
     Quelques SCM open source :
        Centralisés : CVS, Subversion

        Décentralisés : Git, Bazaar,
          Mercurial




13 octobre 2011                Copyright Alter Way    26
Frameworks

   Très souvent version pro
   Ensemble de composants éprouvés
    et prêts à l'emploi
   Cœur technique des projets
   Simplifient,    standardisent         et
    accélèrent les développements
   Imposent des règles        strictes   de
    développement


Quelques Frameworks PHP
 Zend Framework
   Symfony
   Jelix
   CakePHP
   Yii
   eZ Publish
   Drupal
   ...
13 octobre 2011                       Copyright Alter Way           27
Tests

Les Tests
Ils sont de plusieurs types :
 Unitaires
       SimpleTest
       PHPUnit
 Fonctionnels
       Selenium
       SimpleTest
       Cucumber
   Performance et montée en charge
      JMeter
      OpenSTA
      Twill
Ils sont automatisés
Ils fournissent des résultats structurés
utilisables    dans   des   portails  de
restitution

13 octobre 2011                   Copyright Alter Way     28
Intégration Continue




13 octobre 2011   Copyright Alter Way                    29
Intégration Continue




13 octobre 2011   Copyright Alter Way                    30
Intégration Continue


Permet de valider, vérifier au fil de l'eau toutes les
modifications effectuées sur un code source




13 octobre 2011      Copyright Alter Way                    31
Intégration Continue


   Permet de supprimer les effets négatifs des cycles en V




13 octobre 2011        Copyright Alter Way                    32
Intégration Continue


Elle met en œuvre tous les outils et concepts vus précédemment




13 octobre 2011         Copyright Alter Way                    33
Intégration Continue


                  Tous les processus sont automatisés




13 octobre 2011              Copyright Alter Way                    34
Intégration Continue

    La qualité du code est en permanence mesurée (couverture des
                   tests unitaires et fonctionnels)




13 octobre 2011            Copyright Alter Way                     35
Intégration Continue

Les indicateurs sont rassemblés dans une interface de présentation
(Sonar/PHPUnderControl) ou Jenkins elle même




13 octobre 2011          Copyright Alter Way                    36
Intégration Continue

La documentation est aussi générée automatiquement dans ces
processus




13 octobre 2011       Copyright Alter Way                    37
Focus Qualimétrie




13 octobre 2011   Copyright Alter Way                 38
Focus Qualimétrie 

 phpcpd


                                            Plugin




                  PHP_CodeSniffer




13 octobre 2011   Copyright Alter Way                  39
Jenkins




13 octobre 2011   Copyright Alter Way       40
Jenkins




13 octobre 2011   Copyright Alter Way       41
Jenkins




13 octobre 2011   Copyright Alter Way       42
Jenkins




13 octobre 2011   Copyright Alter Way       43
Sonar
                                        Architecture et conception
                                        Architecture et conception
                                        Duplications
                                        Duplications
                                        Test unitaires
                                        Test unitaires
                                        Complexité
                                        Complexité
                                        Bogues potentiels
                                        Bogues potentiels
                                        Règles de codage
                                        Règles de codage
                                        Commentaires
                                        Commentaires




13 octobre 2011   Copyright Alter Way                                44
Sonar




13 octobre 2011   Copyright Alter Way     45
Sonar




13 octobre 2011   Copyright Alter Way     46
PHPUnderControl




13 octobre 2011   Copyright Alter Way               47
PHPUnderControl




13 octobre 2011   Copyright Alter Way               48
Doxygen / PhpDoc
                             Doxygen




                                                 PhpDocumentor




13 octobre 2011   Copyright Alter Way                      49
Cornac




                                        Audit Statique

13 octobre 2011   Copyright Alter Way               50
Cornac


       Cornac : auditeur statique pour PHP

       Édité par Alter Way, open source
        https://github.com/alterway/cornac

       Exécution automatique

       Analyse sans exécution

       Scrute l'application dans son ensemble

       Proche de PHPMD et PHPDepend



13 octobre 2011                    Copyright Alter Way      51
Cornac → Principales fonctions


     Inventaire d'application                   Migration 5.3
            Prendre du recul sur                       Fonctions obsolètes
             l'application                              Passage par référence
            Lister les noms utilisés                   Référence après « new »
            Lister les fonctionnalités                 Ex : mktime ne prend plus 7
             utilisées                                   paramètres
            Voir rapidement les
             incohérences techniques
                                                 Nom de structure
     Aspects techniques
                                                        Extrait toutes les structures
            Lister tous les aspects
                                                         nommées
             techniques
                                                        Étudie leurs conventions
            Fonctionnalités PHP
            Fonctionnalités avancées
                                                        Étudie leur ensemble
            Fonctionnalités obsolètes
                                                        Étudie leur sémantique
            Dépendances


13 octobre 2011                           Copyright Alter Way                            52
Cornac → inventaire


    #./bin/cornac -I spotweb.ini
    # « Tokenizeur »
    # Auditeur
    # Done




13 octobre 2011                    Copyright Alter Way                   53
Cornac → inventaire




13 octobre 2011   Copyright Alter Way                   54
Cornac → Cartographie




            Utilisation des constantes                         Réseau d'inclusion




                                         Hiérarchies

13 octobre 2011                      Copyright Alter Way                            55
Relations

                                 Code                       Capitalisation
                     - Eclipse, NetBeans,           - ArgoUML, StarUML, PowerArchictect
                     Aptana
                                                 - Phing, Capistrano, Fabric
                  - Zend, Symfony, Jelix,
                  Yii, Cakephp, Drupal, eZ       - Hg, SVN, Git, CVS     - SimpleTest,
                                                                         UnitTest,
                                                                         PHPUnit,
                  - Xdebug,
                                                                         PHPMD, PHPCD,
                  cachegrind,
                                    - Jenkins,               - Selenium, PHPCS
                  wireshark         Hudson,                  Httperf,
                                    PhpUnderControl          Jmeter,
                                - Doxygen,                   Funkload
                                PHPdocs
                                                             - Jira, Redmine, Mantis
                                - Agilefant, Xplanner,
                                IceScrum,
                                Agilo,XPStoryStudio


                                      - Selenium,
                                      GreenPaper
                                                      - Docbook


                                             Implication

13 octobre 2011                        Copyright Alter Way                                      56
Gestion des environnements

Quatre types d'environnements classiques :
     Développement
     Intégration
     Pré-production
     Production

Développement
     En local ou sur un serveur spécialisé
     Débogueur et profileur disponibles
     Affichage des erreurs

Intégration
      Permet de d’effectuer       la    recette   des
       changements

Pré-production
     Identique à la production         (performances,
      configuration, données)

Production
     Optimisé pour la performance et la sécurité
     Supervisé pour assurer la qualité de service

13 octobre 2011                         Copyright Alter Way               57
Automatisations


     Capistrano
            Ne faire que ce qui est utile
            Le tout simplement
            ROI assuré
            Gestion des « releases »
            Gestion des « rollbacks »


     Webistrano
            Interface WEB pour Capistrano
            Gestion des droits possibles
             par greffons
            Comptes-rendus et
             historiques
            Gestion centralisée



13 octobre 2011                       Copyright Alter Way               58
Staging
   Interface Web pour gérer les déploiements

   Gestions des différents « stages »

   Dédramatisation des déploiements

   Scenarii exportables (capistrano)

   Recettes disponibles dans la communauté




13 octobre 2011                          Copyright Alter Way       59
Recettes


C
a
p
i
s
t
r
a
n
o



13 octobre 2011   Copyright Alter Way        60
Webistrano




13 octobre 2011   Copyright Alter Way          61
Webistrano




13 octobre 2011   Copyright Alter Way          62
Webistrano




13 octobre 2011   Copyright Alter Way          63
Webistrano




13 octobre 2011   Copyright Alter Way          64
Webistrano




13 octobre 2011   Copyright Alter Way          65
Webistrano




13 octobre 2011   Copyright Alter Way          66
Implémentation IC typique




                  Jenkins




13 octobre 2011   Copyright Alter Way                67
Agenda
Point de situation
     Constat
     Objectifs de l'industrialisation
     Défis
Solutions
     Axes
     IDE + SCM
     Frameworks
     Tests
     Intégration continue
     Audit Statique : Cornac
     Gestion des environnements
     Automatisation des déploiements
     Implémentation type d'une PIC
Bénéfices

13 octobre 2011                         Copyright Alter Way       68
Bénéfices

     Augmentation et uniformisation de la qualité du
      code
     Traçabilité
     Visibilité (indicateurs)
     Maintenabilité et pérennité
     Confort du développeur
     Montée en compétence facilitée
     Faciliter les changements d'acteurs sur un
      projet
     Dédramatisation des mises en production
     Relations plus fluides avec l'exploitation




13 octobre 2011                  Copyright Alter Way          69
13 octobre 2011   Copyright Alter Way   70

Más contenido relacionado

La actualidad más candente

Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...Cédric Leblond
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieMohammed Amine Mostefai
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsCloudNetCare
 
Présentation Eranea à Open Source Now 2012
Présentation Eranea à Open Source Now 2012Présentation Eranea à Open Source Now 2012
Présentation Eranea à Open Source Now 2012Didier Durand
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
Introduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMGIntroduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMGOlivier Le Goaër
 
Propulsez votre architecture grâce au TDD et aux Mocks (Agile Tour Québec 2012)
Propulsez votre architecture grâce au TDD et aux Mocks  (Agile Tour Québec 2012)Propulsez votre architecture grâce au TDD et aux Mocks  (Agile Tour Québec 2012)
Propulsez votre architecture grâce au TDD et aux Mocks (Agile Tour Québec 2012)Elapse Technologies
 

La actualidad más candente (15)

Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
Génie Logiciel : Conception
Génie Logiciel : ConceptionGénie Logiciel : Conception
Génie Logiciel : Conception
 
Maintenance logicielle
Maintenance logicielleMaintenance logicielle
Maintenance logicielle
 
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
 
Présentation Eranea à Open Source Now 2012
Présentation Eranea à Open Source Now 2012Présentation Eranea à Open Source Now 2012
Présentation Eranea à Open Source Now 2012
 
Cours Génie Logiciel - Introduction
Cours Génie Logiciel - IntroductionCours Génie Logiciel - Introduction
Cours Génie Logiciel - Introduction
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Introduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMGIntroduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMG
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
Génie Logiciel - Cours 5 - analyse
Génie Logiciel - Cours 5 - analyseGénie Logiciel - Cours 5 - analyse
Génie Logiciel - Cours 5 - analyse
 
Propulsez votre architecture grâce au TDD et aux Mocks (Agile Tour Québec 2012)
Propulsez votre architecture grâce au TDD et aux Mocks  (Agile Tour Québec 2012)Propulsez votre architecture grâce au TDD et aux Mocks  (Agile Tour Québec 2012)
Propulsez votre architecture grâce au TDD et aux Mocks (Agile Tour Québec 2012)
 

Destacado

Ruby and Framework Security
Ruby and Framework SecurityRuby and Framework Security
Ruby and Framework SecurityCreston Jamison
 
Retour d'expérience sur Capistrano
Retour d'expérience sur CapistranoRetour d'expérience sur Capistrano
Retour d'expérience sur CapistranoOxalide
 
Happy birthday "monUPMC": 9 years of Portal at UPMC
Happy birthday "monUPMC": 9 years of Portal at UPMCHappy birthday "monUPMC": 9 years of Portal at UPMC
Happy birthday "monUPMC": 9 years of Portal at UPMCLudovic A
 
Retour d'expérience : Mise en place de l'ENT v4 à l'UPMC
Retour d'expérience : Mise en place de l'ENT v4 à l'UPMCRetour d'expérience : Mise en place de l'ENT v4 à l'UPMC
Retour d'expérience : Mise en place de l'ENT v4 à l'UPMCLudovic A
 
Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Claude Falguiere
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - PrésentationDavid RIEHL
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséECAM Brussels Engineering School
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Destacado (13)

Ruby and Framework Security
Ruby and Framework SecurityRuby and Framework Security
Ruby and Framework Security
 
Ruby Daemons
Ruby DaemonsRuby Daemons
Ruby Daemons
 
Capistrano 3 Deployment
Capistrano 3 DeploymentCapistrano 3 Deployment
Capistrano 3 Deployment
 
Retour d'expérience sur Capistrano
Retour d'expérience sur CapistranoRetour d'expérience sur Capistrano
Retour d'expérience sur Capistrano
 
Happy birthday "monUPMC": 9 years of Portal at UPMC
Happy birthday "monUPMC": 9 years of Portal at UPMCHappy birthday "monUPMC": 9 years of Portal at UPMC
Happy birthday "monUPMC": 9 years of Portal at UPMC
 
Retour d'expérience : Mise en place de l'ENT v4 à l'UPMC
Retour d'expérience : Mise en place de l'ENT v4 à l'UPMCRetour d'expérience : Mise en place de l'ENT v4 à l'UPMC
Retour d'expérience : Mise en place de l'ENT v4 à l'UPMC
 
Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar a Petit DéJeuner Industrialisation 13 10 2011 Eurosites

Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Jean-Marc Fontaine
 
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...PimpMySharePoint
 
Proposition forge agile 1.0
Proposition forge agile 1.0Proposition forge agile 1.0
Proposition forge agile 1.0Laurent MEURISSE
 
La Duck Conf - DevOps et Dataviz, un amour impossible ?
La Duck Conf - DevOps et Dataviz, un amour impossible ? La Duck Conf - DevOps et Dataviz, un amour impossible ?
La Duck Conf - DevOps et Dataviz, un amour impossible ? OCTO Technology
 
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...Association Agile Nantes
 
Devops - vision et pratiques
Devops - vision et pratiquesDevops - vision et pratiques
Devops - vision et pratiquesJoseph Glorieux
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesOCTO Technology Suisse
 
Fast and Furious XAML Apps!
Fast and Furious XAML Apps!Fast and Furious XAML Apps!
Fast and Furious XAML Apps!Microsoft
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Microsoft
 
defuzeme_documentation_technique.pdf
defuzeme_documentation_technique.pdfdefuzeme_documentation_technique.pdf
defuzeme_documentation_technique.pdfSami Asmar
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...Sébastien Levert
 
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...Raynald M
 
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Microsoft Technet France
 
TFS 2010 And Agility
TFS 2010 And AgilityTFS 2010 And Agility
TFS 2010 And AgilityDominic Danis
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Fabian Piau
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Microsoft
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Microsoft
 

Similar a Petit DéJeuner Industrialisation 13 10 2011 Eurosites (20)

Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011Industrialiser PHP - Open World Forum 2011
Industrialiser PHP - Open World Forum 2011
 
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
La Gouvernance, ou comment rapprocher les équipes de développement et d’infra...
 
Proposition forge agile 1.0
Proposition forge agile 1.0Proposition forge agile 1.0
Proposition forge agile 1.0
 
La Duck Conf - DevOps et Dataviz, un amour impossible ?
La Duck Conf - DevOps et Dataviz, un amour impossible ? La Duck Conf - DevOps et Dataviz, un amour impossible ?
La Duck Conf - DevOps et Dataviz, un amour impossible ?
 
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...
Agile Tour Nantes 2011 - Jean philippe gouigoux - architecture et agilité, ré...
 
Devops - vision et pratiques
Devops - vision et pratiquesDevops - vision et pratiques
Devops - vision et pratiques
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiques
 
Fast and Furious XAML Apps!
Fast and Furious XAML Apps!Fast and Furious XAML Apps!
Fast and Furious XAML Apps!
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11
 
defuzeme_documentation_technique.pdf
defuzeme_documentation_technique.pdfdefuzeme_documentation_technique.pdf
defuzeme_documentation_technique.pdf
 
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
 
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
MS TechDays 2012 -Mise en place d'une usine logicielle avec TFS et Test Manag...
 
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010Mise en place d'une usine logicielle avec TFS et Test Manager 2010
Mise en place d'une usine logicielle avec TFS et Test Manager 2010
 
TFS 2010 And Agility
TFS 2010 And AgilityTFS 2010 And Agility
TFS 2010 And Agility
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)
 
20111004 04 - Présentation ATDD
20111004 04 - Présentation ATDD20111004 04 - Présentation ATDD
20111004 04 - Présentation ATDD
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !Améliorer votre productivité XAML en entreprise !
Améliorer votre productivité XAML en entreprise !
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 

Más de Hervé Leclerc

Octo talk : docker multi-host networking
Octo talk : docker multi-host networking Octo talk : docker multi-host networking
Octo talk : docker multi-host networking Hervé Leclerc
 
Alter Way Petit Dejeuner Drupal7
Alter Way Petit Dejeuner Drupal7Alter Way Petit Dejeuner Drupal7
Alter Way Petit Dejeuner Drupal7Hervé Leclerc
 
Pizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumberPizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumberHervé Leclerc
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLHervé Leclerc
 
Mobile Cloud Computing
Mobile Cloud ComputingMobile Cloud Computing
Mobile Cloud ComputingHervé Leclerc
 
Expertise Alterway Au Service Des Projets Drupal 0.6
Expertise Alterway Au Service Des Projets Drupal   0.6Expertise Alterway Au Service Des Projets Drupal   0.6
Expertise Alterway Au Service Des Projets Drupal 0.6Hervé Leclerc
 
Expertise Alterway Au Service Des Projets Talend
Expertise Alterway Au Service Des Projets TalendExpertise Alterway Au Service Des Projets Talend
Expertise Alterway Au Service Des Projets TalendHervé Leclerc
 

Más de Hervé Leclerc (8)

Octo talk : docker multi-host networking
Octo talk : docker multi-host networking Octo talk : docker multi-host networking
Octo talk : docker multi-host networking
 
Alter Way Petit Dejeuner Drupal7
Alter Way Petit Dejeuner Drupal7Alter Way Petit Dejeuner Drupal7
Alter Way Petit Dejeuner Drupal7
 
Pizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumberPizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumber
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
Ecl J2ee Igc2
Ecl J2ee Igc2Ecl J2ee Igc2
Ecl J2ee Igc2
 
Mobile Cloud Computing
Mobile Cloud ComputingMobile Cloud Computing
Mobile Cloud Computing
 
Expertise Alterway Au Service Des Projets Drupal 0.6
Expertise Alterway Au Service Des Projets Drupal   0.6Expertise Alterway Au Service Des Projets Drupal   0.6
Expertise Alterway Au Service Des Projets Drupal 0.6
 
Expertise Alterway Au Service Des Projets Talend
Expertise Alterway Au Service Des Projets TalendExpertise Alterway Au Service Des Projets Talend
Expertise Alterway Au Service Des Projets Talend
 

Petit DéJeuner Industrialisation 13 10 2011 Eurosites

  • 1. Petit Déjeuner EUROSITES GEORGE V Industrialisation PHP Hervé Leclerc : CTO Alter Way Solutions
  • 2. Agenda Point de situation Constat Objectifs de l'industrialisation Défis Solutions Axes IDE + SCM Frameworks Tests Intégration continue Audit Statique : Cornac Gestion des environnements Automatisation des déploiements Implémentation type d'une PIC Bénéfices 13 octobre 2011 Copyright Alter Way 2
  • 3. Constat L'utilisation de PHP en entreprise hors des directions métiers et gouvernée par la DSI est relativement récente 13 octobre 2011 Copyright Alter Way 3
  • 4. Constat Les DSI se retrouvent désormais confrontées à différentes problématiques 13 octobre 2011 Copyright Alter Way 4
  • 5. Constat Applicatifs hétérogènes 13 octobre 2011 Copyright Alter Way 5
  • 6. Constat Bonnes pratiques de développement non définies ou dépendantes des applicatifs 13 octobre 2011 Copyright Alter Way 6
  • 7. Constat Qualité de code disparate 13 octobre 2011 Copyright Alter Way 7
  • 8. Constat Base de code non testée de manière automatique 13 octobre 2011 Copyright Alter Way 8
  • 9. Constat Pas ou peu d'indicateurs de qualité, de performance, de maintenabilité du code 13 octobre 2011 Copyright Alter Way 9
  • 10. Constat Pas de processus unifié sur l'ensemble des acteurs 13 octobre 2011 Copyright Alter Way 10
  • 11. Constat Pression continue de la production 13 octobre 2011 Copyright Alter Way 11
  • 12. Industrialisation : une définition Mise en œuvre de pratiques et d'outils visant à rendre les logiciels produits plus robustes, tout en restant dans des délais et des coûts maîtrisés. 13 octobre 2011 Copyright Alter Way 12
  • 13. Objectifs Gagner du temps en automatisant au maximum toutes les tâches récurrentes 13 octobre 2011 Copyright Alter Way 13
  • 14. Objectifs Gagner en qualité (documentation, tests unitaires, normes, respect des licences, mutualisation…) 13 octobre 2011 Copyright Alter Way 14
  • 15. Objectifs Raccourcir les cycles de mise en production 13 octobre 2011 Copyright Alter Way 15
  • 16. Objectifs Suivre l’évolution des projets par des indicateurs clés 13 octobre 2011 Copyright Alter Way 16
  • 17. Défis Exemples de défis quotidiens  65 portails à refaire en 6 mois  120 événements par an, sur 150 serveurs  6 personnes pour mettre à niveau 350 intranets  Une application sur une ville : 12 villes pour Noël, 2 pays l’an prochain  Un employé à temps plein pour le déploiement 13 octobre 2011 Copyright Alter Way 17
  • 18. Outillage  Les outils sont nombreux et dissociés  Il faut du temps pour les mettre en place et les entretenir  Pour de nombreux petits projets, il faut les automatiser 13 octobre 2011 Copyright Alter Way 18
  • 19. Agenda Point de situation Constat Objectifs de l'industrialisation Défis Solutions Axes IDE + SCM Frameworks Tests Intégration continue Audit Statique : Cornac Gestion des environnements Automatisation des déploiements Implémentation type d'une PIC Bénéfices 13 octobre 2011 Copyright Alter Way 19
  • 20. Axes 3 axes majeurs  Libération du code  Capitalisation  Implication des utilisateurs 13 octobre 2011 Copyright Alter Way 20
  • 21. Axes → Relations Code Capitalisation ●IDE ●Conception ●Déploiement ●Framework ●SCM ●Tests ●Debugging ●IC ●Docs Techniques ●Méthodes ●Bug Tracking ●Tests Fonctionnels ●Documentation Utilisateur Implication 13 octobre 2011 Copyright Alter Way 21
  • 22. IDE IDE : Integrated Development Environment 13 octobre 2011 Copyright Alter Way 22
  • 23. IDE Pourquoi utiliser un IDE ? Un éditeur simple n'est souvent pas suffisant Donner aux développeurs un environnement complet qui accélère et simplifie son travail 13 octobre 2011 Copyright Alter Way 23
  • 24. IDE Comment un IDE augmente la productivité et la qualité du travail :  En fournissant un outil d'édition puissant, graphique  En utilisant des composants réseaux (SCM SSH/FTP/WEBDAV...)  En gérant les différents librairies et frameworks  En fournissant un environnement de débogage et tests intégrés  En facilitant la production de documentation 13 octobre 2011 Copyright Alter Way 24
  • 25. IDE Fonctions intégrées  Colorisation syntaxique  Auto-complétion  Intégration aux dépôts de code  Intégration avec un ou plusieurs frameworks  Débogueur  Profiler  Intégration d'outils externes (Tests unitaires, déploiement,..)  Refactoring et génération de code Quelques IDE open source  Eclipse  PDT, DLTK, Pulse, RT …  NetBeans  Aptana 13 octobre 2011 Copyright Alter Way 25
  • 26. SCM SCM : Source Control Management  Gestion des versions et révisions de code  Outils très puissants permettant de gérer dans des dépôts centralisés ou non du code source  Facilite le travail en équipe  Historisation du code  Pérennité du code  Quelques SCM open source :  Centralisés : CVS, Subversion  Décentralisés : Git, Bazaar, Mercurial 13 octobre 2011 Copyright Alter Way 26
  • 27. Frameworks  Très souvent version pro  Ensemble de composants éprouvés et prêts à l'emploi  Cœur technique des projets  Simplifient, standardisent et accélèrent les développements  Imposent des règles strictes de développement Quelques Frameworks PHP  Zend Framework  Symfony  Jelix  CakePHP  Yii  eZ Publish  Drupal  ... 13 octobre 2011 Copyright Alter Way 27
  • 28. Tests Les Tests Ils sont de plusieurs types :  Unitaires  SimpleTest  PHPUnit  Fonctionnels  Selenium  SimpleTest  Cucumber  Performance et montée en charge  JMeter  OpenSTA  Twill Ils sont automatisés Ils fournissent des résultats structurés utilisables dans des portails de restitution 13 octobre 2011 Copyright Alter Way 28
  • 29. Intégration Continue 13 octobre 2011 Copyright Alter Way 29
  • 30. Intégration Continue 13 octobre 2011 Copyright Alter Way 30
  • 31. Intégration Continue Permet de valider, vérifier au fil de l'eau toutes les modifications effectuées sur un code source 13 octobre 2011 Copyright Alter Way 31
  • 32. Intégration Continue Permet de supprimer les effets négatifs des cycles en V 13 octobre 2011 Copyright Alter Way 32
  • 33. Intégration Continue Elle met en œuvre tous les outils et concepts vus précédemment 13 octobre 2011 Copyright Alter Way 33
  • 34. Intégration Continue Tous les processus sont automatisés 13 octobre 2011 Copyright Alter Way 34
  • 35. Intégration Continue La qualité du code est en permanence mesurée (couverture des tests unitaires et fonctionnels) 13 octobre 2011 Copyright Alter Way 35
  • 36. Intégration Continue Les indicateurs sont rassemblés dans une interface de présentation (Sonar/PHPUnderControl) ou Jenkins elle même 13 octobre 2011 Copyright Alter Way 36
  • 37. Intégration Continue La documentation est aussi générée automatiquement dans ces processus 13 octobre 2011 Copyright Alter Way 37
  • 38. Focus Qualimétrie 13 octobre 2011 Copyright Alter Way 38
  • 39. Focus Qualimétrie  phpcpd Plugin PHP_CodeSniffer 13 octobre 2011 Copyright Alter Way 39
  • 40. Jenkins 13 octobre 2011 Copyright Alter Way 40
  • 41. Jenkins 13 octobre 2011 Copyright Alter Way 41
  • 42. Jenkins 13 octobre 2011 Copyright Alter Way 42
  • 43. Jenkins 13 octobre 2011 Copyright Alter Way 43
  • 44. Sonar Architecture et conception Architecture et conception Duplications Duplications Test unitaires Test unitaires Complexité Complexité Bogues potentiels Bogues potentiels Règles de codage Règles de codage Commentaires Commentaires 13 octobre 2011 Copyright Alter Way 44
  • 45. Sonar 13 octobre 2011 Copyright Alter Way 45
  • 46. Sonar 13 octobre 2011 Copyright Alter Way 46
  • 47. PHPUnderControl 13 octobre 2011 Copyright Alter Way 47
  • 48. PHPUnderControl 13 octobre 2011 Copyright Alter Way 48
  • 49. Doxygen / PhpDoc Doxygen PhpDocumentor 13 octobre 2011 Copyright Alter Way 49
  • 50. Cornac Audit Statique 13 octobre 2011 Copyright Alter Way 50
  • 51. Cornac  Cornac : auditeur statique pour PHP  Édité par Alter Way, open source https://github.com/alterway/cornac  Exécution automatique  Analyse sans exécution  Scrute l'application dans son ensemble  Proche de PHPMD et PHPDepend 13 octobre 2011 Copyright Alter Way 51
  • 52. Cornac → Principales fonctions  Inventaire d'application  Migration 5.3  Prendre du recul sur  Fonctions obsolètes l'application  Passage par référence  Lister les noms utilisés  Référence après « new »  Lister les fonctionnalités  Ex : mktime ne prend plus 7 utilisées paramètres  Voir rapidement les incohérences techniques  Nom de structure  Aspects techniques  Extrait toutes les structures  Lister tous les aspects nommées techniques  Étudie leurs conventions  Fonctionnalités PHP  Fonctionnalités avancées  Étudie leur ensemble  Fonctionnalités obsolètes  Étudie leur sémantique  Dépendances 13 octobre 2011 Copyright Alter Way 52
  • 53. Cornac → inventaire #./bin/cornac -I spotweb.ini # « Tokenizeur » # Auditeur # Done 13 octobre 2011 Copyright Alter Way 53
  • 54. Cornac → inventaire 13 octobre 2011 Copyright Alter Way 54
  • 55. Cornac → Cartographie Utilisation des constantes Réseau d'inclusion Hiérarchies 13 octobre 2011 Copyright Alter Way 55
  • 56. Relations Code Capitalisation - Eclipse, NetBeans, - ArgoUML, StarUML, PowerArchictect Aptana - Phing, Capistrano, Fabric - Zend, Symfony, Jelix, Yii, Cakephp, Drupal, eZ - Hg, SVN, Git, CVS - SimpleTest, UnitTest, PHPUnit, - Xdebug, PHPMD, PHPCD, cachegrind, - Jenkins, - Selenium, PHPCS wireshark Hudson, Httperf, PhpUnderControl Jmeter, - Doxygen, Funkload PHPdocs - Jira, Redmine, Mantis - Agilefant, Xplanner, IceScrum, Agilo,XPStoryStudio - Selenium, GreenPaper - Docbook Implication 13 octobre 2011 Copyright Alter Way 56
  • 57. Gestion des environnements Quatre types d'environnements classiques :  Développement  Intégration  Pré-production  Production Développement  En local ou sur un serveur spécialisé  Débogueur et profileur disponibles  Affichage des erreurs Intégration  Permet de d’effectuer la recette des changements Pré-production  Identique à la production (performances, configuration, données) Production  Optimisé pour la performance et la sécurité  Supervisé pour assurer la qualité de service 13 octobre 2011 Copyright Alter Way 57
  • 58. Automatisations  Capistrano  Ne faire que ce qui est utile  Le tout simplement  ROI assuré  Gestion des « releases »  Gestion des « rollbacks »  Webistrano  Interface WEB pour Capistrano  Gestion des droits possibles par greffons  Comptes-rendus et historiques  Gestion centralisée 13 octobre 2011 Copyright Alter Way 58
  • 59. Staging  Interface Web pour gérer les déploiements  Gestions des différents « stages »  Dédramatisation des déploiements  Scenarii exportables (capistrano)  Recettes disponibles dans la communauté 13 octobre 2011 Copyright Alter Way 59
  • 61. Webistrano 13 octobre 2011 Copyright Alter Way 61
  • 62. Webistrano 13 octobre 2011 Copyright Alter Way 62
  • 63. Webistrano 13 octobre 2011 Copyright Alter Way 63
  • 64. Webistrano 13 octobre 2011 Copyright Alter Way 64
  • 65. Webistrano 13 octobre 2011 Copyright Alter Way 65
  • 66. Webistrano 13 octobre 2011 Copyright Alter Way 66
  • 67. Implémentation IC typique Jenkins 13 octobre 2011 Copyright Alter Way 67
  • 68. Agenda Point de situation Constat Objectifs de l'industrialisation Défis Solutions Axes IDE + SCM Frameworks Tests Intégration continue Audit Statique : Cornac Gestion des environnements Automatisation des déploiements Implémentation type d'une PIC Bénéfices 13 octobre 2011 Copyright Alter Way 68
  • 69. Bénéfices  Augmentation et uniformisation de la qualité du code  Traçabilité  Visibilité (indicateurs)  Maintenabilité et pérennité  Confort du développeur  Montée en compétence facilitée  Faciliter les changements d'acteurs sur un projet  Dédramatisation des mises en production  Relations plus fluides avec l'exploitation 13 octobre 2011 Copyright Alter Way 69
  • 70. 13 octobre 2011 Copyright Alter Way 70