• Save
Petit DéJeuner Industrialisation 13 10 2011 Eurosites
Upcoming SlideShare
Loading in...5
×
 

Petit DéJeuner Industrialisation 13 10 2011 Eurosites

on

  • 678 views

Industrialisation PHP via des plateformes d\'intégration continue

Industrialisation PHP via des plateformes d\'intégration continue

Statistics

Views

Total Views
678
Views on SlideShare
642
Embed Views
36

Actions

Likes
3
Downloads
0
Comments
0

2 Embeds 36

http://www.techgig.com 35
http://115.112.206.131 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Petit DéJeuner Industrialisation 13 10 2011 Eurosites Petit DéJeuner Industrialisation 13 10 2011 Eurosites Presentation Transcript

  • Petit Déjeuner EUROSITES GEORGE VIndustrialisation PHPHervé Leclerc : CTO Alter Way Solutions
  • AgendaPoint de situation Constat Objectifs de lindustrialisation DéfisSolutions Axes IDE + SCM Frameworks Tests Intégration continue Audit Statique : Cornac Gestion des environnements Automatisation des déploiements Implémentation type dune PICBénéfices13 octobre 2011 Copyright Alter Way 2
  • ConstatLutilisation de PHP en entreprise hors des directionsmétiers et gouvernée par la DSI est relativement récente13 octobre 2011 Copyright Alter Way 3
  • ConstatLes DSI se retrouvent désormais confrontées à différentesproblématiques13 octobre 2011 Copyright Alter Way 4
  • Constat Applicatifs hétérogènes13 octobre 2011 Copyright Alter Way 5
  • ConstatBonnes pratiques de développement non définies oudépendantes des applicatifs13 octobre 2011 Copyright Alter Way 6
  • Constat Qualité de code disparate13 octobre 2011 Copyright Alter Way 7
  • Constat Base de code non testée de manière automatique13 octobre 2011 Copyright Alter Way 8
  • ConstatPas ou peu dindicateurs de qualité, de performance, demaintenabilité du code13 octobre 2011 Copyright Alter Way 9
  • Constat Pas de processus unifié sur lensemble des acteurs13 octobre 2011 Copyright Alter Way 10
  • Constat Pression continue de la production13 octobre 2011 Copyright Alter Way 11
  • Industrialisation : une définitionMise en œuvre de pratiques et doutils visant à rendre leslogiciels produits plus robustes, tout en restant dans desdélais et des coûts maîtrisés.13 octobre 2011 Copyright Alter Way 12
  • ObjectifsGagner du temps en automatisant au maximum toutes lestâches récurrentes13 octobre 2011 Copyright Alter Way 13
  • ObjectifsGagner en qualité (documentation, tests unitaires, normes,respect des licences, mutualisation…)13 octobre 2011 Copyright Alter Way 14
  • Objectifs Raccourcir les cycles de mise en production13 octobre 2011 Copyright Alter Way 15
  • Objectifs Suivre l’évolution des projets par des indicateurs clés13 octobre 2011 Copyright Alter Way 16
  • DéfisExemples 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éploiement13 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 automatiser13 octobre 2011 Copyright Alter Way 18
  • AgendaPoint de situation Constat Objectifs de lindustrialisation DéfisSolutions Axes IDE + SCM Frameworks Tests Intégration continue Audit Statique : Cornac Gestion des environnements Automatisation des déploiements Implémentation type dune PICBénéfices13 octobre 2011 Copyright Alter Way 19
  • Axes3 axes majeurs Libération du code Capitalisation Implication des utilisateurs13 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 Implication13 octobre 2011 Copyright Alter Way 21
  • IDE IDE : Integrated Development Environment13 octobre 2011 Copyright Alter Way 22
  • IDE Pourquoi utiliser un IDE ? Un éditeur simple nest souvent pas suffisant Donner aux développeurs un environnement complet qui accélère et simplifie son travail13 octobre 2011 Copyright Alter Way 23
  • IDEComment un IDE augmente la productivité et laqualité 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 doutils externes (Tests unitaires, déploiement,..)  Refactoring et génération de code Quelques IDE open source  Eclipse  PDT, DLTK, Pulse, RT …  NetBeans  Aptana13 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, Mercurial13 octobre 2011 Copyright Alter Way 26
  • Frameworks Très souvent version pro Ensemble de composants éprouvés et prêts à lemploi Cœur technique des projets Simplifient, standardisent et accélèrent les développements Imposent des règles strictes de développementQuelques Frameworks PHP Zend Framework Symfony Jelix CakePHP Yii eZ Publish Drupal ...13 octobre 2011 Copyright Alter Way 27
  • TestsLes TestsIls sont de plusieurs types : Unitaires  SimpleTest  PHPUnit Fonctionnels  Selenium  SimpleTest  Cucumber Performance et montée en charge  JMeter  OpenSTA  TwillIls sont automatisésIls fournissent des résultats structurésutilisables dans des portails derestitution13 octobre 2011 Copyright Alter Way 28
  • Intégration Continue13 octobre 2011 Copyright Alter Way 29
  • Intégration Continue13 octobre 2011 Copyright Alter Way 30
  • Intégration ContinuePermet de valider, vérifier au fil de leau toutes lesmodifications effectuées sur un code source13 octobre 2011 Copyright Alter Way 31
  • Intégration Continue Permet de supprimer les effets négatifs des cycles en V13 octobre 2011 Copyright Alter Way 32
  • Intégration ContinueElle met en œuvre tous les outils et concepts vus précédemment13 octobre 2011 Copyright Alter Way 33
  • Intégration Continue Tous les processus sont automatisés13 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 ContinueLes indicateurs sont rassemblés dans une interface de présentation(Sonar/PHPUnderControl) ou Jenkins elle même13 octobre 2011 Copyright Alter Way 36
  • Intégration ContinueLa documentation est aussi générée automatiquement dans cesprocessus13 octobre 2011 Copyright Alter Way 37
  • Focus Qualimétrie13 octobre 2011 Copyright Alter Way 38
  • Focus Qualimétrie  phpcpd Plugin PHP_CodeSniffer13 octobre 2011 Copyright Alter Way 39
  • Jenkins13 octobre 2011 Copyright Alter Way 40
  • Jenkins13 octobre 2011 Copyright Alter Way 41
  • Jenkins13 octobre 2011 Copyright Alter Way 42
  • Jenkins13 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 Commentaires13 octobre 2011 Copyright Alter Way 44
  • Sonar13 octobre 2011 Copyright Alter Way 45
  • Sonar13 octobre 2011 Copyright Alter Way 46
  • PHPUnderControl13 octobre 2011 Copyright Alter Way 47
  • PHPUnderControl13 octobre 2011 Copyright Alter Way 48
  • Doxygen / PhpDoc Doxygen PhpDocumentor13 octobre 2011 Copyright Alter Way 49
  • Cornac Audit Statique13 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 lapplication dans son ensemble  Proche de PHPMD et PHPDepend13 octobre 2011 Copyright Alter Way 51
  • Cornac → Principales fonctions  Inventaire dapplication  Migration 5.3  Prendre du recul sur  Fonctions obsolètes lapplication  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épendances13 octobre 2011 Copyright Alter Way 52
  • Cornac → inventaire #./bin/cornac -I spotweb.ini # « Tokenizeur » # Auditeur # Done13 octobre 2011 Copyright Alter Way 53
  • Cornac → inventaire13 octobre 2011 Copyright Alter Way 54
  • Cornac → Cartographie Utilisation des constantes Réseau dinclusion Hiérarchies13 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 Implication13 octobre 2011 Copyright Alter Way 56
  • Gestion des environnementsQuatre types denvironnements classiques :  Développement  Intégration  Pré-production  ProductionDéveloppement  En local ou sur un serveur spécialisé  Débogueur et profileur disponibles  Affichage des erreursIntégration  Permet de d’effectuer la recette des changementsPré-production  Identique à la production (performances, configuration, données)Production  Optimisé pour la performance et la sécurité  Supervisé pour assurer la qualité de service13 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ée13 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
  • RecettesCapistrano13 octobre 2011 Copyright Alter Way 60
  • Webistrano13 octobre 2011 Copyright Alter Way 61
  • Webistrano13 octobre 2011 Copyright Alter Way 62
  • Webistrano13 octobre 2011 Copyright Alter Way 63
  • Webistrano13 octobre 2011 Copyright Alter Way 64
  • Webistrano13 octobre 2011 Copyright Alter Way 65
  • Webistrano13 octobre 2011 Copyright Alter Way 66
  • Implémentation IC typique Jenkins13 octobre 2011 Copyright Alter Way 67
  • AgendaPoint de situation Constat Objectifs de lindustrialisation DéfisSolutions Axes IDE + SCM Frameworks Tests Intégration continue Audit Statique : Cornac Gestion des environnements Automatisation des déploiements Implémentation type dune PICBénéfices13 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 dacteurs sur un projet  Dédramatisation des mises en production  Relations plus fluides avec lexploitation13 octobre 2011 Copyright Alter Way 69
  • 13 octobre 2011 Copyright Alter Way 70