Le Blog Amazon Web Services
Comment TF1 a utilisé la technologie cloud et l’expertise d’AWS pour donner accès à la Coupe du Monde de la FIFA à des millions de personnes
[Cet article est une traduction de l’article que j’ai écrit et publié en anglais sur le blog AWS News.]
Trois ans avant que des millions de téléspectateurs n’assistent à l’une des finales de Coupe du monde les plus palpitantes jamais diffusées, TF1, la principale chaîne de télévision privée en France, a lancé un projet visant à redéfinir les fondements de sa plateforme de diffusion, notamment en adoptant une nouvelle architecture basée sur le cloud.
Comme tous les autres diffuseurs, TF1 observe une baisse de l’audience de la diffusion traditionnelle en direct et une popularité croissante des plateformes numériques, telles que les téléviseurs intelligents et les boîtiers comme le FireTV, ChromeCast et AppleTV, ainsi que des ordinateurs portables, des tablettes et des téléphones portables. Selon Thierry Bonhomme, directeur technique d’eTF1 (le groupe de TF1 en charge des plateformes numériques) que j’ai récemment interviewé pour le podcast 🎙AWS ☁️ en 🇫🇷, la diffusion numérique représente désormais 20 à 25 % de l’audience totale de TF1.
Ces téléspectateurs en ligne et sur mobiles génèrent des modèles de trafic très spécifiques sur les systèmes informatiques : un énorme pic de connexions et d’authentifications dans les minutes qui précèdent le début d’un match et des millions de flux vidéo qui doivent être diffusés sans interruptions sur des qualités de réseau variables. Outre ces défis techniques, il existe également un défi économique : diffuser des publicités à des moments clés, par exemple avant les hymnes nationaux ou pendant les 15 minutes de la mi-temps. La plateforme numérique vend ses propres publicités, qui sont différentes des publicités diffusées sur la TNT et peuvent également être différentes d’une région à l’autre. Tous ces flux vidéos doivent être diffusés à des millions de spectateurs sur un large éventail d’appareils et dans des conditions de réseau diverses : de la fibre optique de 1 Gbit/s à domicile aux réseaux 3G dans les zones reculées.
TF1 s’est préparé en repensant son architecture numérique, en mettant des tableaux de bord pour rendre visible les performances du nouveau système et en définissant les processus, les rôles et les responsabilités des membres de l’équipe. AWS a aidé TF1 à préparer son système pour répondre à ses exigences en matière de montée en charge, de performances et de sécurité.
Lors de mon entretien avec Thierry, il a décrit ses deux principaux objectifs lors de la conception de la nouvelle architecture technique : tout d’abord, la capacité d’absorber de gros volumes de trafic et, deuxièmement, répondre à la demande de performance. La capacité de monter en charge est essentielle pour absorber les pics de connections simultanées de téléspectateurs. De plus, les flux vidéo doivent démarrer rapidement (en moins de 3 secondes) et sans aucune interruption du lecteur vidéo (ce que l’on appelle la mise en mémoire tampon). Après tout, personne ne veut savoir que son équipe a marqué un but en entendant ses voisins crier avant de voir l’action sur son écran quelques secondes plus tard.
La technologie
À partir de 2019, TF1 a commencé à repenser son architecture de diffusion numérique et à réécrire des parties importantes du code, telles que l’API principale ou les applications clientes exécutées sur les boxes ou sur vos smartphones Android et iOS. Ils ont adopté une architecture de microservices, déployée sur Amazon Elastic Kubernetes Service (EKS) et écrite dans le langage de programmation Go pour des performances optimales. Ils ont conçu un ensemble d’API REST et GraphQL pour définir les contrats entre les applications clientes et backend, ainsi qu’une architecture pilotée par les événements avec Apache Kafka pour une montée en charge maximale. Ils ont adopté plusieurs réseaux de diffusion de contenu (CDN), dont Amazon CloudFront, pour distribuer de manière fiable les flux vidéo sur les appareils clients. En août 2020, TF1 a eu l’occasion de tester la nouvelle plateforme lors d’un événement sportif de grande envergure lorsque le Bayern Munich a battu le Paris Saint Germain 1-0 en UEFA European Champion League.
Voici un aperçu de ce qui se passe entre le moment où l’action est filmée sur le terrain et le moment où vous la voyez sur votre appareil mobile : le flux vidéo de haute qualité arrive d’abord dans la tour TF1, située à Paris, où des encodeurs matériels créent les flux vidéo nécessaires et adaptés à votre appareil. Les encodeurs matériels AWS Elemental Live peuvent générer jusqu’à huit encodages différents : 4K pour les téléviseurs, haute définition (1080), définition standard (720) et divers autres formats adaptés à un large éventail d’appareils mobiles et de bandes passantes réseau. (Cette étape d’encodage vidéo supplémentaire est l’une des raisons pour lesquelles vous pouvez parfois observer un léger délai entre la vidéo que vous recevez sur votre téléviseur traditionnel et le flux que vous recevez sur votre appareil mobile). Le système envoie les vidéos codées à AWS Elemental Media Package pour être empaquetées et, enfin, aux CDN où les applications clientes récupèrent les segments vidéo. Les applications clientes sélectionnent le meilleur encodage vidéo en fonction de la taille de votre écran et de la bande passante réseau actuellement disponible.
Fin 2021, un an avant que des millions de personnes ne voient Kylian Mbappé réussir un triplé pour la première fois en finale de Coupe du monde depuis 1966, TF1 a commencé à se préparer à cet événement en identifiant les risques possibles, sur base des expériences passées, et les domaines à améliorer. Thierry a décrit comment ils ont élaboré des hypothèses sur la taille probable de l’audience en fonction de différents scénarios de jeu : plus les bleus resteraient longtemps dans la compétition, plus le trafic attendu serait élevé. Ils ont classé les risques pour chaque phase du tournoi (premier tour, huitième de finale, quarts de finale, demi-finale et finale). Sur la base de ces scénarios, ils ont estimé que la plateforme devait être en mesure de permettre à 4,5 millions de spectateurs de se connecter à la plateforme 15 minutes avant le début d’une partie (soit 5 000 nouveaux spectateurs chaque seconde).
Ce niveau de montée en charge nécessite une préparation de la part de l’équipe de TF1, mais également de tous les systèmes externes utilisés, tels que les services cloud AWS, le service d’authentification et d’autorisation et les services CDN.
L’arrivée d’un spectateur déclenche plusieurs flux et appels d’API. Le spectateur doit s’authentifier et certains doivent créer un nouveau compte ou réinitialiser leur mot de passe. Une fois authentifié, l’utilisateur voit la page d’accueil qui, à son tour, déclenche plusieurs appels d’API, dont l’un vers le service de catalogue. Lorsque le spectateur sélectionne un flux en direct, d’autres appels d’API sont effectués pour recevoir l’URL du flux vidéo. Ensuite, la partie vidéo commence. Le lecteur côté client se connecte au CDN choisi et commence à télécharger des segments vidéo. Une fois que la vidéo est en cours de lecture, la plateforme doit s’assurer que le flux est diffusé de manière fluide, de haute qualité et qu’aucune perte ne provoquerait une mise en mémoire tampon. Tous ces éléments sont essentiels pour garantir la meilleure expérience possible aux spectateurs.
La préparation
Six mois avant que les bleus n’accèdent à la finale et n’affrontent l’Argentine, TF1 a commencé à travailler en étroite collaboration avec ses fournisseurs, dont AWS, pour définir les exigences, réserver des capacités et commencer à travailler sur des plans de test et d’exécution. À ce stade, TF1 s’est engagée avec AWS Infrastructure Event Management, un programme dédié du plan de support aux entreprises AWS. Nos experts proposent une architecture, des conseils et une assistance opérationnelle lors de la préparation et de l’exécution d’événements planifiés, tels que les promotions, les lancements de produits, les migrations et, dans ce cas, le plus grand événement de football au monde. Pour ces événements, AWS aide les clients à évaluer leur niveau de préparation opérationnelle, à identifier et à atténuer les risques, et à agir en toute confiance avec les experts AWS à leurs côtés.
Un soin particulier a été apporté au test de la montée en charge de l’API. L’équipe de TF1 a développé un moteur de test de charge pour simuler la connexion des utilisateurs à la plateforme, l’authentification, la sélection d’un programme et le démarrage d’un flux vidéo. Pour simuler au mieux le trafic réel, TF1 a fait appel à un autre fournisseur de cloud pour envoyer des requêtes à son infrastructure sur AWS. Les tests leur ont permis de définir les mesures correctes à observer dans leurs tableaux de bord et les valeurs correctes pour générer des alarmes. Thierry explique que la première fois que le simulateur de charge a fonctionné à pleine vitesse, simulant 5 000 nouvelles connexions par seconde, le backend s’est écroulé.
Mais comme toute équipe de renommée mondiale, TF1 en a profité pour en tirer les leçons. Il leur a fallu 2 à 3 semaines pour régler leurs systèmes. Ils ont éliminé les appels d’API redondants provenant des applications clientes et ont appliqué des stratégies de mise en cache agressives. Ils ont appris à adapter leur plateforme backend en fonction de ce trafic. Ils ont également appris à identifier la valeur des indicateurs clés sous la charge. Après quelques déploiements backend et le déploiement de nouvelles versions de leurs applications Android et iOS, le système a passé le test de charge avec brio. C’était un mois avant le début de l’événement. À ce moment-là, TF1 a décidé de geler tous les nouveaux développements ou déploiements jusqu’au premier lancement au Qatar, à moins que des bogues critiques ne soient découverts.
Suivi et planification
La plateforme technologique n’était qu’un élément du projet, m’a confié Thierry. Ils ont également conçu des tableaux de bord métriques à l’aide de Datadog et Grafana pour surveiller les indicateurs de performance clés et détecter les anomalies pendant l’événement. Thierry a noté que lorsqu’ils observent des valeurs moyennes, ils omettent souvent des parties des observations. Par exemple, selon lui, l’observation d’une valeur percentile P95 au lieu d’une moyenne indique l’expérience de 5 % de vos utilisateurs. Lorsque vous en avez trois millions, 5 % représentent 150 000 téléspectateurs. Il est donc important de connaître leur expérience. (D’ailleurs, cette technique de percentile est couramment utilisée par Amazon et AWS dans toutes les équipes de service, et Amazon CloudWatch intègre un support pour mesurer les valeurs percentiles.)
TF1 s’est également préparé au pire, a-t-il dit, notamment au spectre de voir trois millions de personnes devant un écran noir pendant un match. TF1 a impliqué très tôt ses community managers et ses responsables de réseaux sociaux, et ils ont préparé des communiqués de presse et des messages sur les réseaux sociaux pour de multiples scénarios. L’équipe avait également prévu de réunir tous ses membres clés dans une « salle de guerre » à chaque match afin de réduire le temps de communication et de réaction si quelque chose nécessitait une action immédiate. Cette équipe incluait le responsable technique des comptes AWS, ses homologues du service d’authentification et d’autres fournisseurs de CDN. AWS a également impliqué des ingénieurs de garde issus des équipes de service et une équipe d’assistance premium pour surveiller l’état de nos services et être prêts à réagir en cas de problème.
Les attaques n’étaient pas que sur le terrain
Trois moments clés du début du tournoi ont permis de tester la plateforme « pour de vrai » : la cérémonie d’ouverture, le premier match et, surtout pour le public de TF1, le premier match des bleus. Au fur et à mesure que le tournoi se déroulait au cours des semaines suivantes, avec une intensité, un suspense et une charge informatique accrus au fur et à mesure de la progression des bleus, l’équipe de TF1 réévaluait ses estimations de trafic et effectuait des comptes-rendus après chaque match. Mais alors que l’intensité de l’action se déroulait sur le terrain, l’équipe de TF1 a ressenti une certaine effervescence dans les coulisses.
Dès les quarts de finale, l’équipe a remarqué une activité inhabituelle provenant d’un large éventail d’adresses IP distribuées et a déterminé que le système faisait l’objet d’une vaste attaque par déni de service distribué (DDOS) provenant d’un réseau de machines compromises ; quelqu’un essayait de faire tomber le service et d’empêcher des millions de personnes de regarder les matchs. TF1 est habituée à ce type d’attaques et son tableau de bord a permis d’identifier les modèles de trafic en temps réel. Des services tels qu’AWS Shield et AWS Web Application Firewall ont contribué à mitiger l’incident sans affecter l’expérience des utilisateurs. L’équipe de sécurité de TF1 et les experts d’AWS ont mené une analyse plus approfondie afin de bloquer de manière proactive certains modèles de trafic et d’adresses IP pour les prochains matchs.
L’intensité des attaques a tout de même augmenté pendant les demi-finales et la finale, elle a alors culminé à 40 millions de requêtes sur une période de dix minutes. « Ces attaques sont un jeu du chat et de la souris », explique Thierry : les attaquants essaient de nouvelles stratégies et appliquent de nouveaux modèles, mais l’équipe de la salle de guerre les détecte et met à jour de manière dynamique les règles de filtrage pour les bloquer avant même que les téléspectateurs ne puissent détecter une modification de la qualité du service. La préparation longue et détaillée s’est montrée efficace et tout le monde savait quoi faire. Thierry a indiqué que les attaques avaient été mitigées avec succès et sans conséquences.
Une finale palpitante
Lorsque la France est entrée sur le terrain le 18 décembre 2022, TF1 savait qu’ils allaient battre des records d’audience. Thierry a indiqué que le trafic était plus élevé que prévu, mais que la plateforme l’avait absorbé sans broncher. Il a également expliqué que durant la première partie du match, alors que l’Argentine menait, TF1 a observé une lente baisse de ses connexions… jusqu’au premier but marqué par MBappé 10 minutes avant la fin de la rencontre. À ce moment-là, tous les tableaux de bord ont indiqué un retour soudain des spectateurs pour voir les derniers moments palpitants de la finale. Au pic, plus de 3,2 millions de lecteurs numériques étaient connectés en même temps, fournissant 3,6 térabits par seconde de bande passante sortante via les quatre CDN.
Dans le monde entier, Amazon CloudFront a également aidé 18 autres chaînes de télé à diffuser des flux vidéo. Au total, 48 millions d’adresses IP clients uniques se sont connectées à l’un des plus de 450 sites périphériques dans le monde entier pendant le tournoi, avec un pic d’un peu moins de 23 térabits par seconde sur l’ensemble de ces distributions clients lors du match de finale.
L’avenir
Alors que l’Argentine triomphait et que Lionel Messi a remporté « sa » Coupe du monde tant attendue, la Coupe du Monde de la FIFA 2022 a prouvé à TF1 que leurs processus, leur architecture et leur développements sont capables d’offrir une expérience de visionnage de haute qualité à des millions de personnes. L’équipe est désormais convaincue que la plateforme est prête à absorber les prochains événements de grande envergure prévus : la Coupe du monde de rugby en septembre 2023 et la prochaine élection présidentielle en 2027. Thierry a conclu notre conversation en prédisant que la diffusion numérique finira par toucher un public plus large que la diffusion hertzienne, et avoir plus de 3 millions de téléspectateurs simultanés deviendra la nouvelle norme.
Si votre entreprise cherche également à transformer ses activités en utilisant la puissance du cloud, consultez l’un de nos conseillers du support entreprise.