Phase 1: Rettung der Netflix-Protokolle

2015 hatte Netflix bereits 60 Millionen Abonnenten und expandierte aggressiv auf internationaler Ebene. Wir wussten alle, dass der Schlüssel zur Aufrechterhaltung des rasanten Abonnentenwachstums in der schnellen Skalierung der Plattformnutzung lag.

Randnotiz: Wer mit der Thematik nicht so vertraut ist, sollte wissen, dass das Plattformteam für die Nutzung die grundlegenden Infrastrukturkomponenten zentral verwaltet, damit sich das Produktteam auf die Geschäftslogik konzentrieren kann. Unser Team musste herausfinden, wie sich die Protokollierungsverfahren bei Netflix skalieren ließen. Zu dem Zeitpunkt gab es bei Netflix etwa 500 Mikroservices, die jeden Tag mehr als 10 Petabyte Daten in der Umgebung generierten.

Die Erfassung dieser Daten dient bei Netflix in erster Linie zwei Zwecken:

  • dem Erfassen geschäftlicher Analyseinformationen (beispielsweise Nutzerbindung, durchschnittliche Sitzungslänge, Trends).
  • de, Erfassen operativer Informationen (beispielsweise Messung von Streamingwiedergaben pro Sekunde, um den Zustand der Netflix-Systeme schnell und einfach zu überprüfen), damit Entwickler Alarm schlagen oder Probleme entschärfen können.

Nun kann man sich fragen, warum die Protokolle überhaupt vom Rand des Netzwerks in das Data Warehouse verschoben werden müssen. Aufgrund des enormen Umfangs war es nicht machbar, Analysen der Online-Transaktionsdatenbanken bei Bedarf im richtigen Maßstab umzusetzen.

Der Grund dafür ist, dass OLTP (Online Transactional Processing) und OLAP (Online Analytical Processing) auf verschiedenen Annahmen basieren. OLTP wurde für zeilenorientierte und OLAP für spaltenorientierte Zugriffsmuster entwickelt. Intern werden jeweils unterschiedliche Datenstrukturen für Optimierungen eingesetzt.

Angenommen, wir möchten wissen, wie die durchschnittliche Sitzungslänge bei Hunderten Millionen Netflix-Nutzern aussieht. Wenn wir diese analytische Abfrage in einem zeilenorientierten OLTP-System auf Abruf stellen, erhalten wir komplette Tabellenabfragen mit der Granularität auf Zeilenebene und sperren dadurch eventuell die Datenbank. So sind die Anwendungen nicht mehr erreichbar, was sich negativ auf die Benutzerzufriedenheit auswirkt.

Diese Art der Analyse oder Meldung der Auslastung funktioniert deutlich besser in einem OLAP-System. Deshalb müssen die Protokolle zuverlässig und mit niedriger Latenz verschoben werden.

  • Verschieben der Daten vom Rand zum Data Warehouse (Bild: Zhenzhong Xu)
  • Fehleranfällige Architektur mit Batch-Pipeline vor der Migration (Bild: Zhenzhong Xu)
  • Keystone-Streamingarchitektur nach der Migration (Bild: Zhenzhong Xu)
  • So unterstützt die Streamverarbeitung den Umgang mit operativen und analytischen Daten. (Bild: Zhenzhong Xu)
  • Trennung der Bedenken für unterschiedliche Szenarien bei der Streamverarbeitung (Bild: Zhenzhong Xu)
  • Diagramm zur sich entwickelnden Keystone-Architektur, circa 2016. Keystone enthält Kafka- und Flink-Engines als Kernkomponenten. Weitere Details zum technischen Design finden sich in Blogposts mit dem Schwerpunkt Kafka und Flink. (Bild: Zhenzhong Xu)
  • Keystone-UI zeigt eine Drag-and-Drop-Erfahrung im Self-Service, die von einer voll verwalteten Streamingarchitektur mit mehreren Mandanten gestützt wird. (Bild: Zhenzhong Xu)
  • A/B-Test zur Auswahl der besten künstlerischen Darstellung für die Personalisierung (Bild: Netflix)
  • Architektur mit Abtrennung der Flink-Plattform als separatem Produkteinstiegspunkt (Bild: Zhenzhong Xu)
  • Abstimmung der Streamverarbeitung in Netflix - 2021 (Bild: Zhenzhong Xu)
  • Optimalpunkt zwischen Einfachheit und Flexibilität (Bild: Zhenzhong Xu)
Verschieben der Daten vom Rand zum Data Warehouse (Bild: Zhenzhong Xu)

Bis 2015 hat sich der Umfang der Protokolldaten auf 500 Milliarden Ereignisse pro Tag (1 Petabyte Datenaufnahme) erhöht, während er 2011 noch bei 45 Millionen Ereignissen pro Tag lag. Die bestehende Infrastruktur für die Protokollierung (eine einfache Plattform für Batch-Pipelines, die auf Chukwa, Hadoop und Hive aufbaut) funktionierte bei den wöchentlich steigenden Abonnentenzahlen immer weniger.

Schätzungsweise hatten wir etwa sechs Monate Zeit, eine Lösung zu entwickeln, bei der das Streaming höchste Priorität hatte. Die nachstehenden Diagramme zeigen die Entwicklung von der fehleranfälligen Batch-Architektur hin zur neuen streamingbasierten Architektur.

  • Verschieben der Daten vom Rand zum Data Warehouse (Bild: Zhenzhong Xu)
  • Fehleranfällige Architektur mit Batch-Pipeline vor der Migration (Bild: Zhenzhong Xu)
  • Keystone-Streamingarchitektur nach der Migration (Bild: Zhenzhong Xu)
  • So unterstützt die Streamverarbeitung den Umgang mit operativen und analytischen Daten. (Bild: Zhenzhong Xu)
  • Trennung der Bedenken für unterschiedliche Szenarien bei der Streamverarbeitung (Bild: Zhenzhong Xu)
  • Diagramm zur sich entwickelnden Keystone-Architektur, circa 2016. Keystone enthält Kafka- und Flink-Engines als Kernkomponenten. Weitere Details zum technischen Design finden sich in Blogposts mit dem Schwerpunkt Kafka und Flink. (Bild: Zhenzhong Xu)
  • Keystone-UI zeigt eine Drag-and-Drop-Erfahrung im Self-Service, die von einer voll verwalteten Streamingarchitektur mit mehreren Mandanten gestützt wird. (Bild: Zhenzhong Xu)
  • A/B-Test zur Auswahl der besten künstlerischen Darstellung für die Personalisierung (Bild: Netflix)
  • Architektur mit Abtrennung der Flink-Plattform als separatem Produkteinstiegspunkt (Bild: Zhenzhong Xu)
  • Abstimmung der Streamverarbeitung in Netflix - 2021 (Bild: Zhenzhong Xu)
  • Optimalpunkt zwischen Einfachheit und Flexibilität (Bild: Zhenzhong Xu)
Fehleranfällige Architektur mit Batch-Pipeline vor der Migration (Bild: Zhenzhong Xu)

Wir beschlossen, diese fehleranfällige Infrastruktur durch Keystone zu ersetzen.

  • Verschieben der Daten vom Rand zum Data Warehouse (Bild: Zhenzhong Xu)
  • Fehleranfällige Architektur mit Batch-Pipeline vor der Migration (Bild: Zhenzhong Xu)
  • Keystone-Streamingarchitektur nach der Migration (Bild: Zhenzhong Xu)
  • So unterstützt die Streamverarbeitung den Umgang mit operativen und analytischen Daten. (Bild: Zhenzhong Xu)
  • Trennung der Bedenken für unterschiedliche Szenarien bei der Streamverarbeitung (Bild: Zhenzhong Xu)
  • Diagramm zur sich entwickelnden Keystone-Architektur, circa 2016. Keystone enthält Kafka- und Flink-Engines als Kernkomponenten. Weitere Details zum technischen Design finden sich in Blogposts mit dem Schwerpunkt Kafka und Flink. (Bild: Zhenzhong Xu)
  • Keystone-UI zeigt eine Drag-and-Drop-Erfahrung im Self-Service, die von einer voll verwalteten Streamingarchitektur mit mehreren Mandanten gestützt wird. (Bild: Zhenzhong Xu)
  • A/B-Test zur Auswahl der besten künstlerischen Darstellung für die Personalisierung (Bild: Netflix)
  • Architektur mit Abtrennung der Flink-Plattform als separatem Produkteinstiegspunkt (Bild: Zhenzhong Xu)
  • Abstimmung der Streamverarbeitung in Netflix - 2021 (Bild: Zhenzhong Xu)
  • Optimalpunkt zwischen Einfachheit und Flexibilität (Bild: Zhenzhong Xu)
Keystone-Streamingarchitektur nach der Migration (Bild: Zhenzhong Xu)

Außerdem lässt sich vermutlich die Frage stellen, warum überhaupt eine Architektur in Betracht kommt, bei der Streaming die höchste Priorität hat. Zu dem Zeitpunkt überwog der Mehrwert einer gut aufgestellten Streamingarchitektur die potenziellen Risiken. Netflix ist ein datengesteuertes Unternehmen. Somit zeigt sich die Bedeutung einer Streamingarchitektur sofort in folgenden Punkten:

  • Kürzere Feedback-Schleife zwischen Entwickler und Betrieb: Entwickler basieren operative Entscheidungen klar auf Protokollen. Der Zugriff auf neuere, bedarfsgenerierte Protokolle bietet Entwicklern die Möglichkeit, Probleme früher zu erkennen, und sorgt so für höhere Produktivität.
  • Bessere Produkterfahrungen: Viele Produktfunktionen, beispielsweise personalisierte Empfehlungen und die Suchfunktion, profitieren von neueren Daten und verbessern so die Benutzererfahrungen. Das führt zu einer höheren Kundenbindung und -treue.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Daten: Die vier Innovationsphasen von NetflixHerausforderungen in Phase 1 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13.  


Aktuell auf der Startseite von Golem.de
Whistleblower
Ehemaliger US-Konteradmiral äußert sich zu Außerirdischen

Wieder hat sich in den USA ein ehemals hochrangiger Militär und Beamter über Kontakte mit Aliens geäußert.

Whistleblower: Ehemaliger US-Konteradmiral äußert sich zu Außerirdischen
Artikel
  1. Schadstoffnorm 7: Neue Grenzwerte für Abrieb gelten auch für E-Autos
    Schadstoffnorm 7
    Neue Grenzwerte für Abrieb gelten auch für E-Autos

    Die neue Euronorm 7 legt nicht nur Grenzwerte für Bremsen- und Reifenabrieb fest, sondern auch Mindestanforderungen für Akkus.

  2. Ramjet: General Electric testet Hyperschalltriebwerk
    Ramjet
    General Electric testet Hyperschalltriebwerk

    Das Triebwerk soll Flüge mit Mach 5 ermöglichen.

  3. Elektroautos: Mercedes und Stellantis übernehmen komplette Umweltprämie
    Elektroautos
    Mercedes und Stellantis übernehmen komplette Umweltprämie

    Nach dem abrupten Aus der staatlichen Förderung springen erste Hersteller von Elektroautos ein.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • Last-Minute-Angebote bei Amazon • Avatar & The Crew Motorfest bis -50% • Xbox Series X 399€ • Cherry MX Board 3.0 S 49,95€ • Crucial MX500 2 TB 110,90€ • AVM FRITZ!Box 7590 AX + FRITZ!DECT 500 219€ [Werbung]
    •  /