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 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 Slide

  3. Auchan e-commerce France

    Auchan.fr, Auchandirect.fr

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

    View 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 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 Slide

  6. Bonjour Legacy

    View 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 Slide

  8. Hey, Manuel !

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

    View Slide

  9. Un premier bilan

    Agilité

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

    Architecture logicielle

    Surveillance / Monitoring

    View Slide

  10. Les plans

    View Slide

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

    View Slide

  12. Migration de l'architecture

    View Slide

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

    View Slide

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

    View Slide

  15. Agilité, Scrum

    View Slide

  16. 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 Slide

  17. Les bénéfices

    Une meilleure priorisation

    Plus de communication

    Un meilleur suivi

    View Slide

  18. Environnement de dév.

    View Slide

  19. 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 Slide

  20. Docker ALL the environment!

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

    View Slide

  21. Un docker-compose fait maison

    Version interne de docker-compose

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

    View Slide

  22. 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 Slide

  23. 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 Slide

  24. Et après ?

    Retourner vers les standards Docker

    Tous les environnements hors-production en
    Docker

    Docker en production ?

    View Slide

  25. Tests automatisés

    View Slide

  26. 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 Slide

  27. Premier choix : Robot Framework

    Pratique

    Très flexible

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

    View Slide

  28. Robot Framework

    View Slide

  29. Deuxième choix : Behat

    Le standard de la communauté PHP

    Codé en PHP

    Plus rapide

    View Slide

  30. Industrialisation

    View Slide

  31. Bonjour Legacy !

    Fichiers de configuration gérés manuellement

    Migrations SQL faites manuellement

    View Slide

  32. 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 Slide

  33. Migrations automatisées

    Utilisation de Phinx

    Doctrine Fixtures ?

    View Slide

  34. Et après ?

    Déploiement continu

    Agilité système

    Qualifications à la demande

    View Slide

  35. Monitoring

    View Slide

  36. Monitoring

    Indicateurs
    – Système
    – Applications
    – Métier

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

    Alerting

    View Slide

  37. En résumé

    View Slide

  38. Des questions ?

    View Slide

  39. Merci !
    PS : on recrute !

    View Slide

  40. 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 Slide