Après une courte période d’immersion dans l’équipe et le fonctionnement du site drive, le projet a connu un enchaînement de plusieurs phases :
> Modernisation des outils de développement :
● Utilisation de git à la place de svn
● Mise en place d’un serveur gitlab privé
● Définition et explication du workflow à adopter (branches, release, hotfix…)
● Utilisation de composer et formation au semantic versionning
● Mise en place de merge request / revue de code
● Tracking des releases, des issues associées
> Présentation et adoption de la nouvelle architecture :
● Micro-framework Lumen (basé sur Laravel)
● Librairie Dingo Api pour cadrer l’API REST, la documentation automatique, le format Jsonapi, facilité de versionning de l’API
● Création d’un SDK Drive et SDK Client pour y écrire le nouveau code migré du site couvrant les besoins respectifs du eCommerce et de la gestion des comptes clients. Ces deux vendors PHP sont utilisés par l’API et devront pouvoir être également utilisable par un projet futur de refonte technique du site drive
● Authentification Oauth2
● Cache avec Redis à haut niveau (transformation json obtenue en réponse de l’API) et à bas niveau (sérialisation d’objets/hydratation)
● Utilisation de composants éprouvés pour couvrir les besoins en remplacement du code maison (zend-db, validations symfony, container de dépendances…)
> Mise en place d’intégration et déploiement continus :
● POC sur des tests unitaires
● Écriture de tests fonctionnels au niveau de l’API
● Contrôle automatisé des failles de sécurité sur les vendors
● Injection des variables d’environnement propres à chaque branche et déploiement
● Création d’un package déployé et synchronisé sur les serveurs
> Mise en place d’un nouveau serveur de ressources Nginx :
● En charge du redimensionnement des images produits/catégories et du reste de la structure de vente
● En charge de la mise en cache des images générées
● Restriction sur les formats dynamiques demandés