Conférence QCon San Francisco : Surabhi Diwan en action

Conférence QCon San Francisco : Surabhi Diwan en action

Netflix a présenté lors de la première journée de QCon San Francisco 2023, un exposé sur la gestion de ses 238 millions d’abonnements. Dans cet exposé, il a été question de l’architecture et de l’ingénierie des adhésions chez Netflix.

Ingénierie des adhésions chez Netflix

L’équipe d’ingénierie des adhésions chez Netflix est responsable de la tarification des abonnements, de la gestion de cycle de vie des adhésions et de la source de vérité de toutes les adhésions. Elle joue un rôle crucial dans le processus d’inscription et de streaming sur la plateforme.

Dans son exposé, l’ingénieur senior Surabhi Diwan a expliqué les choix techniques effectués pour l’architecture des adhésions et comment ils ont réussi à les mettre en œuvre. Elle a notamment présenté le parcours d’inscription d’un nouvel abonné et a détaillé les éléments clés de cette architecture :

  • Une architecture de système distribué optimisée pour une lecture performante, avec plus de 12 microservices utilisant gPRC (appels de procédure à distance) au niveau HTTP.
  • L’utilisation de Java et Kotlin dans le code source, ainsi que Netflix Spring Boot pour rassembler l’ensemble.
  • L’utilisation de Kafka pour tous les échanges de messages.
  • L’utilisation de Spark et Flink pour effectuer une réconciliation hors ligne sur de gros volumes de données.

Dans le cadre des opérations, l’équipe met en place des transactions légères et des tentatives répétées pour éviter les lacunes dans les systèmes en ligne. Elle effectue également régulièrement des travaux de réconciliation sur l’ensemble de la base de membres pour détecter les anomalies et effectuer des réparations automatiques. Elle utilise plus de 100 alertes de données pour détecter les incohérences et les statuts invalides. Enfin, chaque enregistrement est vérifié par un personnel qualifié pour s’assurer de sa validité.

En termes de suivi, l’équipe utilise un vaste système de journalisation des erreurs et des requêtes/réponses dans les chemins d’écriture, en utilisant des outils comme Kibana et Elasticsearch. Elle se sert également d’un système de traçage distribué pour accélérer l’identification des problèmes de manière plus précise. Enfin, des alertes de production basées sur des métriques d’observabilité sont mises en place pour surveiller les différentes applications, services et points finaux.

Les cas d’utilisation passés

Ensuite, Diwan a présenté trois cas d’utilisation passés qui ont contribué à façonner l’architecture des adhésions chez Netflix.

Le premier cas d’utilisation portait sur l’évolution de la tarification chez Netflix. Au départ, Netflix proposait un plan limité dans quelques régions géographiques, avec une bibliothèque compacte facile à télécharger et à modifier rapidement. Cependant, avec l’expansion mondiale de Netflix, cette bibliothèque s’est élargie pour inclure des aspects tels que la qualité de service, les appareils pris en charge, l’accès aux téléchargements, etc. De ce fait, un nombre croissant d’applications a dû intégrer cette bibliothèque en constante évolution, conduisant ainsi à la création d’une nouvelle architecture de tarification qui est devenue la source de vérité pour tous les membres de Netflix.

Le deuxième cas d’utilisation concernait la gestion de l’historique des membres. Netflix faisait face à des défis liés à la complexité de la gestion des événements d’application qui ne correspondaient pas aux enregistrements de données opérationnelles, manquaient de persistance et n’étaient pas facilement conciliables entre les systèmes. L’équipe d’ingénierie des adhésions a proposé une solution en capturant les changements directs des sources de données opérationnelles, ce qui a facilité le suivi de l’historique de l’état des adhésions. Cette solution a été mise en œuvre grâce à un modèle de capture de données (Change Data Capture) qui a permis de créer un journal d’ajouts uniquement pour tous les changements d’abonnement, offrant ainsi une meilleure visibilité et traçabilité.

Le dernier cas d’utilisation évoqué par Diwan concernait l’évolution de l’écosystème des abonnements des membres. L’architecture initiale reposait sur gRPC au niveau de l’application, utilisait Cassandra comme base de données pour une lecture performante, et adoptait une architecture de microservices évolutive, performante et distribuée. Cependant, cette architecture ne permettait pas une réconciliation rapide de l’état, un accès rapide aux jeux de données pour de nouveaux cas d’utilisation potentiels, ni une suppression efficace des données.

C’est pourquoi l’architecture des adhésions a été mise à jour pour prendre en charge les capacités de traitement des données volumineuses, en utilisant Spark pour effectuer une réconciliation entre les données hors ligne et les adhésions, ainsi qu’en mettant en place des alertes avancées pour détecter les anomalies et les erreurs d’écriture dans le système distribué. Un pipeline de suppression dédié a également été créé pour maintenir la taille des données sous contrôle.

Conclusion

En conclusion, Diwan a résumé les leçons tirées des cas d’utilisation :

  • Rester attentif aux choix technologiques pour garantir la pérennité.
  • Avoir le courage d’investir dans des paris technologiques qui peuvent rapporter gros au fur et à mesure.
  • La gestion des adhésions et des abonnements est un processus continu et en constante évolution.

Pour illustrer ces propos, Diwan a conclu son exposé par une citation inspirante.

Source : www.infoq.com

Avatar photo

Mikael Buxton

Mikaël Buxton est fan de séries télé depuis l’enfance. Il a lancé Series-80.net en 2003 pour partager sa passion des séries cultes des années 70, 80, 90 et début 2000. Aujourd’hui, il continue de faire vivre ces souvenirs en écrivant sur leurs retours, reboots, et secrets de tournage.