Netflix personnalise les propositions de contenu en fonction des données de visionnage enregistrées et analysées dans Cassandra.
Le challenge
En 2007, Netflix a révolutionné l’offre de streaming en lançant son service “Watch Now” (“Regardez maintenant”). Dès l’instant où un client devient adhérent, Netflix collecte et stocke tous les détails sur l’abonné, y compris les titres qu’il regarde, quels titres il a visionné avant et après, pourquoi il abandonne au bout de 5 minutes de visionnage, ou à quel endroit du film il met en pause. Netflix collecte toutes ces données élémentaires pour personnaliser l’expérience globale utilisateur en fonction du profil du client.
En 2010, Netflix déplaça ses données chez Amazon Web Services (AWS) pour permettre aux abonnés d’accéder depuis des équipements variés avec plus de flexibilité. A l’époque, Netflix utilisait Oracle comme base de données et était en limite de trafic et de capacité avec les charges d’exécution exponentielles gérées sur le Cloud. La société savait qu’une seule base de données signifiait un point unique de défaillance, et que les coupures ou une diffusion de mauvaise qualité pouvaient faire partir les clients.
“Le problème d’une base de données SQL c’est que tout se trouve au même endroit, c’est très pratique, jusqu’à ce qu’elle tombe en panne,” explique Adrian Cockcroft, architecte Cloud chez Netflix. “Or, comme ces bases de données sont chères, on a tendance à tout y mettre. Du coup quand ça tombe en panne on perd tout.”
De plus, les modifications de schéma nécessitaient l’arrêt du système. “Toutes les deux semaines, il nous fallait arrêter les serveurs pendant 10 minutes pour mettre en place le nouveau schéma,” explique Adrian Cockcroft. Les limitations de la base de données SQL impactaient la disponibilité et la scalabilité du système, et Netflix avait besoin d’une solution fiable et flexible pour pouvoir créer et gérer des clusters de données rapidement pour accompagner le développement international de la société.
La solution
Netflix s’est rendu compte que les technologies traditionnelles des bases de données relationnelles n’étaient pas faites pour gérer des volumes importants de données, ni d’un point de vue des coûts, ni pour garantir une architecture continuellement disponible et flexible. Netflix effectua une évaluation approfondie des différentes bases de données disponibles et Apache Cassandra™ s’imposa comme le meilleur choix. En plus de fournir une scalabilité à un prix abordable, l’architecture sans maître et sans schéma de Cassandra garantit l’absence de point unique de défaillance et supprime les temps d’arrêt nécessaires pour mettre en place de nouveaux schémas.
Au final, Netflix a pris la décision de migrer de Cassandra vers DataStax Enterprise pour l’environnement de production et la sécurité d’Entreprise. Deux ingénieurs ont suffi pour assurer la migration complète de plus de 80 clusters et 2500 noeuds.
« Ca nous coûterait environ 2 millions de dollars de plus pour faire sans Cassandra ce que nous devons faire aujourd’hui ; de plus, ce serait beaucoup plus difficile à gérer opérationnellement »
– Adrian Cockcroft, architecte Cloud Netflix
Les résultats
DataStax Enterprise est aujourd’hui la base de données de référence de Netflix. Environ 95% des données (hors programmes) de Netflix sont stockées dans DataStax Enterprise ; ceci comprend les données clients, les évaluations des films, les favoris, les logs et le service d’historique des consultations. Grâce à DataStax Enterprise, Netflix est capable de stocker et de traiter de vastes quantités de données sur les visionnages des abonnés et les logs d’activité ; ceci permet d’améliorer l’expérience utilisateur pour la recherche et la diffusion. DataStax Enterprise permet un débit jusqu’à 10 millions de transactions par seconde. Netflix traite plus de 2,1 milliards d’opérations de lecture et 4,3 milliards d’opérations d’écriture par jour.
Grâce à la fonctionnalité de réplication multi-data center de Cassandra, Netflix dispose de plus de flexibilité qu’auparavant pour créer et gérer des clusters de données. “Je peux créer un cluster Cassandra dans n’importe quelle région du monde en 10 minutes,” confirme Adrian Cockcroft. “Quand le département marketing décide de se développer dans une nouvelle région du monde, nous sommes prêts.”
Le moteur de base de données de Netflix peut effectuer des recherches sur plus de 76 000 genres de films différents, comme « films d’aliens des années 70”, et en retour alimente le moteur Netflix de programmation avec les données des habitudes de consommation des abonnés. Quand la société décide d’investir 100 millions de dollars dans House of Cards sans avoir visionné le moindre prototype, ce n’est pas un pari à l’aveugle : les données clients stockées dans Cassandra avaient prédit à Netflix que ce serait un succès.
En 2007, Netflix a révolutionné l’offre de streaming en lançant son service “Watch Now” (“Regardez maintenant”). Dès l’instant où un client devient adhérent, Netflix collecte et stocke tous les détails sur l’abonné, y compris les titres qu’il regarde, quels titres il a visionné avant et après, pourquoi il abandonne au bout de 5 minutes de visionnage, ou à quel endroit du film il met en pause. Netflix collecte toutes ces données élémentaires pour personnaliser l’expérience globale utilisateur en fonction du profil du client.
En 2010, Netflix déplaça ses données chez Amazon Web Services (AWS) pour permettre aux abonnés d’accéder depuis des équipements variés avec plus de flexibilité. A l’époque, Netflix utilisait Oracle comme base de données et était en limite de trafic et de capacité avec les charges d’exécution exponentielles gérées sur le Cloud. La société savait qu’une seule base de données signifiait un point unique de défaillance, et que les coupures ou une diffusion de mauvaise qualité pouvaient faire partir les clients.
“Le problème d’une base de données SQL c’est que tout se trouve au même endroit, c’est très pratique, jusqu’à ce qu’elle tombe en panne,” explique Adrian Cockcroft, architecte Cloud chez Netflix. “Or, comme ces bases de données sont chères, on a tendance à tout y mettre. Du coup quand ça tombe en panne on perd tout.”
De plus, les modifications de schéma nécessitaient l’arrêt du système. “Toutes les deux semaines, il nous fallait arrêter les serveurs pendant 10 minutes pour mettre en place le nouveau schéma,” explique Adrian Cockcroft. Les limitations de la base de données SQL impactaient la disponibilité et la scalabilité du système, et Netflix avait besoin d’une solution fiable et flexible pour pouvoir créer et gérer des clusters de données rapidement pour accompagner le développement international de la société.
La solution
Netflix s’est rendu compte que les technologies traditionnelles des bases de données relationnelles n’étaient pas faites pour gérer des volumes importants de données, ni d’un point de vue des coûts, ni pour garantir une architecture continuellement disponible et flexible. Netflix effectua une évaluation approfondie des différentes bases de données disponibles et Apache Cassandra™ s’imposa comme le meilleur choix. En plus de fournir une scalabilité à un prix abordable, l’architecture sans maître et sans schéma de Cassandra garantit l’absence de point unique de défaillance et supprime les temps d’arrêt nécessaires pour mettre en place de nouveaux schémas.
Au final, Netflix a pris la décision de migrer de Cassandra vers DataStax Enterprise pour l’environnement de production et la sécurité d’Entreprise. Deux ingénieurs ont suffi pour assurer la migration complète de plus de 80 clusters et 2500 noeuds.
« Ca nous coûterait environ 2 millions de dollars de plus pour faire sans Cassandra ce que nous devons faire aujourd’hui ; de plus, ce serait beaucoup plus difficile à gérer opérationnellement »
– Adrian Cockcroft, architecte Cloud Netflix
Les résultats
DataStax Enterprise est aujourd’hui la base de données de référence de Netflix. Environ 95% des données (hors programmes) de Netflix sont stockées dans DataStax Enterprise ; ceci comprend les données clients, les évaluations des films, les favoris, les logs et le service d’historique des consultations. Grâce à DataStax Enterprise, Netflix est capable de stocker et de traiter de vastes quantités de données sur les visionnages des abonnés et les logs d’activité ; ceci permet d’améliorer l’expérience utilisateur pour la recherche et la diffusion. DataStax Enterprise permet un débit jusqu’à 10 millions de transactions par seconde. Netflix traite plus de 2,1 milliards d’opérations de lecture et 4,3 milliards d’opérations d’écriture par jour.
Grâce à la fonctionnalité de réplication multi-data center de Cassandra, Netflix dispose de plus de flexibilité qu’auparavant pour créer et gérer des clusters de données. “Je peux créer un cluster Cassandra dans n’importe quelle région du monde en 10 minutes,” confirme Adrian Cockcroft. “Quand le département marketing décide de se développer dans une nouvelle région du monde, nous sommes prêts.”
Le moteur de base de données de Netflix peut effectuer des recherches sur plus de 76 000 genres de films différents, comme « films d’aliens des années 70”, et en retour alimente le moteur Netflix de programmation avec les données des habitudes de consommation des abonnés. Quand la société décide d’investir 100 millions de dollars dans House of Cards sans avoir visionné le moindre prototype, ce n’est pas un pari à l’aveugle : les données clients stockées dans Cassandra avaient prédit à Netflix que ce serait un succès.