Der Streaming-Anbieter Netflix speichert seine Videos zur optimalen Auslieferung bei verschiedenen Internetgeschwindigkeiten und Wiedergabegeräten in unterschiedlichen Auflösungen, Qualitätsstufen und Formaten. Entwickelt wurde Kodierungsplattform „Reloaded“ für rund sieben Jahren. Inzwischen ist die Last bei Netflix dank einer Expansion in weitere Märkte und deutlich mehr Inhalten jedoch um das Zehnfache gewachsen. Laut des Netflix Engineering-Blogs hat dies Probleme verursacht. Die verantwortlichen Entwickler haben deshalb eine neue Kodierungsplattform mit den Namen „Cosmos“ erstellt.
Wie Frank San Miguel im Namen des Cosmos Teams erklärt, war die alte Architektur von Reloaded ausschließlich dafür konzipiert Audio- und Videoinhalte möglichst gut zu skalieren. Die monolithische Architektur hat die Einführung neuer Funktionen jedoch deutlich erschwert. Außerdem ist das für die Kodierung zuständige Team in den letzten Jahren stark gewachsen, was dazu führte, dass besonders neue Mitglieder praktisch keinen Überblick über die veraltete Reloaded-Architektur mehr hatten. Verantwortlich dafür war vor allen die der Anwendungslogik mit dem Infrastruktur-Code.
Microservices-Architekturen als Vorbild
Aufgrund der großen Probleme hat sich das Team für eine vollständige Neuentwicklung statt einer Überarbeitung der vorhandenen Architektur entschieden. Als Vorbild wurde dabei die moderne Microservices-Architektur gewählt. Dies ermöglicht neben den eigentlichen Encoding-Aufgaben das modulare Hinzufügen weiterer Dienste, darunter ein Tool zum Monitoring und Werkzeuge für die Continuous-Delivery-Pipeline. Diese soll ermöglichen, dass unmittelbar in der Produktionsumgebung neue Code-Beiträge ohne zusätzliche Eingriffe eingespielt werden können.
Trotz der Ähnlichkeiten handelt es sich bei den Cosmos-Diensten aber um keine Microservices. Anwendungsdaten und ihre Abhängigkeiten sind auch beim Netflix Kodierungswerkzeug, wie bei Microservices, von anderen Systemen getrennt, die Dienste nutzen zum Datenaustausch aber klar definierte APIs.
Die neben dem Encoding anfallenden, sehr rechenintensiven Arbeiten laden ihre Abhängigkeiten als Docker-Container. Je nach Größe der Aufgabe sind dies bei Netflix mehrere Tausend verschiedene Container, die in einer Cloud Computing Umgebung arbeiten. Ein Durchlauf dauert bei besonders großen Dateien laut den Entwickler oft mehrere Tage.
Begonnen wurde die Entwicklung von Cosmos bereits im Jahr 2018. Erste Tests in der Produktumgebung starteten 2019. Der eigentliche Rollout des Systems, dass dann die Kodierungsplattform Reloaded vollständig ersetzten wird, erfolgt im laufenden Jahr 2021.