

Black Friday: comment une expérience risquée nous a sauvés la journée

Vendredi dernier, l’état d’urgence était déclaré chez Digitec Galaxus AG. Le plus gros souci: est-ce que les serveurs tiendront le coup face à l’afflux? Enes Poyaz, Software Engineer, était en première ligne. Il parle du jour où tous les ingénieurs ont misé sur le même cheval.
17 secondes. C’est le temps qu’il a fallu pour que digitec.ch soit pour la première fois hors ligne lors du fameux Black Friday. La raison: trop de demandes d’utilisateurs. Les serveurs de notre entreprise ont capitulé après 17 secondes sous le poids des demandes. Trop de clients voulaient profiter des offres spéciales lors de la journée de soldes internationale.
«En fait, nous pensions que les serveurs tiendraient plus longtemps», dit Enes Poyraz, Junior Software Engineer.
L’ingénieur parle d’une journée où lui et son équipe ont forcé une entreprise à improductive et où les ingénieurs ont sauvé vos offres dans un acte de désespoir.
Nos serveurs nous ont abandonnés après 17 secondes de Black FridayEnes est là à la seconde où les serveurs fléchissent pour la première fois. Car, chaque année, une équipe d’ingénieurs – toutes sont nommées d’après des James Bond – est toujours en stand-by pour le Black Friday. Dans les nouveaux bureaux de la Förrlibuckstrasse, à la maison en home office ou quelque part sur les ordinateurs portables avec l’Internet mobile. Ils attendent que les serveurs fléchissent.
Cependant, à minuit, ils arrivent à leurs limites. Les ingénieurs d’habitude si fiers doivent encaisser un coup dur. Les hommes et les femmes qui trouvent déjà un arrêt de quelques petites secondes trop long ont seulement réussi à rendre les serveurs opérationnels après deux bonnes heures. Mais la boutique en ligne n’était pas stable. Le site était souvent hors ligne, mais pas longtemps. Seul un flux en direct du Digital Marketing est actif.
«Certes, cela est pénible pour les clients, mais du côté des ingénieurs, c’est un comportement attendu», dit Enes. Il hausse les épaules. Bien sûr, c’est désagréable et les ingénieurs essaient de minimiser ces périodes. Mais quand une nation va à l’assaut d’un site Internet, cela peut se produire.
La seconde vague
Le calme revient. Après 2 heures, les Suisses ont chassé les bonnes affaires et dorment. Plus tard, au cours de la journée, j’ai appris qu’à la succursale de Zurich, une personne était entièrement consacrée aux abonnements. Car vendredi dernier, les clients profitaient de 50 % de rabais sur leur smartphone s’ils concluaient un contrat. Les abonnements peuvent aussi être obtenus en ligne.
Vers 9 heures, il est de nouveau au travail et se décrit comme ayant assez dormi. Les serveurs tiennent le coup. De justesse.
«La charge a continuellement augmenté au cours de la journée», dit Enes, «et nous avons compris que si cela continue comme ça, nous ne tiendrons pas la journée.»
Mon clavier reste inutilisé, mais j’expérimente avec du matériel hors ligne.Mais rien n’y fait: à midi, le serveur retombe une nouvelle fois en panne. Pas aussi gravement que la nuit dernière, le site s’affiche et disparaît toutes les quelques secondes, mais tout de même trop instable pour une bonne expérience d’achat sur le site.
Les ingénieurs oublient la pause de midi et donnent leur maximum pour remettre le site en ligne.
Une expérience sauve la journée
Alors qu’Oliver et une équipe d’ingénieurs composé de tous les départements de l’Engineering ont mis des services hors ligne, Enes et deux autres ingénieurs étaient occupés à faire un plan de bataille. Que faire quand mettre les services internes hors ligne ne suffit pas?
Les trois ingénieurs ont reçu la mission de trouver une solution quand toutes les autres solutions échouent.
«Plus anticonformiste est impossible», dit Enes. Il est tout de même fier d’appartenir à l’équipe qui a sauvé la journée. L’homme d’ordinaire plutôt calme parle cette fois un peu plus fort.
«Je n’ai jamais vraiment testé Redis», dit-il, «mais j’ai passé deux jours à faire quelques tests». Ça ne sera jamais assez pour confier la plus grande boutique en ligne de Suisse au système. Quand Enes regarde ses notes prises il y a deux semaines, il sourit.
Il a certainement quelques domaines d’applications chez nous
On demande à Enes: «Tu penses que ça va le faire?»
L’ingénieur acquiesce.
Redis prend en charge
Le problème arrive avec le go-live que se passe de la manière la plus désordonnée possible. Enes veut lancer Redis sur un Managed Server de Microsoft pour que les charges de deviennent pas trop grandes en interne.
«Malheureusement, Redis fonctionne sur le port 6380, fermé chez nous», dit-il. En urgence, il demande l’ouverture du port, qui n’est malheureusement par possible: il est justement bloqué par le serveur Microsoft. Mais Enes a appris une chose: il a toujours un second plan prêt à l’emploi.
«En parallèle, j’ai essayé de faire marcher Redis sur le cloud Google», ajoute-t-il. Mais ça aussi s’avère plus difficile que prévu. Avec l’aide de Michal Nebes, Senior Software Engineer, il arrive à créer un cluster Redis.
Vers 16 heures, c’est du sérieux. Un petit review de code. D’après Boško Stupar, Senior Software Engineer, le code fonctionne et il mesure de round trop des données, c’est-à-dire le temps dont les données ont besoin pour être envoyées au serveur et pour revenir à l’ordinateur de l’utilisateur.
- Normal: de 50 à 500 millisecondes. Trop lent
- Redis, système de test local: de 8 à 9 millisecondes
- Redis, productif: de 16 à 19 millisecondes
Redis est mis en ligne. Les ventes du soir sont placées entre les mains d’un système non testé avec une sécurité minimale.
Quelques secondes de panique.
Redis lis les demandes et constitue un cache.
La charge pesant sur les serveurs diminue sensiblement. La boutique en ligne se stabilise.
La charge CPU d’un serveur d’une boutique en ligne. À gauche les deux pics qui montrent une charge de 100% dans la nuit et vers midi.Les ingénieurs respirent.
Plus tard, sur Facebook, Boško Stupar écrit:
Après le coucher de soleil, les ingénieurs se retrouvent autour d’une bière au cinquième étage à la Pfingstweidstrasse, avec toujours un œil sur la boutique en ligne. Une fête de folie ne ressemble pas vraiment à ça, mais ils de détendent.
Vers 18h55, Enes lève le statut d’urgence via WhatsApp:
«Redis is live»Les ingénieurs ont à moitié fini leur journée, mais les employés des succursales sont les derniers devant tenir le coup. Aux caisses, la journée se termine à 20 heures. Plus d’abonnements, plus de livraisons, plus de questions.
Quo vadis, Redis?
Le système Redis reste en ligne durant le week-end jusqu’à lundi soir pour pouvoir participer au Cyber Monday. Les ingénieurs sont fiers, la boutique en ligne sera stable lundi. Mais, dans un premier temps, Redis a fait son travail et le cluster sera à nouveau retiré du réseau.
«Une fois que tout est dit et fait, on parle tout de même d’un système encore peu testé», ajoute Enes.
Les ingénieurs ont une longue liste de questions qu’ils doivent traiter avant de pouvoir ajouter définitivement Redis au réseau avec bonne conscience. Parmi ces dernières, de nombreuses questions qui ressemblent à ça: «pourquoi est-ce que Redis fait $ding?»
Maintenant que la situation s’est à nouveau calmée, les ingénieurs peuvent se consacrer à ces questions. Car Black Friday leur a au moins montré une chose: Redis a du potentiel. Ne pas l’utiliser serait dommage.


Journaliste. Auteur. Hackers. Je suis un conteur d'histoires à la recherche de limites, de secrets et de tabous. Je documente le monde noir sur blanc. Non pas parce que je peux, mais parce que je ne peux pas m'en empêcher.
Actualités sur les fonctionnalités de la boutique, informations sur le marketing ou la logistique et bien plus encore.
Tout afficher