Upgrade to Pro — share decks privately, control downloads, hide ads and more …

L'intégration continue de A à Z sur une application PHP existante

Marek Kalnik
November 30, 2012

L'intégration continue de A à Z sur une application PHP existante

Les slides de mon talk que j'ai donné à Nantes pour PHPTour 2012

Marek Kalnik

November 30, 2012
Tweet

More Decks by Marek Kalnik

Other Decks in Programming

Transcript

  1. PHPTour Nantes 2012 www.afup.org
    L'intégration continue
    de A à Z
    sur une application PHP
    existante

    View Slide

  2. Technical Team Manager
    Theodo Evolution Developer
    RogerCmsBundle
    Maintainer
    Formateur en Bonnes Pratiques
    @marekkalnik
    Marek Kalnik
    http://tumblr.com/marekkalnik
    BLOG

    View Slide

  3. Un projet legacy...

    View Slide

  4. ...des développeurs, des project managers...

    View Slide

  5. ...et la peur de bugs et deadlines.

    View Slide

  6. Pour mieux dormir la nuit...

    View Slide

  7. ...faisons appel à l'intégration continue !

    View Slide

  8. Intégration continue
    Automatisation
    Tests Documentation
    Intégration
    Votre porte-boNheur

    View Slide

  9. Intégration
    Branche d'intégration
    Commits de
    développeurs

    View Slide

  10. Tests
    TESTS DE
    DÉVELOPPEMENT
    TESTS
    UNITAIRES
    TESTS
    D'INTEGRATION
    TESTS
    APRÈS-BUGS
    D'ACCEPTANCE
    TESTS
    TESTS DE
    DÉVELOPPEUR

    View Slide

  11. Automatisation
    Push Build Tests DeploiemeNt
    Photo : [email protected]

    View Slide

  12. Documentation
    Qualité du
    code
    Installation
    Déploiement
    Développement
    Photo : ZeroOne / Foter

    View Slide

  13. Intégration du legacy

    View Slide

  14. Factoriser pour faire les tests ?
    Brett L. Schuchert
    Toughworks
    Risque d'introduction d'un bug en
    modifiant une seule ligne du code
    legacy

    View Slide

  15. LXC
    Jailer
    Les
    micro-frameworks
    Serveur
    BDD
    Les services web Slim
    Photo : Darwin Bell / Foter
    Réplication d’environnement
    Pentaho
    Kettle
    Silex

    View Slide

  16. Les tests non-intrusifs
    Linkchecker
    Mink
    + ZombieJS
    Mink
    + Selenium
    Smoke testing
    Dev testing
    Build testing
    On peut commencer la factorisation
    et les tests unitaires
    Photo : katerha / Foter

    View Slide

  17. Build
    Configuration
    Jenkins
    Déploiement
    Automatisation
    Jenkins-PHP
    Ant
    Fabric
    Jenkins-CLI
    Photo : GogDog / Foter

    View Slide

  18. Documentation
    Build
    Tests
    Déploiement
    HTMLPublisherPlugin + PlotPlugin
    RegistrationFormHandler
    [x] Does not bind on get
    [x] Saves and sends mail on request
    [x] Binds facebook data
    UserFormHandler
    [x] No bind on get
    [x] Returns false on invalid data
    [x] Get user and bind on valid data

    View Slide

  19. Frontend
    Andrew Morrell Photography / Foter

    View Slide

  20. JS Test Driver
    JSTD

    View Slide

  21. Linters
    JS Hint CSS Lint

    View Slide

  22. Installation
    Jenkins
    1 journée
    Réplication de l'environnement
    < 1 mois
    Création de
    tests
    quelques mois
    Amélioration continue
    et projet plus stable
    pour la vie
    Estimation ?

    View Slide

  23. @marekkalnik
    Marek Kalnik
    http://tumblr.com/marekkalnik
    BLOG
    L'intégration continue
    de A à Z
    sur une application PHP
    existante
    Questions ?
    http://joind.in/7259
    Joind.in

    View Slide