Comment le retailer Ubaldi s’est transformé en marketplace

Enseigne bien connue dans le sud de la France, Ubaldi vend des produits en ligne depuis 2005, mais a accéléré sa stratégie Internet en 2018. Devenu une véritable marketplace, le site s’appuie désormais sur Platform.sh et l’offre Flexible Engine d’Orange pour porter sa croissance.

D’origine niçoise, Ubaldi est un retailer implanté dans les Alpes Maritimes. Il compte 12 magasins en propre dans le sud de la France et développe un réseau d’affiliés. Le premier portail internet a été mis en ligne par l’enseigne en 2005. Il s’agissait alors d’un simple site de vente en ligne développé sur-mesure avec des technologies très en vogue à l’époque, PHP et MySQL.

« Nous éprouvions des difficultés à ajouter des briques technologiques sur notre plateforme, mais aussi à monter en charge. »
Vincent SalardCIO, Ubaldi

Lorsque Vincent Salard est embauché en tant que CIO d’Ubaldi, en 2017, un chef de projet et un développeur travaillaient alors sur le site qui ne commercialisait alors que du matériel de maison. Cette plateforme était chez un hébergeur Web « classique » depuis de nombreuses années, une situation qui a rapidement déplu au nouveau DSI : « Ce qui m’a le plus surpris à mon arrivée dans l’entreprise, c’est le manque de flexibilité que nous avions du point de vue de nos infrastructures. Nous éprouvions des difficultés à ajouter des briques technologiques sur notre plateforme, mais aussi à monter en charge. Nous avions dépassé la taille des clients de cet hébergeur, ce qui les poussait dans leurs retranchements. » Après avoir déploré quelques incidents, la décision est prise de changer d’hébergeur.

La solution Platform.sh sur Orange s’est imposée face à la Google Cloud Platform

Plusieurs options s’offrent alors à Vincent Salard. Il écarte rapidement la possibilité d’internaliser la plateforme Web, car l’entreprise ne dispose pas des équipes internes pour l’administrer elle-même. Une autre option consiste à se tourner vers un fournisseur de services cloud public, et faire confiance à un infogérant pour administrer cette plateforme au quotidien.

Le DSI va confronter cette approche à une autre solution plus originale, s’appuyer sur l’offre Platform.sh by Orange, c’est-à-dire le PaaS de Platform.sh reposant sur l’offre cloud IaaS d’Orange, Flexible Engine. « Dans ce projet de migration, Orange nous apporte son infrastructure technique avec son offre Flexible Engine et Platform.sh son PaaS et le volet infogérance » résume le CIO.

Si Platform.sh propose l’hébergement Node.js, Drupal, WordPress ou Java, la plateforme développée au fil des années par Ubaldi est très spécifique. C’est un véritable projet de migration que le retailer doit mener à pas de charge, car le contrat d’hébergement arrive à son terme. De plus, il faut synchroniser la migration avec cette échéance.

Néanmoins, le CIO va consacrer plus de 2 mois à la phase d’étude et d’évaluation des solutions, avec une réplique du site qui est testée sur Google Cloud Platform et Platform.sh : « Avant la migration, le portail réalisait déjà de l’ordre de 150 millions d’euros de CA, ce n’est donc pas une décision que l’on pouvait prendre précipitamment. Cette phase d’études nous a permis d’identifier les éléments que nous ne maîtrisions pas encore sur Platform.sh et du travail que nous allions devoir délivrer, mais être confiants avant cette migration. »

Quelques inévitables surprises lors de la migration

Dans ce projet de migration, Ubaldi a pu s’appuyer sur un binôme mis à disposition par Platform.sh afin d’assister l’équipe du retailer à porter son applicatif sur la nouvelle plateforme. « Ils nous ont aidés à déployer notre plateforme sur une infrastructure cible qui n’était initialement pas conçue pour porter une marketplace. Comme dans tout projet de ce type, nous avons eu des difficultés qui nous ont poussés à être innovants. Même s’il restait quelques inconnues, j’avais confiance en la capacité de l’équipe à réussir cette migration. J’ai aussi été rassuré par le niveau technique de l’équipe mise à disposition par Platform.sh et sa capacité à nous accompagner dans ce projet. »

« Il ne s’agissait pas du tout d’un schéma classique de migration depuis un CMS connu du marché, mais un projet plutôt complexe. »
Mathieu TardivatKey account manager Europe, Platform.sh

Matthieu Tardivat, Key Account Manager Europe chez Platform.sh complète cette vision : « Ubaldi nous a approchés via notre partenaire Orange, avec qui nous avons une offre Platform by Orange. Le CMS d’Ubaldi étant assez complexe et très personnalisé, ce projet était pour nous à la fois un solide client de lancement pour notre offre avec Orange. C’était aussi un challenge, car nous avons dû adapter notre modèle à leurs spécificités et leur façon de travailler. Il ne s’agissait pas du tout d’un schéma classique de migration depuis un CMS connu du marché, mais un projet plutôt complexe. »

L’équipe en charge de la migration a principalement dû faire face à trois grandes problématiques. Son plus gros défi concernait le volet base de données. D’une infrastructure MySQL répliquée sur un mode Master/Slave, le site allait désormais mettre en œuvre MariaDB sur un cluster Galera. De même, le file system des serveurs change puisque Plaform.sh met en œuvre GlusterFS, et le système de caching web est lui aussi nouveau pour l’équipe Ubaldi.

« Si nous avions su la masse de changements que cela représenterait, nous aurions sans doute géré le projet différemment, mais nous avons néanmoins mené le projet en mode “start-up”, car nous étions convaincus que notre plateforme ne nous convenait plus. Et il était important d’aller vers un modèle qui allait nous tirer vers le haut. »

Une montée en charge capitale pour l’activité de l’entreprise

La migration d’Ubaldi.com a été menée en novembre 2018, quelques mois seulement après que le site de E-Commerce ne se soit transformé en véritable marketplace. La nouvelle plateforme doit alors faire face à l’accroissement du trafic Web et tenir la charge devant une croissance rapide de l’activité. Des tests de charges, menés dès la phase de « on-boarding » avec l’équipe Platform.sh, apportent quelques garanties au CIO.

Cependant, le pari demeure risqué pour le responsable, car la nouvelle plateforme doit mobiliser beaucoup moins de serveurs que la précédente : « La plateforme répondait à nos attentes d’un point de vue fonctionnel, mais il nous fallait évaluer sa capacité à tenir la charge. Nous étions dubitatifs quant à la capacité de la plateforme d’offrir un même niveau de performance, avec un nombre de machines notoirement inférieur à celui dont nous disposions jusqu’alors. »

Ubaldi.com s’appuyait sur 16 à 18 serveurs en production chez son hébergeur, contre plus que 6 machines aujourd’hui. En parallèle, le temps de génération de page a été divisé par 2. « Une partie de ce gain est lié à la restructuration de notre code et aux nouvelles briques de la plateforme. Nous avons aussi bénéficié de la centralisation des requêtes stockées, de bases de données plus performantes. Nous disposons aussi de beaucoup plus de mémoire sur un nombre de nœuds plus limité. »

En fin de compte, seulement 5 % du code a été réécrit pour la migration vers Platform.sh. Il s’agit, logiquement, de la gestion des configurations, des environnements, des logs et du cache, ainsi que des accès au système de fichiers.

Le passage sur M6, le test de charge ultime d’un site de E-Commerce

Habitué à travailler avec un partenaire spécialisé dans les tests de montée en charge, le CIO va s’assurer des performances du site avant sa mise en production. Mais alors que Ubaldi.com fonctionne désormais sur sa nouvelle plateforme, un coup de fil va troubler l’activité du retailer. Dans le cadre de l’émission Capital consacrée au « Black Friday », une équipe de la chaîne M6 veut tourner un reportage chez Ubaldi. Si la nouvelle ravit bien évidemment l’équipe marketing, pour la DSI elle suscite l’inquiétude : un tel reportage est synonyme de pic de trafic incontrôlable…

« Nous devions optimiser la plateforme de manière itérative afin de tenir le choc et voir jusqu’où nous pourrions monter en nombre d’utilisateurs simultanés. »
Vincent SalardCIO, Ubaldi

« J’ai demandé à l’équipe de tournage combien de téléspectateurs vont venir se connecter au site pendant la diffusion de l’émission et ils n’ont pas su me répondre », se souvient Vincent Salard. « Ils m’ont simplement confié que les sites présentés lors de l’émission ne tenaient pas la charge et s’écroulaient systématiquement pendant la diffusion… » Par chance pour le CIO, la date de diffusion lui laisse 2 mois pour se préparer au tsunami des téléspectateurs de M6 consultant le site sur leur smartphone devant leur TV.

« Nous avons voulu nous préparer de la même façon que nous avions évalué Platform.sh. Alors que la première fois nous voulions simplement nous rassurer sur le niveau de performance offert, cette fois nous devions optimiser la plateforme de manière itérative afin de tenir le choc et voir jusqu’où nous pourrions monter en nombre d’utilisateurs simultanés. »

Le calcul de Vincent Salard est un peu empirique, mais il va s’avérer pertinent. Celui-ci estime qu’un téléspectateur sur 10 visitera le site pendant l’émission. Avec une audience moyenne de 4 millions de téléspectateurs, il veut se préparer à accueillir 400 000 visiteurs lors de la diffusion de l’émission. Dans les faits, ce scénario s’est avéré un peu optimiste. L’audience de Capital ce soir-là a été d’un peu plus de 2 millions de téléspectateurs et le site a approché les 200 000 visiteurs simultanés.

Parmi les multiples recettes appliquées par l’équipe IT d’Ubaldi pour préparer le site à ce pic de trafic, ses développeurs ont retravaillé leur code : « Nous avons optimisé le code partout là où ça faisait mal, tous ces goulets d’étranglement qui n’apparaissent que lors des tests de charge. Nous en avons mené 5 tests de charge afin d’identifier de manière itérative où se situaient ces points critiques. »

L’autre moyen mis en œuvre fut le recours au scaling horizontal et vertical de l’infrastructure réalisé par Platform.sh. Matthieu Tardivat explique la démarche suivie en amont la diffusion de Capital : « Ubaldi nous a contactés bien en amont de cette diffusion donc nous avons eu le temps de mettre en place une stratégie pour faire face à ce pic de charge. Dans notre relation avec Orange, nous avons la main sur les équipements de Flexible Engine. Nous avons ainsi pu faire du scaling horizontal, alors qu’à l’habitude, on ajoute simplement des ressources additionnelles aux serveurs existants. De 6 serveurs, l’infrastructure est montée à 12 serveurs sur le seul frontal web et nous avons pu tester cette configuration avant l’émission, ce qui nous a permis d’être confiant le jour J. »

Après une période d’ajustement suite à la migration, Vincent Salard estime que depuis un an la plateforme est désormais bien stabilisée et les SLA visés sont atteints. En 2 ans, le site Web qui listait 13 000 produits en accueille presque 1,5 million aujourd’hui. La transformation du site de E-Commerce en véritable place de marché fut un gros challenge à la fois pour l’équipe IT, mais aussi pour l’ensemble de l’entreprise dans la gestion de tels volumes de commandes.

« Notre plateforme va être beaucoup plus orientée API, pour répondre à nos clients pro qui ont un profil de plus en plus informaticien. »
Vincent SalardCIO, Ubaldi

En outre, conséquence directe de ce changement du « business model », Ubaldi doit désormais répondre aussi aux attentes des vendeurs pro qui commercialisent leurs offres sur la place de marché. Rapidement créé au moment de l’ouverture de la marketplace, le portail « Pro » va être restructuré et évoluer vers un modèle DDD (Domain Driven Design).

D’autre part, la plateforme doit répondre aux besoins d’utilisateurs pro qui sollicitent de plus en plus les API pour gérer leurs commandes et leur catalogue produit : « Notre plateforme va être beaucoup plus orientée API, pour répondre à nos clients pro qui ont un profil de plus en plus informaticien. Ils ont l’habitude de faire du Drop Shipping et n’accèdent plus à la marketplace que via les API. Nous devons nous adapter à cette évolution », conclut le CIO.

Le chiffre d’affaires d’Ubaldi est passé de plus de 200 millions d’euros à plus de 300 millions après sa transformation en marketplace et sa migration sur Platform.sh. Le nombre de visiteurs uniques moyen est de l’ordre de 200 000 visiteurs uniques et 500 000 pages/vues par jour.

Pour approfondir sur PaaS