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

Retour d'expérience sur la migration du back-of...

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. Qui suis-je ? • Alexandre Salomé – @alexandresalome • 15

    ans de PHP • 6 ans de Symfony • 1 an et demi chez Auchan e-commerce France
  2. 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)
  3. Le Back-Office Front-Office A Front-Office B Front-Office C Middle-Office Back-Office

    Back-Office B Fournisseurs Entrepôts Paiement Transporteurs
  4. 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
  5. Hey, Manuel ! • Toutes les procédures sont manuelles –

    Installation et configuration (2 jours) – Tests (4 à 6 jours)
  6. Un premier bilan • Agilité • Automatisation – Environnement de

    développement – Tests – Déploiements – Performance • Architecture logicielle • Surveillance / Monitoring
  7. 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
  8. 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
  9. Docker ALL the environment! • On dockerise tout – Apache

    – PHP 5.5 – PHP 5.3 – ActiveMQ – SFTP – MySQL – ElasticSearch – Redis – Selenium – Robot Framework – Talend
  10. Un docker-compose fait maison • Version interne de docker-compose •

    Des fonctionnalités « maison » – Github Token – User/Group ID – External containers – DNS / Services
  11. 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
  12. Le résultat • Toute application démarre en 3 commandes :

    – git clone URL – composer install – box start • On passe de 2 jours à 20 minutes
  13. Et après ? • Retourner vers les standards Docker •

    Tous les environnements hors-production en Docker • Docker en production ?
  14. 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
  15. Premier choix : Robot Framework • Pratique • Très flexible

    • Synergie avec des équipes l'utilisant déjà
  16. Deuxième choix : Behat • Le standard de la communauté

    PHP • Codé en PHP • Plus rapide
  17. 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)
  18. Monitoring • Indicateurs – Système – Applications – Métier •

    Journaux d'événement – Événements système – Logs applicatifs – Logs métiers • Alerting
  19. 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