Warum Netflix auf Cloud-basierende Microservices gesetzt - und gewonnen hat

Cloud-basierende Dienste werden alles verändern, was Sie über Anwendungen und Sicherheit zu wissen glauben. Überzeugen Sie sich selbst und fragen Sie Adrian Cockcroft, VP für Cloud Architecture Strategy bei AWS und vorher Cloud Architect bei Netflix.

Nicht jeder bei Netflix war davon überzeugt, dass es klug war, auf Microservices zu setzen. „Die Hälfte des Unternehmens hielt das für dumm“, erinnert sich Adrian Cockcroft, früher Cloud Architect bei Netflix.

In einem weitreichenden Gespräch mit Frank Chen und Martin Casado, beide bei Andreessen Horowitz, erörtert Cockcroft, wie Netflix auf eine Microservices-Architektur setzte — und welche unglaublichen Innovationen daraus entstanden.

Das vollständige Gespräch können Sie im a16z Podcast nachhören. Hier sind die sechs wichtigsten Erkenntnisse.

1. Es hilft, wenn man sich schnell bewegt und einen dicken Prügel dabei hat

Als sich Netflix von einem Dienstleister, der DVDs per Schneckenpost verschickte, in einen Streaming-Media-Konzern verwandelte, war dem Unternehmen klar, dass es grundlegender Veränderungen bedurfte. Zum einen musste Netflix aus seinem eigenen Rechenzentrum aus- und in die Cloud umziehen. Außerdem stellte es von einer monolithischen Oracle-Datenbank auf eine Microservices-Architektur um. Dazu mussten die Anwendungen in kleine modulare Prozesse aufgesplittet werden, die sich unabhängig voneinander implementieren lassen. Dabei durchlief Netflix einen kulturellen Wandel, bei dem die Entwickler in kleineren Teams neu organisiert wurden, die sich auf einzelne Produkte fokussieren.

Interessanterweise machten es diese umwälzenden Veränderungen gleichzeitig einfacher, die Akzeptanz im Unternehmen zu steigern, verrät Cockcroft.

„Schrittweiser Wandel ist gut in der Theorie. In der Praxis brauchen Sie einen dicken Prügel, mit dem Sie alle auf einen Schlag erwischen, sodass sich auch alle gleichzeitig bewegen“, erklärt er. „Der dicke Prügel war, dass wir nicht genügend Kapazität im Rechenzentrum hatten, um Streaming zu unterstützen.“

2. Bereiten Sie sich darauf vor, dass Sie tief verwurzelten kulturellen Widerstand überwinden müssen

Dennoch war nicht jeder bei Netflix davon überzeugt, dass der Umstieg auf Microservices wirklich klug war. Cockcroft musste einiges an Überzeugungsarbeit leisten.

„Die Hälfte des Unternehmens hielt das für dumm, einige von uns dachten, wir könnten es schaffen, andere waren risikofreudiger“, erzählt er. Er stellte einen Trupp von Pionieren zusammen, die dachten, dass es funktionieren könnte. Er steckte sie zusammen in einen Raum und begann, Dinge in der Cloud zu bauen, um herauszufinden, was die wirklichen Herausforderungen waren.

„Der Trick dabei ist, ein kleines Team zu nehmen, sehr tief zu gehen und eine ganze Reihe kleiner Projekte durchzuführen, um so viel wie möglich mit dem geringstmöglichen Input zu lernen.“

3. Die Microservices-Architektur erhöht die Applikationssicherheit

Die herkömmliche Weise, eine riesige Datenbank in einem Rechenzentrum zu schützen, besteht darin, genügend Sicherheits-Appliances vorne dran zu setzen, um die bösen Jungs draußen zu halten. Dieser Ansatz hat jedoch gravierende Nachteile. „Wenn auch nur ein wenig PCI (Payment Card Industry, also Kreditkartentransaktionen) irgendwo in diesem Monolith erforderlich ist, unterliegt das Ganze der PCI- und SOX-Compliance und weiteren Regelungen“, sagt Cockcroft. Und sobald ein Einbruch in diese monolithische Datenbank gelungen ist, haben die bösen Jungs Zugriff auf alles in der Datenbank.

Wenn man die Datenbank in eine Reihe von Services in der Cloud aufteilt, dann erhöht das zwar die Komplexität in Bezug auf Sicherheit und Compliance, räumt Cockcroft ein. Durch die Aufteilung in viele Services kann man aber auch die Teile, die wirklich geschützt werden müssen, komplett abriegeln, und bei Services mit geringerem Risiko weniger strikt und flexibler sein. „Wenn man das Ganze in Teile aufsplittet, kann der Großteil der Anwendung extrem agil und innovativ sein, und die Teile, die sicher sein müssen, können extrem sicher gemacht werden.“

4. Die Microservices-Architektur zwingt die Entwickler, zuverlässigeren Code zu schreiben

In einer hochflexiblen und agilen Umgebung, in der Anwendungen mehrmals am Tag aktualisiert werden, ist schlichtweg keine Zeit, jede Änderung komplett zu überprüfen und absegnen zu lassen. Der Einzige, der den genauen Status jedes Service kennt, ist der Entwickler, der den Service zuletzt angefasst hat, sagt Cockcroft.

„Das klingt erst einmal beängstigend - bis man begreift, dass jeder von ihnen nur einen sehr kleinen Teil des Systems kontrolliert und das gesamte Verhalten des Systems sich als wirklich robust und zuverlässig erweist“, erklärt er.

Indem man die Entwickler für die Performance ihres Codes verantwortlich macht, zwingt man sie, sich bessere Praktiken anzueignen. Schließlich will niemand seine Wochenenden damit verbringen, etwas zu flicken, was er beschädigt hat.

„Wenn ein Entwickler Bereitschaftsdienst hat, schreibt er wirklich zuverlässigen Code und veröffentlicht ihn nicht am Freitagnachmittag“, sagt er. „Entwickler lernen eine ganze Menge darüber, wie es ist, Bereitschaft zu haben, und wie sie nichts kaputt machen.“

5. Die Microservices-Architektur führt zu höherer Anwendungs-Performance

Wenn man auf Microservices setzt, verteilt man die Arbeitslast auf Gruppen, die für einen Container zuständig sind und die Aufgabe haben, diesen zu erstellen und zu perfektionieren. Ihr ganzer Fokus liegt darin, den Container so einfach und gleichzeitig so leistungsfähig wie nur möglich zu machen. Das führt nicht nur zu sichereren Containern, sondern auch zu einem unmittelbaren Performance-Schub für die Anwendung, da alle Container kontinuierlich optimiert werden.

6. Dank Microservices-Architektur können große Unternehmen wie Start-ups agieren

Ein Unternehmen, das Services über die Cloud realisiert, kann sich mit der Geschwindigkeit seiner Branche bewegen - und den Betrieb vom Kostenfaktor in ein Produkt zu verwandeln.

Branche für Branche wachen nun große Unternehmen auf und erkennen, dass die Cloud und die Microservices-Architektur ihnen nicht nur Wettbewerbsvorteile verschafft - es geht um das Überleben.

„Es besteht eine existenzielle Bedrohung“, sagt Cockcroft. „Wenn Sie Neuerungen quartalsweise herausbringen, Ihre Konkurrenz das aber täglich tut und kontinuierlich liefert, fallen Sie in der Kundenwahrnehmung so weit zurück, dass Sie das bald zu spüren bekommen. Unternehmen, denen es gelingt, die Cloud, DevOps und Mikroarchitekturen zu integrieren, starten durch und lassen die anderen hinter sich zurück.“

Netflix erkannte die Notwendigkeit einer technologiegetriebenen Unternehmenstransformation. Die Entscheidung, sich von einem DVD-Versandhandel zu einem Streaming-Media-Konzern zu entwickeln, erforderte einen grundlegenden Wandel weg vom monolitischen Rechenzentrumsmodell hin zu einer Microservices-Architektur, in deren Zentrum Anwendungen liegen. Die digitale Transformation ist eine Reise, kein Ziel. Jedes Unternehmen hat seinen eigenen Weg und befindet sich an einem anderen Punkt auf dieser Reise. Der Schlüssel ist, diesen ersten Schritt zu tun.