Comment Teads encaisse 1,2 milliard de visiteurs par mois
Propulsée par le cloud d'Amazon, la plateforme française de publicités en ligne s'adosse à une infrastructure big data dont certains traitements sont optimisés grâce à l'IA.
Plateforme mondiale star de la publicité en ligne, Teads s'est fait connaitre grâce à l'inRead, un format vidéo qui se niche au cœur des articles des sites média, entre deux paragraphes. Acquise par le groupe télécoms Altice en mars 2017, cette société d'origine montpelliéraine compte désormais 700 salariés et réalise un CA de 281 millions d'euros. Depuis, elle a notamment étendu son offre au display à la performance, avec à la clé une facturation en fonction du nombre de clics, du volume de nouveaux visiteurs qualifiés ou encore des publicités/vidéos vues en totalité. Présent dans 24 pays, Teads revendique un reach de 1,2 milliard de visiteurs uniques par mois (47 millions en France), dont 800 millions sur mobile. Au total, sa plateforme de diffusion d'espaces publicitaires gère pas moins de 10 milliards d'événements de suivi chaque jour.
Comment Teads parvient-il à adresser une telle audience ? Hébergée chez Amazon Web Services (AWS), sa supply side platform (SSP) est d'abord distribuée sur trois régions du cloud américain, en Europe, aux Etats-Unis et en Asie-Pacifique. Une architecture répartie géographiquement qui contribue à rendre son environnement performant. "Tout l'enjeu est de limiter le temps de réponse d'une publicité à 100 millisecondes. C'est la fenêtre nécessaire pour réaliser en temps réel l'enchère publicitaire en sollicitant depuis notre SSP les différentes demand side platform (DSP, ndlr) qui nous font des demandes d'emplacements publicitaires", explique Damien Pacaud, directeur de l'ingénierie et de l'infrastructure cloud chez Teads. "D'où ce projet de régionalisation que nous avons réalisé pour nous rapprocher des internautes et ainsi accélérer les chargements. Dans la même logique, nous avons aussi beaucoup optimisé la taille de nos scripts."
Cassandra et Kafka
Sous le capot, la base de données n'est autre que Cassandra. Un choix judicieux. Justement dotée d'une architecture distribuée, ce système NoSQL (orienté colonnes) permet d'augmenter le nombre de serveurs virtuels sur lesquels il repose de manière linéaire sans avoir à modifier la couche applicative. Un levier pratique pour gérer les fortes augmentations de trafic. Au sein d'un cluster Cassandra, l'orchestration du stockage est par ailleurs gérée de manière décentralisée (via un protocole en peer-to-peer). Il n'y a pas de serveur maître chargé du pilotage. Dans la mesure où les données peuvent être répliquées sur plusieurs serveurs, on aboutit ainsi à une architecture sans point individuel de défaillance. Si un serveur tombe, un autre pourra prendre le relai.
"Cassandra associe le meilleur de Google Big Table à savoir son modèle de données orienté colonnes et son mécanisme de persistance et d'Amazon DynamoDB avec son architecture distribuée où tous les nœuds sont équivalents", résume Abdelmajid Lali, architecte Java EE au sein de l'ESN française Soat. Au sein du cluster Cassandra de Teads sont stockées toutes les données de campagnes orchestrées par la plateforme jusqu'aux stratégiques informations de comptage des visiteurs.
"Nous avons recours au machine learning pour réduire le nombre de DSP sollicités"
En aval, les logs sont acheminés via l'infrastructure de streaming Kafka vers le service de stockage S3 d'AWS, qui joue le rôle de data lake. Ainsi fédérés, les logs sont ensuite exploités pour des besoins en reporting et business intelligence. Remontés en quasi-temps réel par Kafka, certains flux de données font l'objet de traitements en machine learning mis en musique via le framework Spark. "Ces analyses nous permettent notamment de prédire en fonction d'une requête d'un internaute la réponse que nous proposera telle ou telle demand side platform. Nous avons ainsi la possibilité de mieux cibler les DSP que nous sollicitons et optimiser les coûts tarifés par AWS pour le trafic sortant de notre plateforme vers l'extérieur", détaille Damien Pacaud. "C'est un vrai challenge d'infrastructure dans la mesure où nous pouvons avoir jusqu'à 3 Po de données mensuelles dynamiques autour des requêtes d'enchères."
Grâce au machine learning, Teads anticipe également le taux de scroll des visiteurs sur les publicités ainsi que le temps d'affichage de ces dernières. En fonction du résultat, il pourra décider en temps réel de les basculer sur des contrats plus ou moins premiums. Une technique qui lui permet in fine d'optimiser son inventaire. "Ce qui est d'autant plus important qu'une publicité n'est facturée que si elle est réellement vue", rappelle-t-on chez Teads (plus de détails sur le blog de Teads).
Un monitoring critique
Orchestrant l'ensemble de la diffusion et des ventes publicitaires, la SSP de Teads représente évidemment l'une des pièces maîtresses du business model de la société. "D'où l'importance de la monitorer de très près, en particulier sur la partie stateful (ou avec état, ndlr) sur laquelle la durée de rétention des données de monitoring peut atteindre 15 mois", explique Damien Pacaud. Sur cette partie la plus critique de son infrastructure, comptant pas moins de 300 serveurs virtuels, Teads a recours à l'application de monitoring de Datadog pour suivre disponibilité et temps de latence.
Les métriques générées par Datadog sont exploitées pour traquer les éventuels incidents susceptibles de toucher la plateforme, identifier les partitions hors services, corréler différents événements pour diagnostiquer les pannes. "Les équipes de développement et de production partagent ces indicateurs via Slack en vue de solutionner les problèmes le plus vite possible. Ce processus est central pour optimiser nos opérations informatiques", complète Damien Pacaud.
Brique | Technologie |
---|---|
Hébergement | AWS |
Calcul | Amazon EC2 |
Stockage | Amazon S3 |
Base de données de production | Cassandra (base déployée sur 145 serveurs virtuels, encaissant des pics de trafic jusqu'à 1 million de requêtes par seconde) |
Streaming de données | Kafka |
Machine learning | Spark avec une librairie d'algorithmes faite maison (plus de détails sur le blog de Teads) |
Monitoring | Datadog |
Entrepôt de données (utilisé pour les analyses impliquant des sources tierces) | Google BigQuery, avec Google Dataflow pour y intégrer les données en provenance de Kafka et AWS (plus de détails sur le blog de Teads). |
Outils d'automatisation | - Création des images virtuelles : Packer, Chef et une distribution Linux maison (sous Debian). - Automatisation des opérations de cluster : C*, Terraform, Jenkins, Chef et Rundeck (plus de détails sur le blog de Teads), |