- Fonctionnalités
- Pricing

Ce blog est basé sur une discussion en direct sur Upsun avec Guillaume Moigneu, ingénieur de terrain, et Thomas di Luccio, chef de produit chez Upsun. La conversation était animée par Greg Qualls. Nous avons utilisé des outils d'IA pour la transcription et pour améliorer la structure et la clarté du contenu.
À l'approche du Black Friday, les enjeux sont importants pour les entreprises de commerce électronique. Alors que les équipes marketing rêvent de ventes record, les équipes techniques sont confrontées à une réalité différente : s'assurer que l'infrastructure peut gérer un trafic sans précédent sans s'effondrer. Lors d'une récente conversation entre les développeurs Greg, Guillaume et Thomas, le groupe a partagé les leçons durement acquises lors de la gestion d'événements à fort trafic.
L'expérience de Guillaume brosse un tableau saisissant des enjeux. Ayant travaillé pour des agences de commerce électronique qui gèrent 30 à 40 grands détaillants européens, principalement dans le secteur de la mode, il a connu à la fois des triomphes et des désastres. « La pression est toujours forte et nous essayons de réagir autant que possible », explique-t-il, se souvenant du stress des équipes qui travaillent 24 heures sur 24 pendant les périodes de pointe.
Tomas partage son propre récit édifiant issu du secteur de la billetterie. Lorsque son entreprise a conclu un accord avec une nouvelle salle importante, l'annonce de la saison a attiré une foule d'acheteurs impatients. « Tout le monde achetait des billets, beaucoup de billets en même temps, il y avait une forte affluence sur le site web, toutes les applications utilisaient la même API, et tout s'est effondré », se souvient-il. La leçon était claire : la préparation n'est pas facultative.
Les deux experts ont souligné que pour bien se préparer au Black Friday, il fallait s'y prendre des mois à l'avance, et non quelques semaines. Guillaume a recommandé une approche spécifique : « Chaque fois que vous vous lancez dans le Black Friday, surtout s'il s'agit d'une nouvelle application ou de quelque chose que vous n'avez pas encore vraiment testé, vous devez prendre quelques mois pour ralentir le développement et les nouvelles fonctionnalités. »
Cela ne signifie pas qu'il faille geler complètement le code, mais cela nécessite de changer les priorités. Les équipes de développement ont besoin de temps pour mettre en place des processus de test complets, implémenter des outils de surveillance des performances des applications tels que Blackfire ou New Relic, et profiler leur code afin d'identifier les goulots d'étranglement potentiels avant qu'ils ne deviennent des défaillances critiques.
L'une des principales recommandations de Tomas concerne la création de conditions de test précises. « Vous devez être en mesure de créer les mêmes conditions, donc créez un clone de votre application de production : même configuration, même version de tout, même niveau de ressources », explique-t-il.
Ce principe va au-delà des simples spécifications matérielles. Les équipes doivent effectuer leurs tests avec des bases de données à l'échelle de la production plutôt qu'avec de petits ensembles de données de développement. Comme l'a fait remarquer Tomas, effectuer des tests avec quelques centaines d'entrées n'a rien à voir avec l'interrogation d'une base de données de production contenant des données complexes et réelles. Les différences de performances peuvent être spectaculaires et révélatrices.
Pour les tests de charge, la discussion a mis en avant des outils tels que Locust, qui peuvent simuler des milliers d'utilisateurs simultanés. Cependant, Guillaume a souligné un point important : générer un trafic réaliste nécessite des ressources considérables. « La plupart des grands sites de commerce électronique veulent traiter environ 10 000 transactions ou utilisateurs en même temps, donc utiliser des logiciels et des solutions comme Locust Cloud peut s'avérer utile, car vous ne voulez pas configurer des dizaines d'instances AWS pour envoyer du trafic vers ce site.»
Le défi n'est pas seulement technique, il s'agit également de définir des scénarios de test réalistes. Le comportement des utilisateurs est imprévisible : certains parcourent les catalogues pendant des heures, d'autres ajoutent des centaines de produits à leur panier pour s'en servir comme liste de souhaits. Travailler avec des équipes d'analystes pour comprendre les habitudes réelles des utilisateurs prend du temps, mais c'est essentiel.
Lorsqu'on lui a demandé quelle mesure les développeurs devraient prendre si le temps était limité, Guillaume n'a pas hésité : se concentrer sur la mise en cache. « La mise en cache peut être incroyable, elle peut éliminer de nombreux goulots d'étranglement dans votre application lorsqu'elle est bien faite », a-t-il déclaré, faisant référence au célèbre dicton informatique sur les deux choses difficiles : « la mise en cache et le nommage ».
Une mise en cache correctement implémentée remplit deux fonctions essentielles. Tout d'abord, elle améliore considérablement l'expérience utilisateur grâce à des temps de chargement plus rapides. Guillaume a cité la statistique souvent citée d'Amazon selon laquelle chaque 100 millisecondes de temps de chargement supplémentaire entraîne une perte de revenus significative. Ensuite, la mise en cache réduit la pression sur les ressources backend et les bases de données, évitant ainsi la surcharge lors des pics de trafic.
La principale recommandation de Tomas était d'investir dans des outils d'observabilité. « Donnez-vous les moyens d'observer le comportement de votre application et de votre infrastructure, et essayez d'en tirer des enseignements », a-t-il conseillé. Cependant, l'investissement n'est pas purement financier ; il faut du temps pour apprendre à utiliser efficacement ces outils et à comprendre les données qu'ils fournissent.
Selon Tomas, l'intérêt de l'observabilité réside dans son rôle de guide : « Elle vous tapera sur l'épaule et vous dira : « Regardez ceci, regardez dans cette direction. » Plutôt que de deviner où les problèmes pourraient se produire, les outils d'observabilité révèlent les goulots d'étranglement réels, les requêtes lentes et les processus gourmands en ressources, permettant ainsi une optimisation ciblée.
Greg a soulevé un point souvent négligé : les tests de charge ne servent pas seulement à valider la technologie, ils testent également les personnes et les processus. Des tests réguliers aident les nouveaux membres de l'équipe à comprendre les procédures d'urgence avant qu'une crise ne survienne, ce qui leur permet d'être préparés. Ils révèlent également comment des changements apparemment mineurs peuvent avoir des répercussions inattendues sur l'ensemble du système.
Guillaume a souligné l'importance des processus de sauvegarde : « Vous devez mettre en place des processus de sauvegarde, de la même manière que vous devez sauvegarder vos données. » Des problèmes surviennent inévitablement : le personnel peut être indisponible, le service marketing peut demander des modifications de dernière minute, les produits peuvent être épuisés, ce qui nécessite des mises à jour. Il est donc essentiel de disposer de processus documentés et de canaux de communication clairs.
La conversation a mis en évidence la manière dont l'infrastructure cloud moderne a transformé la préparation du Black Friday. L'époque où il fallait se rendre dans les centres de données à 4 heures du matin pour ajouter physiquement des serveurs est révolue. Cependant, de nouveaux défis sont apparus. Pendant la pandémie de COVID-19, lorsque la demande en matière de commerce électronique a explosé, certains fournisseurs de cloud ont eu du mal à fournir de nouvelles instances en raison de la pénurie de puces.
Guillaume travaille désormais pour une plateforme d'applications cloud et a vu des clients passer à 1 200 processeurs en une seule journée. « C'est toujours un défi, car, comme ces applications, elles ne sont parfois pas vraiment conçues pour atteindre un tel niveau », a-t-il fait remarquer. La découverte que les solutions de mise en cache comme Redis sont monothread peut être une révélation surprenante lorsqu'on atteint des niveaux sans précédent.
Parfois, les défis les plus importants proviennent de circonstances totalement imprévues. Guillaume se souvient avoir été présenté sans avertissement sur la principale chaîne de télévision française : « Tout s'est effondré, évidemment, car nous n'étions pas prêts. » Cela souligne l'importance d'une communication efficace entre les services, en particulier entre les équipes marketing et techniques, concernant les campagnes à venir et leur impact prévu.
Comme l'explique Guillaume : « Il n'y a rien de pire que de voir votre PDG venir vous dire : "Hé, nous avons perdu, je ne sais pas, 1 million de dollars de revenus parce que le site était en panne." » L'essentiel est de se rappeler que ces situations exigent une responsabilité partagée plutôt que des reproches. Regarder en arrière doit servir à apprendre ; regarder vers l'avenir doit servir à s'améliorer.
Une difficulté souvent négligée est la gestion des demandes de fonctionnalités qui peuvent compromettre les performances. Guillaume a insisté sur la nécessité de lutter contre les personnalisations inutiles : « Essayez de vous en tenir à ce que votre solution fait réellement. Si vous utilisez Magento, n'essayez pas de le sur-ingénier et de tout remanier, car vous allez avoir des difficultés avec les mises à jour, peut-être avec la sécurité, mais surtout, les performances vont être très mauvaises. »
Tomas a souligné la nature insidieuse de la dégradation progressive. Une fonctionnalité qui ne nécessite que deux requêtes SQL peut sembler inoffensive prise isolément. « Deux requêtes SQL ne font pas de différence, c'est vrai », a reconnu Tomas. « Mais c'est la même chose toutes les deux semaines, et quand le Black Friday arrive, vous avez 200 requêtes SQL supplémentaires. »
Si certains considèrent les tests automatisés comme controversés, les deux experts les ont défendus comme une protection essentielle. Les tests automatisés détectent non seulement les régressions fonctionnelles, mais aussi les régressions de performances, garantissant ainsi que les nouvelles fonctionnalités ne nuisent pas par inadvertance aux fonctionnalités existantes.
Tomas a toutefois mis en garde contre un piège courant : les équipes sous pression commentent parfois les tests qui échouent afin de respecter les délais de déploiement, mais oublient ensuite de résoudre les problèmes sous-jacents. « Vous ne devriez pas corriger le problème en trichant, mais en remédiant à la cause de l'échec du test », a-t-il averti.
Lorsqu'ils ont abordé le sujet des frameworks JavaScript, les deux développeurs ont conseillé de privilégier le pragmatisme plutôt que les tendances. Guillaume utilise personnellement Svelte et SvelteKit, mais reconnaît que React et Next.js sont plus largement adoptés en raison de leurs écosystèmes établis et de leurs bibliothèques de composants étendues. Angular reste très répandu dans les environnements d'entreprise en raison du soutien des grandes sociétés.
Le principe clé : « Si vous voulez publier des produits, être stable et continuer à les publier, restez-en aux bases, du moins pour l'instant », conseille Guillaume. Expérimenter des technologies émergentes comme Bun ou Turbo est acceptable pour des projets parallèles, mais les applications de production tirent profit de frameworks matures et bien pris en charge.
Tomas va encore plus loin dans cette philosophie : « J'utilise React depuis de nombreuses années et je ne veux tout simplement pas changer, car je ne l'utilise pas... Je suis plutôt un développeur backend. » Son approche pragmatique trouve un écho auprès de nombreux développeurs : utilisez ce que vous connaissez, sauf si vous avez une bonne raison de changer. Comme il le fait remarquer, si un jour Facebook cesse de prendre en charge React, « je devrai changer, mais pour l'instant, React me convient très bien ».
La préparation du Black Friday nécessite une approche holistique qui équilibre la préparation technique, la disponibilité de l'équipe et la communication interdépartementale. La pire stratégie, comme l'a dit sans détour Tomas, est de ne rien faire : « Ne faites pas comme si un Black Friday s'était mal passé, n'attendez pas un an en espérant que tout ira mieux dans un an. »
Le succès vient du fait de traiter les événements à fort trafic comme le meilleur scénario possible pour l'entreprise, tout en se préparant simultanément aux pires scénarios techniques. Commencez les tests plusieurs mois à l'avance, investissez dans l'observabilité, mettez en place une mise en cache agressive, créez des environnements de test réalistes et assurez-vous que l'ensemble de votre organisation comprend les enjeux et son rôle dans le processus.
Plus important encore, concevez l'ensemble de votre configuration en tenant compte des pires scénarios possibles, car dans le commerce électronique, le meilleur jour pour les affaires peut rapidement devenir le pire jour pour la technologie si la préparation est insuffisante.
Join our monthly newsletter
Compliant and validated