Maman, on passe à la télé !

De nos jours, tout va très vite ! Etant en vacances la semaine du 6 février, rien ne semblait indiquer une activité anormale à venir pour Wanteeed et je pars serein : la semaine sera calme.

C'était sans compter sur un message de Jessica (notre Chief Marketing Officer) mercredi 8 au matin : "TF1 souhaite parler de Wanteeed dans son JT ! Ils tournent à Marseille et souhaitent filmer un utilisateur.trice de Wanteeed le 9 ou le 10 pour une diffusion ce week-end ou le week-end suivant."
Les réactions se multiplient : à la fois de la joie, de l'excitation, mais aussi de la peur (sommes-nous prêts en terme d'infra pour une telle diffusion ?)

On active les communautés d'utilisateurs et les réseaux de chacun pour trouver notre super utilisatrice, qui sera finalement Magali. Les équipes échangent avec elle sur le scénario qu'elle souhaite dérouler. Cela sera l'utilisation de codes promo sur le site de Nocibé.

Les premiers échanges avec la journaliste tendent à penser que la diffusion aura lieu le WE du 18-19 février mais rien n'est moins sûr ! Côté tech, il reste moins de 3 jours avant le WE du 11-12 et les idées fusent pour savoir comment sécuriser le site web, l'extension, les applications et nos différents backends et bases de données en cas de forte charge. Objectif : "On ne doit pas tomber".
Les avis divergent sur la charge attendue et les mesures à prendre : faut-il s'attendre à un effet Capital (avec des dizaines de milliers d'installations) ou le passage étant de courte durée juste un pic de faible ampleur (en mode pétard mouillé) ?
On se renseigne auprès du slack Tech Rocks pour avoir le feedback d'autres sociétés. Les retours sont aussi assez variés et nous donnent des pistes de travail.
Au passage, l'ancien responsable de l'infra chez TF1 nous raconte une anecdote croustillante : en 2001, TF1 avait choisi de faire une bascule de son infra et a choisi un jour où il ne devait rien se passer de bien important : le 11 septembre. Je vous laisse deviner la suite...

C'est la 1ère fois de son existence que Wanteeed est confronté à cela et n'y est pas préparé : par exemple aucun test de charge régulier n'est mis en place. Les équipes décident que le laps de temps est trop court d'ici le WE pour en initier. Ce sont les connaissances de chacun sur les composants et l'infrastructure qui vont nous guider sur les modifications à effectuer pour le jour J.
Parmi les mesures décidées :

  • Création d'une landing dédiée, complètement statique, sans dépendance et optimisée pour convertir vers les installations d’app/extension
  • Mise en cache de cette page statique chez Cloudflare.
  • Redirection du root domaine et de la home vers cette landing
  • Allègement de la page de signup
  • Optimisations sur l'application Android
  • Scaling des DB en vertical
  • Scaling des applicatifs avec provisioning de 500 instances de chaque app (oui on a peut-être vu un peu gros :-D)
  • Contact avec tous nos partenaires pour les prévenir d'une forte charge liée à notre trafic
  • Pour préparer le pire, préparation d'une page d’erreur custom avec un lien vers un Google Form pour récupérer des mails si jamais on tombe.

Les équipes (plateforme, marketing, codes promo...) travaillent d'arrache-pied sur toute la fin de semaine en mode Commando JT au cas où le passage serait le 1er week-end.
Pour permettre à toute la boîte de suivre tout ce qui tourne autour de cet évènement, un channel Slack dédié voit le jour vendredi 10 : #maman-on-passe-a-la-tele.
En plus des actions techniques, toutes les compétences sont utiles pour que cet évènement se passe bien.

  • Fabien nous a préparé un design épuré pour la landing page.
  • Nicolas et Clément ont préparé un dashboard pour suivre les métriques.
  • Jessica prépare des campagnes SEA (on ne sait pas si TF1 va citer notre nom dans le reportage)
  • Philaé prépare des posts pour communiquer sur nos réseaux sociaux

Vendredi 18h34. Info provenant de la journaliste : la diffusion est prévue pour ce soir au JT de 20h !

Jérémie et Fred s'occupent du scaling en 2 phases quelques minutes avant le JT. Une grande partie de la boîte est devant le JT à attendre ce moment, on ouvre une discussion audio sur le channel Slack pour vivre ce grand moment tous ensemble. Thibaut nous partage le dashboard Google Analytics en direct.

Le grand moment arrive et déception rien dans les titres :-(
Pour la plupart d'entre nous, cela fait bien longtemps qu'on n'avait pas suivi un JT avec autant d'attention. Entre la guerre en Ukraine et le séisme en Turquie/Syrie, l'actualité est malheureusement lourde.
Puis en 2e partie, les reportages plus légers s'enchaînent : les poêles à granulés, le cirage… Ceux qui ont une réception hertzienne ont les images plus tôt que ceux qui suivent sur Internet et peuvent les spoiler. Toujours rien nous concernant et le JT tire à sa fin.
Petit échange avec la journaliste : "Contretemps lié à la Turquie et à la Syrie, le sujet est reporté à plus tard dans le WE.". RDV demain !

Même s'il est question du 20h, pas de repos pour les braves. Jérémie et Fred font le scale pour le 13h du samedi également, pas de passage.

On se retrouve tous pour le JT de 20h du samedi 11 au soir pour la watch party n°2. D'après les dernières rumeurs, ce coup-ci c'est sûr cela sera la bonne ! Partage de dashboard, discussion Slack, on continue nos soirées JT "tous ensemble". Toujours rien dans les titres. A chaque sujet conso, on retient notre respiration et on espère être l'enchaînement suivant.
20h40 : c'est fini, sans nous. Conclusion : on s'est pris une "palmade" (définition : croyance qu'on va passer au JT mais en fait non, il y a un sujet imprévu).
Même déception le dimanche où le 20h est cette fois une édition spéciale "Ukraine, un an après". Cela ne sera donc pas ce WE...

C'est un mal pour un bien : ce décalage nous laisse une semaine de préparation supplémentaire. Je suis content pour ma part de pouvoir aussi participer de manière plus active à ce qui s'annonce un grand moment pour l'entreprise.
L'équipe en profite pour mettre en place quelques tests de charge, notamment sur la partie création de compte, identifiée comme goulet d'étranglement potentiel. C'est Artillery, déjà connu de Jérémie qui est utilisé.
Les premiers tirs en QA ne sont pas très bons. Après un resizing plus proche de l'infra de prod, c'est beaucoup mieux, même s'il reste des petites choses à corriger.
La charge nous a permis de détecter des bugs qui n'arrivent pas en temps normal (ex : 2 utilisateurs créés à la même milliseconde) et d'affiner le tuning (durée des timeouts, etc.).
Jeudi soir les tirs effectués depuis plusieurs machines sont concluants : on s'est rassuré sur notre capacité à tenir la charge le jour J.

Vendredi 17 20h, on se retrouve à nouveau. Toujours rien dans les titres, les sujets passe-partout s'enchaînent sans qu'on voit le nôtre.  On commence à détecter des patterns (Fred: "Quand Anne-Claire Coudray se lève, c'est la fin").
Les déceptions s'enchaînent avec les JT du samedi 18, toujours sans nous. On commence même à se demander si le reportage va passer un jour.

Dimanche 19 13h, JT en petit comité (pour rappel, on est censé passer à une édition de 20h). Jérémie s'écrit "On est dans les titres !". Fred est le plus heureux des hommes. Florian ajoute "On y voit même un plan furtif sur Wanteeed". Le dashboard Analytics est partagé et cette fois, ce ne sera pas pour rien !

13h12 : ça y est, c'est le reportage nous concernant. La base de données fait un pic à 60% et nous donne quelques sueurs froides.
13h26 : 8000 personnes viennent de se créer un compte suite à la diffusion (vs un millier par jour en temps normal).
Au moment du pic, on a 21 000 utilisateurs simultanés sur la home, c'est un record.

Utilisateurs simultanés sur la home lors du pic


L'infra a fait un x10 d'un coup : 251k requêtes / minute lors de la diffusion du reportage.  

Nombre de requêtes lors du pic de diffusion

Les retardataires (moi y compris) se connectent après avoir lu les notifs.
Au total, on aura 25 000 installations en 1 heure (Desktop + iOS + Android).

14h36 : le replay est dispo et cerise sur le gâteau, c'est nous sur le screen de la vidéo.
L'utilisatrice a vu le reportage et nous envoie un gentil message.
Au final, on n'est pas tombé et on a eu un sacré pic !

JT du soir : on rescale au cas où le reportage serait réutilisé pour le 20h. Ce n'est pas le cas, ce coup-ci on coupe tout le scaling.

Dernière très bonne surprise le lendemain : nous découvrons que nos apps caracolent dans le top des apps les plus téléchargées sur les stores, nous apportant encore une visibilité supplémentaire. Nous sommes par ex la 7e app gratuite (juste derrière Google et WhatsApp !).  

Bref on est passé au JT.