Mon environnement de travail a-t-il encore un avenir ?

Preview:

DESCRIPTION

Est-il encore rentable d’entretenir des outils de développement internes ? Quelles solutions existent pour les remplacer ?

Citation preview

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 :

@SophieBEAUPUIS1sophie.b@zend.com

FRÉDÉRIC DEWINNEtwitter :

email : @fdewinne

frederic.dewinne@vesperiagroup.com

Recommended