Abonnez-vous pour recevoir des notifications sur les nouveaux articles :

Comment nous avons assuré l'évolutivité et la protection du vote de l'Eurovision 2023 avec Pages et Turnstile

2023-06-23

Lecture: 6 min.
Cet article est également disponible en English et en Deutsch.

Pour la première fois, en 2023, les citoyens de pays non participants ont pu voter pour leurs favoris lors du Concours Eurovision de la chanson, ajoutant des millions de téléspectateurs et de votants supplémentaires au chiffre déjà impressionnant de 162 millions de téléspectateurs dans les pays participants. Le concours est devenu un événement véritablement mondial, susceptible de subir des perturbations provenant d'une multitude de sources. Pour parer à toute éventualité, Cloudflare a contribué à l'extensibilité et la protection de l'application de vote, utilisée par des millions de fans passionnés à travers le monde pour élire le lauréat du concours.

How we scaled and protected Eurovision 2023 voting with Pages and Turnstile

Dans cet article de blog, nous allons examiner comment once.net a développé sa plateforme based.io, qui permet de surveiller, gérer et étendre l'application de vote de l'Eurovision afin de traiter l'ensemble du trafic à l'aide des nombreux services de Cloudflare. La rapidité de propagation, dans le monde entier, des changements de DNS mis en œuvre via l'API de Cloudflare a permis à once.net d'étendre son backend en quelques secondes seulement. Dans le même temps, le service Cloudflare Pages se tenait prêt à servir n'importe quel volume de trafic vers la page d'accueil du vote, afin que les fans ne manquent pas une miette de l'action. Et pour couronner le tout, en réunissant le réseau CDN de Cloudflare, la protection contre les attaques DDoS, le pare-feu WAF et Turnstile, once.net s'est assurée qu'aucun acteur malveillant ne volerait la vedette de l'événement.

Les héros méconnus

based.io est une plateforme résiliente de diffusion de données en direct développée par l'équipe de once.net, capable de s'étendre jusqu'à 400 millions d'utilisateurs connectés simultanément. Elle est fondamentalement conçue pour allier rapidité et performances, et se compose d'une base de données graphique observable en temps réel, d'une couche de connectivité réseau, de fonctions cloud, de données analytiques et d'une solution d'orchestration de l'infrastructure. Puisque l'ensemble des informations système, des analyses du trafic et des perturbations sont surveillées en temps réel, la plateforme réagit instantanément aux fluctuations de la demande, permettant l'extensibilité en temps réel de l'infrastructure en cas de pics d'affluence, de pannes ou d'attaques.

Bien que la plateforme based.io soit actuellement en version bêta fermée, elle est déjà mise en œuvre en production pour un petit nombre de clients réputés, avec l'assistance du logiciel et des services de l'équipe de once.net. Parmi ces clients figure Tally, une plateforme utilisée par de nombreux diffuseurs en Europe pour ajouter des fonctionnalités d'interaction en direct aux émissions de télévision traditionnelle. La plateforme a ainsi contribué à la réalisation de plus de 100 spectacles en direct. Un autre client de based.io est Airhub, une jeune entreprise qui gère et enregistre les vols automatiques de drones ; et, bien entendu, la star de cet article de blog, le Concours Eurovision de la chanson.

Mise en scène

Le Concours Eurovision de la chanson est l'un des plus célèbres concours télévisés du monde. Cette année, il a été regardé par 162 millions de personnes, et a été diffusé depuis 38 pays. Par ailleurs, sur TikTok, les trois émissions en direct ont été visionnées 4,8 millions de fois, tandis que 7,6 millions de personnes ont regardé la grande finale en direct sur YouTube. Avec une telle audience, il n'est guère surprenant que Cloudflare puisse observer l'impact de l'événement sur Internet. L'année dernière, nous avons publié un article de blog dans lequel nous indiquions que le trafic était inférieur à la moyenne pendant la grande finale, et supérieur à la moyenne après celle-ci. Cette année, le trafic en provenance des pays participants a connu une augmentation encore plus remarquable :

Requêtes HTTP par seconde en provenance de la Norvège, avec une tendance similaire dans des pays tels que le Royaume-Uni, la Suède et la France. Le trafic Internet a connu un pic à 21h20 UTC, lorsque le vote a commencé.

Ces volumes de trafic ne sont guère une nouveauté lors du Concours Eurovision de la chanson. L'Eurovision se fie aux services de Cloudflare depuis maintenant plus de dix ans, et Cloudflare a contribué à la protection et à l'amélioration des performances du site Eurovision.tv en offrant des temps de chargement sensiblement plus rapides aux visiteurs du monde entier. Une année après l'autre, l'équipe de l'Eurovision a continué à utiliser davantage nos services, découvrant des fonctionnalités supplémentaires permettant d'améliorer encore les performances et la fiabilité, avec un contrôle toujours plus précis de ses flux de trafic. Eurovision.tv utilise Page Rules pour mettre en cache du contenu supplémentaire à la périphérie de Cloudflare, accélérant ainsi la diffusion sans compromettre les mises à jour en temps réel pendant l'événement mondial. Enfin, pour protéger son backend et son système de gestion de contenu, l'équipe a placé ses portails d'administration derrière Cloudflare Zero Trust, afin de déléguer les responsabilités jusqu'au niveau individuel.

Depuis, le concours lui-même a évolué ; parfois par choix, parfois sous la contrainte. Pendant la pandémie de COVID-19, il est devenu impossible pour de nombreuses personnes d'applaudir les artistes en personne, en raison d'une audience réduite. C'est pourquoi le Concours Eurovision de la chanson a demandé à once.net de développer une nouvelle application iOS et Android permettant aux fans d'applaudir virtuellement. Le succès a été immédiat, et il ne faisait aucun doute que cette fonctionnalité ferait également partie de cette édition annuelle du concours.

Capture d'écran de l'application officielle du Concours Eurovision de la chanson indiquant en temps réel le nombre de fans connectés (1), leur permettant d'encourager (2) leurs candidats favoris.

Cette année, once.net a également été chargée de gérer le vote payant dans les régions dans lesquelles le vote par téléphone et par SMS n'était pas disponible. C'était la première fois que l'Eurovision autorisait le vote en ligne. Le défi qu'il fallait relever était le pic d'affluence extrême sur la plateforme pendant la diffusion en direct de l'émission, en particulier lors de l'ouverture de la période de vote.

À cette situation s'ajoutait une complexité supplémentaire : un grand nombre d'attaques ciblées et coordonnées avaient eu lieu pendant le spectacle, l'année dernière.

Pour se préparer à affronter ces pics de demande et ces adversaires déterminés, once.net avait besoin d'une plateforme à la fois résiliente et hautement évolutive, qui soit également capable de se comporter comme une couche d'atténuation déployée en amont. Pour cette fonctionnalité, once.net a choisi Cloudflare et a profondément intégré la solution à sa plateforme de surveillance et de gestion en temps réel. Pour comprendre comment et pourquoi, il est essentiel de comprendre l'architecture sous-jacente de based.io.

La plateforme based.io

Au lieu de s'appuyer sur des solutions d'équilibrage de charge de réseau ou HTTP, based.io emploie un modèle de découverte de service côté client, qui sélectionne le serveur le plus approprié auquel se connecter et tire parti de l'infrastructure de propagation rapide du cache de Cloudflare pour gérer les pics de trafic (qu'il soit malveillant ou légitime).

D'abord, chaque serveur enregistre continuellement une clé d'accès unique, avec un délai d'expiration de 15 secondes, qui doit être utilisée lorsqu'un client se connecte au serveur. En outre, toutes les 300 millisecondes, les serveurs backend transmettent des informations concernant leur intégrité (connexions actives, processeur, utilisation de la mémoire, requêtes par seconde, etc.) au référentiel du service. Les clients demandent alors l'URL de serveur optimale et la clé d'accès associée auprès d'un référentiel central de découverte, puis établissent une connexion durable avec ce serveur. Lorsqu'un serveur est surchargé, il déconnecte un certain nombre de clients, et ces derniers suivent à nouveau le processus de découverte.

Le référentiel central de découverte constituerait normalement un immense goulet d'étranglement, ainsi qu'une cible privilégiée d'attaques. based.io résout ce problème en plaçant le référentiel derrière le réseau mondial de Cloudflare, avec un délai d'accès au cache de trois secondes. Puisque le système s'appuie sur des statistiques en temps réel pour assurer la répartition de la charge et utilise des clés d'accès dotées d'une courte durée de vie, il est crucial que la mise à jour du cache se déroule de manière rapide et manière fiable. C'est ici que l'infrastructure de Cloudflare a démontré sa valeur, à la fois grâce à la mise à jour rapide du cache et à la réduction de la charge, avec la mise en cache par niveau.

En n'ayant pas recours à des solutions d'équilibrage de charge, le système based.io permet aux clients de se connecter aux serveurs backend via Cloudflare, ce qui lui permet d'offrir de meilleures performances, ainsi qu'une infrastructure plus résiliente, en éliminant la surface d'attaque potentielle que constituent les solutions d'équilibrage de charge. Cela se traduit également par une meilleure répartition des connexions, grâce aux informations en temps réel concernant l'intégrité des serveurs, le nombre de connexions actives et les abonnements actifs.

L'extension de la plateforme se déroule automatiquement, pendant qu'elle est en charge, par le déploiement de machines supplémentaires pouvant chacune gérer 40 000 utilisateurs connectés. Ces machines sont mises en service par lots de plusieurs centaines ; lors de la mise en service, chaque machine se connecte directement à l'API de Cloudflare afin de configurer son propre enregistrement DNS et son état de mise en proxy. Grâce au système DNS rapide de Cloudflare, ces changements sont ensuite propagés à travers le monde en quelques secondes seulement, ce qui se traduit par un délai total d'activation de la machine d'environ trois secondes. Cela permet une découverte plus rapide des nouveaux serveurs, ainsi qu'un rééquilibrage dynamique plus rapide par les clients. Et puisque la période de vote du Concours Eurovision de la chanson dure 45 minutes seulement et que le pic principal survient quelques minutes après l'ouverture de la période, chaque seconde compte !

Architecture de haut niveau de la plateforme based.io utilisée lors du Concours Eurovision de la chanson 2023

Pour voter, les utilisateurs de l'application mobile et les téléspectateurs du monde entier ont été dirigés vers la page d'accueil du vote, esc.vote. Le développement d'une application web frontale capable de gérer ce type d'audience est un défi en soi. Bien que l'hébergement de l'application et le déploiement d'un réseau CDN devant celle-ci puissent paraître simples, ces opérations nécessitent néanmoins de posséder, configurer et gérer une infrastructure d'origine. once.net a décidé de directement tirer parti de l'infrastructure de Cloudflare en hébergeant la page d'accueil de vote sur Cloudflare Pages. Le déploiement a été aussi rapide que la validation d'une mise à jour dans le référentiel Git, et once.net n'a jamais eu besoin de se préoccuper de l'accessibilité ou de l'évolutivité de la page web.

once.net a également déployé Cloudflare Turnstile pour assurer la protection de ses points de terminaison d'API utilisés pour valider les votes en ligne. L'entreprise a utilisé le widget invisible Turnstile afin de s'assurer que la requête ne provenait pas de navigateurs émulés (par exemple, Selenium) ; et surtout, le widget invisible Turnstile évitait aux utilisateurs de devoir franchir des étapes supplémentaires, ce qui a permis d'améliorer l'expérience utilisateur et la conversion.

Cloudflare Pages vole la vedette !

Après que les deux demi-finales se soient déroulées comme prévu, avec quelque 200 000 utilisateurs simultanés lors de chacune, la grande finale a eu lieu le 13 mai. L'équipe de once.net s'est assurée de disposer de suffisamment de machines pour supporter la charge initiale, a fait appel à Cloudflare pour assurer la surveillance et a commencé à observer la lente augmentation du nombre d'utilisateurs simultanés. Pendant l'événement, le site a subi quelques tentatives d'attaques DDoS, qui ont été automatiquement et instantanément atténuées, sans impact perceptible pour les visiteurs.

Le serveur du référentiel de découverte de based.io a également fait l'objet d'une attention particulière. Le TTL du cache ayant été défini à un niveau assez bas (cinq secondes), un taux élevé de trafic distribué vers ce serveur pourrait encore entraîner une charge importante. Heureusement, le serveur hautement optimisé de based.io peut déjà gérer à lui seul environ 300 000 requêtes par seconde. Néanmoins, il est intéressant de constater que pendant l'événement, le taux d'accès au cache pour le trafic normal était de 20 %, tandis que lors d'une attaque de grande ampleur, le taux d'accès au cache a culminé à 80 %. Cela démontre à quel point il est facile d'utiliser une solution réunissant le réseau CDN et la protection contre les attaques DDoS de Cloudflare afin d'atténuer de telles attaques, tout en conservant la capacité de servir des contenus dynamiques et en temps réel.

Lorsque le rideau est enfin retombé, 1,3 million d'utilisateurs s'étaient connectés simultanément à la plateforme based.io au plus fort du spectacle. La plateforme based.io a géré un total de 350 millions d'événements et a servi sept millions d'utilisateurs uniques en l'espace de trois heures. La page d'accueil de vote, hébergée par Cloudflare Pages, a traité 2,3 millions de requêtes par seconde lors du pic d'affluence et, à l'aide de Turnstile, a assuré que les paiements des votes provenaient de vrais fans humains. Bien que la plateforme Cloudflare n'ait pas cédé à un tel afflux de trafic, il n'est pas surprenant que celui-ci se présente sous la forme d'un bref crescendo dans nos statistiques relatives au trafic :

Contactez-nous

Si vous aussi, vous utilisez ou développez une application qui pourrait bénéficier de la vitesse et de la sécurité de Cloudflare, mais ne savez pas par où commencer, contactez-nous et nous travaillerons ensemble.

Nous protégeons des réseaux d'entreprise entiers, aidons nos clients à développer efficacement des applications à l'échelle d'Internet, accélérons tous les sites web ou applications Internet, repoussons les attaques DDoS, tenons les pirates informatiques à distance et pouvons vous accompagner dans votre parcours d'adoption de l'architecture Zero Trust.

Accédez à 1.1.1.1 depuis n'importe quel appareil pour commencer à utiliser notre application gratuite, qui rend votre navigation Internet plus rapide et plus sûre.

Pour en apprendre davantage sur notre mission, à savoir contribuer à bâtir un Internet meilleur, cliquez ici. Si vous cherchez de nouvelles perspectives professionnelles, consultez nos postes vacants.
Speed Week (FR)Cloudflare Pages (FR)TurnstileCustomersCustomer SuccessDNS (FR)SpeedReliability

Suivre sur X

Michiel Appelman|@michielappelman
Jim de Beer (Guest Author)|@strandjutternet
Cloudflare|@cloudflare

Publications associées

09 octobre 2024 à 13:00

Improving platform resilience at Cloudflare through automation

We realized that we need a way to automatically heal our platform from an operations perspective, and designed and built a workflow orchestration platform to provide these self-healing capabilities across our global network. We explore how this has helped us to reduce the impact on our customers due to operational issues, and the rich variety of similar problems it has empowered us to solve....