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

Retour d'expérience sur la migration du back-office - Auchan e-commerce - Forum PHP 2015

Retour d'expérience sur la migration du back-office - Auchan e-commerce - Forum PHP 2015

Alexandre Salomé

November 24, 2015
Tweet

More Decks by Alexandre Salomé

Other Decks in Technology

Transcript

  1. Retour d'expérience sur
    la migration du Back-Office
    Auchan e-commerce France

    View full-size slide

  2. Qui suis-je ?

    Alexandre Salomé
    – @alexandresalome

    15 ans de PHP

    6 ans de Symfony

    1 an et demi chez Auchan e-commerce France

    View full-size slide

  3. Auchan e-commerce France

    Auchan.fr, Auchandirect.fr

    Basé à Villeneuve-d'Ascq (près de Lille)

    View full-size slide

  4. Le métier
    Le e-commerce, en grand
    Des centaines de milliers de produits
    Des centaines ou des milliers de fournisseurs
    Multiples entrepôts et multiples transporteurs
    Relation avec les magasin (stock magasin, retrait
    magasin, retour magasin)

    View full-size slide

  5. Le Back-Office
    Front-Office A Front-Office B Front-Office C
    Middle-Office
    Back-Office Back-Office B
    Fournisseurs Entrepôts
    Paiement Transporteurs

    View full-size slide

  6. Bonjour Legacy

    View full-size slide

  7. Bonjour Legacy
    Middle-Office Back-Office
    - 413.088 lignes de code
    - Dette technique Insight : 7 ans
    - 11422 violations
    - 1.039.996 lignes de code
    - Dette technique Insight : 31 ans
    - 33.272 violations

    View full-size slide

  8. Hey, Manuel !

    Toutes les procédures sont manuelles
    – Installation et configuration (2 jours)
    – Tests (4 à 6 jours)

    View full-size slide

  9. Un premier bilan

    Agilité

    Automatisation
    – Environnement de développement
    – Tests
    – Déploiements
    – Performance

    Architecture logicielle

    Surveillance / Monitoring

    View full-size slide

  10. Migration de l'architecture
    Middle-Office
    Fournisseurs Stock ...
    ...
    ...
    ...
    ... ... ...
    ... ... ...
    Commandes Catalogue

    View full-size slide

  11. Migration de l'architecture

    View full-size slide

  12. Architecture orientée services
    Référentiel produits
    API
    Catalogue
    Livraison
    Événements

    View full-size slide

  13. Aujourd'hui
    Middle-Office
    Fournisseurs Stock
    Commandes
    ...
    ...
    ...
    ...
    ...
    ... ... ...
    ... ...
    Catalogue

    View full-size slide

  14. Agilité, Scrum

    View full-size slide

  15. Basculé !

    5 équipes

    Sprints de 2 semaines

    Rôles : PO, SM, développeur

    Rituels : poker-planning, task split, daily
    standup, revues de sprint, rétrospective

    Word → Jira

    View full-size slide

  16. Les bénéfices

    Une meilleure priorisation

    Plus de communication

    Un meilleur suivi

    View full-size slide

  17. Environnement de dév.

    View full-size slide

  18. Bonjour Legacy

    Tout le monde sur le même serveur
    – On partage une base de données de production
    modifiée
    – Certains services mutualisés (FTP, ActiveMQ, ...)

    2 jours pour déployer un nouvel environnement

    View full-size slide

  19. Docker ALL the environment!

    On dockerise tout
    – Apache
    – PHP 5.5
    – PHP 5.3
    – ActiveMQ
    – SFTP
    – MySQL
    – ElasticSearch
    – Redis
    – Selenium
    – Robot Framework
    – Talend

    View full-size slide

  20. Un docker-compose fait maison

    Version interne de docker-compose

    Des fonctionnalités « maison »
    – Github Token
    – User/Group ID
    – External containers
    – DNS / Services

    View full-size slide

  21. La base de données de production

    Besoin de données « réelles »

    Base de données = 40 Go

    MagicDB
    – Je veux une base de données de production
    – 5 secondes plus tard, elle est prête
    – Je peux la supprimer/recréer facilement

    View full-size slide

  22. Le résultat

    Toute application démarre en 3 commandes :
    – git clone URL
    – composer install
    – box start

    On passe de 2 jours à 20 minutes

    View full-size slide

  23. Et après ?

    Retourner vers les standards Docker

    Tous les environnements hors-production en
    Docker

    Docker en production ?

    View full-size slide

  24. Tests automatisés

    View full-size slide

  25. Bonjour Legacy

    Plusieurs jours pour tester toute l'application
    – Toutes les 4 semaines
    – Plusieurs personnes

    Des tests parfois ignorés
    – Indisponibilité d'un tiers
    – Manque de temps
    – Manque de rigueur

    View full-size slide

  26. Premier choix : Robot Framework

    Pratique

    Très flexible

    Synergie avec des équipes l'utilisant déjà

    View full-size slide

  27. Robot Framework

    View full-size slide

  28. Deuxième choix : Behat

    Le standard de la communauté PHP

    Codé en PHP

    Plus rapide

    View full-size slide

  29. Industrialisation

    View full-size slide

  30. Bonjour Legacy !

    Fichiers de configuration gérés manuellement

    Migrations SQL faites manuellement

    View full-size slide

  31. Configuration automatique

    Des dizaines de fichiers de configuration

    Création de méthodes pour :
    – Transférer la configuration d'une application à une
    autre
    – Réduire le nombre de fichiers de configuration à un
    seul (parameters.yml de Symfony)

    View full-size slide

  32. Migrations automatisées

    Utilisation de Phinx

    Doctrine Fixtures ?

    View full-size slide

  33. Et après ?

    Déploiement continu

    Agilité système

    Qualifications à la demande

    View full-size slide

  34. Monitoring

    Indicateurs
    – Système
    – Applications
    – Métier

    Journaux d'événement
    – Événements système
    – Logs applicatifs
    – Logs métiers

    Alerting

    View full-size slide

  35. Des questions ?

    View full-size slide

  36. Merci !
    PS : on recrute !

    View full-size slide

  37. Crédits

    Photos
    – Gioia De Antoniis - https://flic.kr/p/8yHq9y
    – Gran Canyon National Park - https://flic.kr/p/cq3Yhu
    – L'oeil étranger - https://flic.kr/p/gWj3Tk
    – Amanda B - https://flic.kr/p/9suoXu
    – clement127 - https://flic.kr/p/qxEiX3
    – Nick Saltmarsh - https://flic.kr/p/5j5pY8
    – Highways England - https://flic.kr/p/a9VWKa
    – Moutain Biking - https://flic.kr/p/8w9BMj

    View full-size slide