mon environnement de travail a-t-il encore un avenir ?
DESCRIPTION
Est-il encore rentable d’entretenir des outils de développement internes ? Quelles solutions existent pour les remplacer ?TRANSCRIPT
MON ENVIRONNEMENT DE TRAVAIL A-T-ILENCORE UN AVENIR ?
Par Sophie Beaupuis et Frédéric Dewinne
QUI SOMMES-NOUS ?
FRÉDÉRIC DEWINNEdéveloppeur php depuis 2007passionné d'intégration / livraison continueconsultant @
co-fondateur de
Vesperia
continuousphp
SOPHIE BEAUPUISconsultante @ Zend Technologies
INDUSTRIALISER SON CODE
LES BUTS :Optimiser la stabilité des applicationsDiminuer les coûts de développementStandardiser les pratiques de développement
AU TRAVERS DES FRAMEWORKSZend Framework, Symfony, CakePHP, Yii, CodeIgniter, ...
Aide à se prémunir des coûts de maintenance defonctionnalités bas niveauPermet de bénéficier du travail et de l'expérience de lacommunautéAide à ne pas réinventer la roue
AU TRAVERS DES FRAMEWORKS DE TESTUNITAIRE
PHPUnit, atoum, ...
Aide à la définition des specs techniquesAide à garder une compatibilité ascendanteStandardise l'écriture des testsMeilleurs moyens pour détecter la source des bugsAide à appliquer une méthodologie de développement conduitpar les tests (TDD)Diminue drastiquement le coût des testsPermet d'implémenter la couche bas niveau de tests
AU TRAVERS DES FRAMEWORKS DE TEST DECOMPORTEMENT
Behat, PHPUnit, ...
Aide à tester les workflows d'exécutionStandardise l'écriture des specsAide à mettre en place des pratiques de développementconduit par le comportement (BDD) et agileDiminue le coût des testsSupporte des drivers de navigateur afin d'automatiser destests d'interface utilisateur (GUI)Permet d'implémenter la couche haut niveau de tests
AU TRAVERS DE GESTIONNAIRE DEDÉPENDANCES
Composer
Définit et installe les librairies dépendantes ainsi que leursversionsAjoute les mécanismes d'autoloadingFacilite la factorisation du code
LES PLATEFORMES DE VERSIONING DE CODEStocke l'historique du codeAide au développement collaboratifPermet de se connecter à des applications tierces pourfaciliter la mise en place d'une intégration continue
LE SERVEUR DE DÉVELOPPEMENTVagrant
Permet de développer avec un environement proche de laproductionPermet de versionner la configuration du serveur avec le codeCrée un serveur configuré très rapidement
LES SERVEUR D'AUTOMATISATION DE TESTJenkins, phpci, travis-ci, continuousphp, SensioLabsInsight, codeship, circleci, drone.io, ...
Permet de tester le code à chaque modification du code dansla plateforme de versioningAssure un code sain avant déploiement
LE BUILDPrépare le code sur l'environnement d'IC.Pilote les outils d'analyse : QATools, etc.Crée le package de déploiement
PHINGPortage de Ant en phpOrchestre des suites de tâchesCodé en php, donc facile à étendre en créant de nouvellestâchesDéfinition en XML
CAPISTRANOUtilitaire de déploiement écrit en RubyDéfinition des workflows de déploiement en RubyPeut déployer depuis le gestionnaire de versionFourni un "modèle" de workfowSupporte les opérations de rollbackImpose certaines limitations côté serveur (ssh)
ZEND DEPLOYMENToutil permettant de packager et déployer des applications surZend ServerDéploiement sur cluster en une seule opérationIntégration du rollback (versions payantes de Zend Server)Création de packages depuis Zend Studio, via l'api web ou enligne de commandePossibilité d'étendre le workflow de déploiement grâce auxévênements
LES OUTILS DE REPORTING ETD'ORCHESTRATION
JENKINSServeur d'intégration continueDispose de nombreux plugins pour phpLe plus utilisé aujourd'huiTemplate de configuration pour php fourni par SébastienBergmann
SONARQUBE (SONAR)Plateforme d'analyse de qualité de codeRassemble les indicateurs qualité relevés sur le codePlugins disponibles pour PHPPeut être utilisé en combinaison avec Jenkins
TRAVIS CIPlateforme d'orchestration de test en mode SaasFortement lié à GitHubPas de rapport consolidé
SENSIOLABS INSIGHTPlateforme d'analyse de qualité de code en mode SaasAnalyse statique du code uniquementAnalyse de performance, sécurité, qualité de code...Résultats des analyses pouvant être rendu publiqueIndicateurs fortement liés à Symfony
LES OUTILS DE MONITORING APPLICATIFMonitorer les applications PHP
NEW RELICAnalyse les performances applicatives en mode SaasCentralise le monitoring, serveur, base de données etapplicatifMesure les temps de réponse client, serveur, base de donnéesRendu très graphique
ZEND SERVERDispose d'outils d'investigation des causes dedysfonctionnement en productionMesure les temps de réponses, le nombre de session, etc...Alertes paramétrables (erreurs, performances, base dedonnées)Informations détaillées sur les alertesProfiling et debugging en production (Code tracing)
MERCISOPHIE BEAUPUIS
twitter : email :
FRÉDÉRIC DEWINNEtwitter :
email : @fdewinne