Was Netflix montags macht…

mha.harlekin

Wir schreiben das Jahr 2018, das Internet existiert schon eine Weile und neue Schlagworte und Technologien dringen in immer mehr Bereiche des unternehmerischen und privaten Lebens vor. Wenn man wie ich zu den Millenials gehört, kennt man es größtenteils nicht mal anders, Papier fand ich in Form von Bäumen schon immer schöner und analoge Medien kenne ich größtenteils nur aus meiner Kindheit. Aber wie viele Menschen haben sich schon mal gefragt wie das eigentlich funktioniert? Wie ist es möglich, dass Freitag oder Samstag abends Abermillionen von Zuschauern Filme per Netflix oder anderer Plattformen streamen und damit unvorstellbar viel „IT“ benötigen, während Montagmittag nicht mal 10% Prozent der gleichen Menge „IT“ für den gleichen Anwendungsfall genutzt wird? Wie schafft bspw. Netflix es, innerhalb kürzester Zeit solche Mengen an Hardware bereitzustellen und die Software darauf effektiv und fehlerfrei zum Laufen bringen? Dieser Themenbereich ist sicherlich sehr vielschichtig und kann nicht pauschal beantwortet werden, aber ein Aspekt ist, dass ein geeignetes Konfigurationsmanagement vorhanden sein muss. Einen Server innerhalb von Stunden manuell bereitzustellen ist hier keine Option, stattdessen geht es um zehntausende Server. Da mich solche Themen und Zahlen sehr interessieren, habe ich mir das mal näher angeschaut und anhand von Beispielen und Prototypen nachgebaut (selbstredend in kleinerem Rahmen). Meine Erfahrungen auf dem Weg dorthin sind Inhalt dieser Blog-Serie und sollen in diesem und weiteren Artikeln näher erläutert werden.

Grundlagen

Als erstes sollten wir uns nochmal anschauen, was es mit den tausenden Servern auf sich hat: ich wähle hier als Schwerpunkt den reinen Software-Anteil, die Bereitstellung und der Zugriff auf die Hardware sind für diese Artikelserie nicht von Interesse (im Link oben ist ja mit der Case Study von Amazon Webservices schon ein Hinweis gegeben). Wenn man also tausende Server für den gleichen Zweck bereitstellen möchte, so geht das nur mit einem Ansatz höchstmöglicher Automatisierung. Der naive erste Versuch wäre, hier mit Shell-Skripten zu arbeiten. Dabei wird eine Reihe von Befehlen zur Installation von Server-Software hintereinander in Dateien geschrieben und dann ausgeführt. Der Nachteil dieses Vorgehens ist die Wartbarkeit solcher Skripte und die Abhängigkeiten, die sich daraus ergeben, außerdem laufen diese Skripte in der Regel nur in einer Umgebung (bspw. einem bestimmten Linux-Derivat). Ein besserer Ansatz besteht darin, einen deskriptiven Ansatz zu verfolgen, also zu sagen wie das Ergebnis aussehen soll. Skripte hingegen sagen, wie etwas gemacht werden soll. Und der wohl wichtigste Aspekt hier ist Wiederholbarkeit: das Skript wird immer wieder ausgeführt und lädt u. a. Software herunter, während der deskriptive Ansatz das Ergebnis prüft und nur bei Abweichungen tätig wird.

Configuration Management Auswahl

Lässt man den Skript-basierten Ansatz hinter sich und sucht nach entsprechenden Alternativen mit deskriptivem Ansatz, so stößt man relativ schnell auf vier prominente Vertreter für Configuration Management Software: Puppet, Chef, Saltstack und Ansible. Diese haben zum Teil ähnliche Ansätze, zum Teil unterscheiden sie sich aber auch deutlich. Im nächsten Teil der Serie werden wir uns diese vier Vertreter näher anschauen um dann eine Auswahl zu treffen (Part II) und darauf basierend einen Prototyp zu erstellen (Part III). Zu guter Letzt steht natürlich noch die Frage im Raum, was denn Netflix nun montags macht und warum diese Artikel-Serie in einem Blog wie Harlekin erscheint (Part IV).

Bildquellen

  • Starship Enterprise: stickpng.com

Ein Gedanke zu „Was Netflix montags macht…“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.