Petit DéJeuner Industrialisation 13 10 2011 Eurosites

904 vues

Publié le

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

0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
904
Sur SlideShare
0
Issues des intégrations
0
Intégrations
42
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Petit DéJeuner Industrialisation 13 10 2011 Eurosites

  1. 1. Petit Déjeuner EUROSITES GEORGE VIndustrialisation PHPHervé Leclerc : CTO Alter Way Solutions
  2. 2. 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
  3. 3. 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
  4. 4. ConstatLes DSI se retrouvent désormais confrontées à différentesproblématiques13 octobre 2011 Copyright Alter Way 4
  5. 5. Constat Applicatifs hétérogènes13 octobre 2011 Copyright Alter Way 5
  6. 6. ConstatBonnes pratiques de développement non définies oudépendantes des applicatifs13 octobre 2011 Copyright Alter Way 6
  7. 7. Constat Qualité de code disparate13 octobre 2011 Copyright Alter Way 7
  8. 8. Constat Base de code non testée de manière automatique13 octobre 2011 Copyright Alter Way 8
  9. 9. ConstatPas ou peu dindicateurs de qualité, de performance, demaintenabilité du code13 octobre 2011 Copyright Alter Way 9
  10. 10. Constat Pas de processus unifié sur lensemble des acteurs13 octobre 2011 Copyright Alter Way 10
  11. 11. Constat Pression continue de la production13 octobre 2011 Copyright Alter Way 11
  12. 12. 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
  13. 13. ObjectifsGagner du temps en automatisant au maximum toutes lestâches récurrentes13 octobre 2011 Copyright Alter Way 13
  14. 14. ObjectifsGagner en qualité (documentation, tests unitaires, normes,respect des licences, mutualisation…)13 octobre 2011 Copyright Alter Way 14
  15. 15. Objectifs Raccourcir les cycles de mise en production13 octobre 2011 Copyright Alter Way 15
  16. 16. Objectifs Suivre l’évolution des projets par des indicateurs clés13 octobre 2011 Copyright Alter Way 16
  17. 17. 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
  18. 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 automatiser13 octobre 2011 Copyright Alter Way 18
  19. 19. 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
  20. 20. Axes3 axes majeurs Libération du code Capitalisation Implication des utilisateurs13 octobre 2011 Copyright Alter Way 20
  21. 21. 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
  22. 22. IDE IDE : Integrated Development Environment13 octobre 2011 Copyright Alter Way 22
  23. 23. 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
  24. 24. 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
  25. 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 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
  26. 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, Mercurial13 octobre 2011 Copyright Alter Way 26
  27. 27. 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
  28. 28. 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
  29. 29. Intégration Continue13 octobre 2011 Copyright Alter Way 29
  30. 30. Intégration Continue13 octobre 2011 Copyright Alter Way 30
  31. 31. 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
  32. 32. Intégration Continue Permet de supprimer les effets négatifs des cycles en V13 octobre 2011 Copyright Alter Way 32
  33. 33. Intégration ContinueElle met en œuvre tous les outils et concepts vus précédemment13 octobre 2011 Copyright Alter Way 33
  34. 34. Intégration Continue Tous les processus sont automatisés13 octobre 2011 Copyright Alter Way 34
  35. 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. 36. 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
  37. 37. Intégration ContinueLa documentation est aussi générée automatiquement dans cesprocessus13 octobre 2011 Copyright Alter Way 37
  38. 38. Focus Qualimétrie13 octobre 2011 Copyright Alter Way 38
  39. 39. Focus Qualimétrie  phpcpd Plugin PHP_CodeSniffer13 octobre 2011 Copyright Alter Way 39
  40. 40. Jenkins13 octobre 2011 Copyright Alter Way 40
  41. 41. Jenkins13 octobre 2011 Copyright Alter Way 41
  42. 42. Jenkins13 octobre 2011 Copyright Alter Way 42
  43. 43. Jenkins13 octobre 2011 Copyright Alter Way 43
  44. 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 Commentaires13 octobre 2011 Copyright Alter Way 44
  45. 45. Sonar13 octobre 2011 Copyright Alter Way 45
  46. 46. Sonar13 octobre 2011 Copyright Alter Way 46
  47. 47. PHPUnderControl13 octobre 2011 Copyright Alter Way 47
  48. 48. PHPUnderControl13 octobre 2011 Copyright Alter Way 48
  49. 49. Doxygen / PhpDoc Doxygen PhpDocumentor13 octobre 2011 Copyright Alter Way 49
  50. 50. Cornac Audit Statique13 octobre 2011 Copyright Alter Way 50
  51. 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 lapplication dans son ensemble  Proche de PHPMD et PHPDepend13 octobre 2011 Copyright Alter Way 51
  52. 52. 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
  53. 53. Cornac → inventaire #./bin/cornac -I spotweb.ini # « Tokenizeur » # Auditeur # Done13 octobre 2011 Copyright Alter Way 53
  54. 54. Cornac → inventaire13 octobre 2011 Copyright Alter Way 54
  55. 55. Cornac → Cartographie Utilisation des constantes Réseau dinclusion Hiérarchies13 octobre 2011 Copyright Alter Way 55
  56. 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 Implication13 octobre 2011 Copyright Alter Way 56
  57. 57. 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
  58. 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ée13 octobre 2011 Copyright Alter Way 58
  59. 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
  60. 60. RecettesCapistrano13 octobre 2011 Copyright Alter Way 60
  61. 61. Webistrano13 octobre 2011 Copyright Alter Way 61
  62. 62. Webistrano13 octobre 2011 Copyright Alter Way 62
  63. 63. Webistrano13 octobre 2011 Copyright Alter Way 63
  64. 64. Webistrano13 octobre 2011 Copyright Alter Way 64
  65. 65. Webistrano13 octobre 2011 Copyright Alter Way 65
  66. 66. Webistrano13 octobre 2011 Copyright Alter Way 66
  67. 67. Implémentation IC typique Jenkins13 octobre 2011 Copyright Alter Way 67
  68. 68. 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
  69. 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 dacteurs sur un projet  Dédramatisation des mises en production  Relations plus fluides avec lexploitation13 octobre 2011 Copyright Alter Way 69
  70. 70. 13 octobre 2011 Copyright Alter Way 70

×