Große Filme, große Datenmengen: Netflix unterstützt NoSQL in der Cloud

Netflix ist mit 33 Millionen Abonnenten in mehr als 40 Ländern der große Kahuna eines Web-Media-Unternehmens. Da der Streaming-Service "Jetzt ansehen" von Netflix gewachsen ist, musste das Unternehmen seine Daten- und Speicherstrategien überdenken, um die in der Cloud verwalteten Workloads zu bewältigen. Heute ist die Migration des Unternehmens von Oracle zur NoSQL-Datenbank Cassandra nahezu abgeschlossen, wodurch die Verfügbarkeit verbessert und Ausfallzeiten durch Änderungen des Datenbankschemas im Wesentlichen vermieden werden.

Netflix startete seinen Streaming-Dienst 2007 mit der Oracle-Datenbank als Back-End. "Wir hatten ein einziges Rechenzentrum, was bedeutete, dass wir einen einzigen Fehlerpunkt hatten", erklärt Adrian Cockcroft, Cloud-Architekt bei Netflix. "Wir näherten uns den Grenzen von Verkehr und Kapazität. Jetzt, da die Leute Netflix-Streaming-Programme von ihren Handys, von Wii-Geräten, Roku-Boxen und vielen anderen aus sehen können, steigt die Nachfrage nach Verfügbarkeit ständig. Wir haben jedes Quartal mehr Kunden, mehr Kunden verwenden Streaming und sie verwenden Streaming mit einer höheren Rate. "

[Ebenfalls zu: Warum Netflix Python über Java nutzt | Welche verdammte Datenbank soll ich benutzen? | Laden Sie den Big Data Analytics Deep Dive herunter, um einen umfassenden und praktischen Überblick über dieses boomende Feld zu erhalten. ]]

Laut Cockcroft sind die Daten so schnell gewachsen wie der Kundenstamm: Die Anzahl der API-Anfragen im Januar 2011 war 37-mal höher als die Anfragen im Januar 2010. Das Unternehmen wusste, dass Ausfälle oder Streaming von schlechter Qualität Kunden vertreiben können. "Wir wussten, dass wir das Rechenzentrum verlassen mussten, damit wir weiterlaufen und weiter wachsen konnten", sagt Cockcroft.

Im Jahr 2010 begann Netflix, seine Daten auf Amazon Web Services zu verschieben. Der nächste Schritt bestand darin, die Oracle-Datenbank durch Apache Cassandra zu ersetzen, eine Open-Source-NoSQL-Datenbank, die für ihre Skalierbarkeit und Zuverlässigkeit auf Unternehmensebene bekannt ist. "Für uns bestand das Problem mit einer zentralen SQL-Datenbank darin, dass sich alles an einem Ort befand, was nur praktisch ist, bis es fehlschlägt", erklärt Cockcroft. "Und weil diese Datenbanken teuer sind, neigen Sie dazu, alles dort abzulegen. Dann schlägt alles auf einmal fehl."

Ein weiteres Problem bestand darin, dass Schemaänderungen Systemausfallzeiten erforderten. "Alle zwei Wochen hätten wir mindestens 10 Minuten Ausfallzeit, um das neue Schema einzufügen", erklärt er. "Die Einschränkungen einer SQL-Datenbank haben sich auf unsere Verfügbarkeit und Skalierbarkeit ausgewirkt."