Retour d'expérience sur
la migration du Back-Office
Auchan e-commerce France
Slide 2
Slide 2 text
Qui suis-je ?
●
Alexandre Salomé
– @alexandresalome
●
15 ans de PHP
●
6 ans de Symfony
●
1 an et demi chez Auchan e-commerce France
Slide 3
Slide 3 text
Auchan e-commerce France
●
Auchan.fr, Auchandirect.fr
●
Basé à Villeneuve-d'Ascq (près de Lille)
Slide 4
Slide 4 text
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)
Slide 5
Slide 5 text
Le Back-Office
Front-Office A Front-Office B Front-Office C
Middle-Office
Back-Office Back-Office B
Fournisseurs Entrepôts
Paiement Transporteurs
Slide 6
Slide 6 text
Bonjour Legacy
Slide 7
Slide 7 text
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
Slide 8
Slide 8 text
Hey, Manuel !
●
Toutes les procédures sont manuelles
– Installation et configuration (2 jours)
– Tests (4 à 6 jours)
Slide 9
Slide 9 text
Un premier bilan
●
Agilité
●
Automatisation
– Environnement de développement
– Tests
– Déploiements
– Performance
●
Architecture logicielle
●
Surveillance / Monitoring
Les bénéfices
●
Une meilleure priorisation
●
Plus de communication
●
Un meilleur suivi
Slide 18
Slide 18 text
Environnement de dév.
Slide 19
Slide 19 text
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
Slide 20
Slide 20 text
Docker ALL the environment!
●
On dockerise tout
– Apache
– PHP 5.5
– PHP 5.3
– ActiveMQ
– SFTP
– MySQL
– ElasticSearch
– Redis
– Selenium
– Robot Framework
– Talend
Slide 21
Slide 21 text
Un docker-compose fait maison
●
Version interne de docker-compose
●
Des fonctionnalités « maison »
– Github Token
– User/Group ID
– External containers
– DNS / Services
Slide 22
Slide 22 text
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
Slide 23
Slide 23 text
Le résultat
●
Toute application démarre en 3 commandes :
– git clone URL
– composer install
– box start
●
On passe de 2 jours à 20 minutes
Slide 24
Slide 24 text
Et après ?
●
Retourner vers les standards Docker
●
Tous les environnements hors-production en
Docker
●
Docker en production ?
Slide 25
Slide 25 text
Tests automatisés
Slide 26
Slide 26 text
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
Slide 27
Slide 27 text
Premier choix : Robot Framework
●
Pratique
●
Très flexible
●
Synergie avec des équipes l'utilisant déjà
Slide 28
Slide 28 text
Robot Framework
Slide 29
Slide 29 text
Deuxième choix : Behat
●
Le standard de la communauté PHP
●
Codé en PHP
●
Plus rapide
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)
Slide 33
Slide 33 text
Migrations automatisées
●
Utilisation de Phinx
●
Doctrine Fixtures ?
Slide 34
Slide 34 text
Et après ?
●
Déploiement continu
●
Agilité système
●
Qualifications à la demande