Concevoir une infrastructure de real-time bidding pour 100K QPS
Plateforme de Real-Time BiddingDéveloppement de DSPDéveloppement SSPAd ExchangePublicité programmatiqueInfrastructure d'enchèresTaux de clicsFaible latenceCentres de donnéesHaute performance
Les systèmes RTB doivent évaluer, scorer et traiter les bid requests en 10ms, à 100 000+ requêtes par seconde. Voici comment fonctionne l'infrastructure à cette échelle.
Une bid request arrive de l'ad exchange. L'infrastructure d'enchères dispose de 10ms pour évaluer l'impression, la scorer face aux campagnes actives, calculer un prix d'enchère et renvoyer une réponse.
Ratez l'échéance et l'impression est perdue. Il n'y a pas de seconde tentative. À 100 000+ QPS, même un taux de timeout de 1% représente 1000 opportunités perdues par seconde.
Colocaliser les bidders avec les exchanges pour récupérer du temps d'évaluation
La latence réseau entre le bidder et l'ad exchange réduit directement le temps disponible pour l'évaluation de l'enchère. Un bidder situé à 50ms de distance réseau de l'exchange a déjà perdu avant même que son code ne s'exécute.
Les équipes de développement DSP qui colocalisent leurs instances de bidder avec les principaux exchanges récupèrent des millisecondes critiques :
Un déploiement dans 6-8 data centers mondiaux récupère 5-15ms de temps d'évaluation par requête par rapport à un déploiement centralisé
Les groupes d'auto-scaling de chaque région suivent les profils de trafic - US East atteint son pic aux heures ouvrées pendant que l'APAC réduit la voilure
Les instances régionales de bidder conservent des copies locales des données de ciblage des campagnes, synchronisées toutes les 5-10 secondes depuis le référentiel central
Les câbles à fibre optique entre centres de données transportent le trafic de synchronisation, mais le chemin d'évaluation des enchères ne franchit jamais les frontières régionales
Le choix du data center est une décision d'ingénierie de premier ordre pour toute demand-side platform. Chaque milliseconde de distance réseau se traduit directement par un taux de victoire plus faible.
La colocation auprès des ad exchanges récupère 5-15ms de temps d'évaluation par bid request
Éliminer les allocations mémoire du chemin critique d'évaluation des enchères
À 100K QPS, les schémas d'allocation mémoire déterminent si le système tient son budget de latence. Les pauses de garbage collection, invisibles à 100 QPS, deviennent catastrophiques à grande échelle.
Le chemin d'évaluation des enchères repose sur des techniques précises :
Tables de correspondance pré-calculées pour les critères de ciblage des campagnes, les capping de fréquence et les contraintes budgétaires - mises à jour de façon asynchrone toutes les 5-10 secondes depuis le référentiel principal des campagnes
Pooling d'objets et allocation par arènes pour éliminer complètement les allocations tas par requête
Des structures de données sans verrou pour l'état partagé - filtres de Bloom pour le capping de fréquence, compteurs atomiques pour le pacing du budget
Des arbres de décision pré-construits pour l'évaluation du ciblage - construire l'arbre coûte des secondes, l'évaluer coûte des microsecondes
Zéro allocation sur le hot path n'est pas une optimisation. C'est une exigence à 100K QPS.
Exécuter l'inférence du modèle ML en moins de 3ms par enchère
Les modèles de prédiction du taux de clic et de probabilité de conversion doivent exécuter leur inférence en 2-3ms au sein du pipeline global d'évaluation des enchères. Chaque milliseconde consacrée à l'inférence n'est plus disponible pour le reste de la logique d'enchère.
ONNX Runtime avec des modèles quantifiés INT8 offre le meilleur compromis entre latence et précision :
Extraction des features de la bid request en moins de 0.5ms grâce à des feature stores pré-calculés avec les signaux utilisateur et contextuels
Inférence des modèles en 1-2ms via une évaluation ONNX par lots avec exécution épinglée aux threads - aucun changement de contexte pendant le scoring
Calibration du score et calcul du prix d'enchère en moins de 0.5ms grâce à des courbes de prix pré-calculées par palier de campagne
Mises à jour de modèle déployées en bascule blue-green — le nouveau modèle se charge en mode shadow, se valide face aux prédictions de production, puis bascule de façon atomique
L'inférence ML à 100K QPS exige un serving de modèles optimisé pour le matériel, sans surcoût d'allocation
Superviser à grande échelle sans alourdir le chemin d'enchère
La journalisation classique à 100K QPS génère plus de charge que la logique d'enchères elle-même. La stack de monitoring doit être aussi soucieuse de performance que l'application :
Collecte de métriques par échantillonnage - journalisez en détail 1 requête sur 1000 et agrégez le reste dans des compteurs et histogrammes mis à jour atomiquement
Suivi des percentiles en temps réel aux p50, p95 et p99, par région, par ad exchange et par palier de campagne
Des circuit breakers automatiques retirent une instance de bidder de la rotation lorsque ses temps de réponse p99 dépassent le timeout de l'exchange
Détection d'anomalies sur les baisses du taux d'enchère, les variations du win rate et les écarts de vitesse de dépense - repérer les modèles obsolètes et la dégradation réseau plus vite que la surveillance du taux d'erreur
Gérer le côté SSP de l'équation des enchères
Une supply-side platform fait face au problème miroir. Elle diffuse les bid requests à des dizaines de bidders, collecte les réponses, évalue les prix planchers, exécute l'enchère et renvoie un gagnant - le tout dans son propre timeout serré.
Les équipes de développement SSP font face à une complexité supplémentaire :
Le header bidding, c'est lancer plusieurs enchères en parallèle - le timeout de chaque bidder constitue le budget de latence du SSP
L'optimisation du prix plancher par modèles ML doit s'exécuter dans la même fenêtre d'enchère sans ajouter de latence
Une logique d'enchère haute performance évalue 20-50 réponses d'enchère par impression et sélectionne le gagnant en moins de 1ms
La publicité programmatique à grande échelle exige que les deux côtés de l'enchère optimisent sans relâche la faible latence.
Adapter l'infrastructure d'enchères aux applications mobiles et à l'inventaire in-app
Les bid requests in-app portent des signaux différents de ceux des requêtes web. Les identifiants au niveau de l'appareil (quand ils sont disponibles), le contexte applicatif et la visibilité remontée par le SDK remplacent les signaux issus des cookies.
Les modèles de taux de clic entraînés sur l'inventaire web doivent être réentraînés pour les contextes in-app, où les schémas d'interaction des utilisateurs diffèrent sensiblement.
La modélisation d'attribution sur mobile impose une intégration de postbacks server-to-server avec les MMP
La déduplication sur plusieurs fenêtres d'attribution évite de compter deux fois les conversions
Le rapprochement probabiliste et déterministe des correspondances s'exécute de façon asynchrone — les résultats alimentent le modèle d'enchères sous 24 heures
Une plateforme d'enchères en temps réel conçue uniquement pour l'inventaire web laisse de côté 40-60% des dépenses de publicité programmatique. Le mobile et l'in-app exigent un investissement d'infrastructure dédié.
Vous avez une architecture de ce type sur la table ?
Apportez votre architecture actuelle et le mode de défaillance qui vous inquiète : nous les passerons en revue ensemble en une demi-heure.