In den wenigen Jahren seit seiner Einführung ist der Online-Video-Streaming-Dienst von Netflix auf über 50 Millionen Abonnenten in 40 Ländern angewachsen. In „Einführung von Microservices bei Netflix“ haben wir bereits einige der Best Practices vorgestellt, die die Softwareentwicklungsingenieure von Netflix beim Übergang von einem traditionellen monolithischen Entwicklungsprozess zu kontinuierlicher Bereitstellung und Microservices übernommen haben: Lehren für die Architekturgestaltung und die Einführung von Microservices bei Netflix: Lehren für Team- und Prozessdesign .
In diesem Beitrag besprechen wir einen weiteren Hauptfaktor für den Erfolg von Netflix: sein Content Delivery Network (CDN), Open Connect . Wir sind stolz darauf, dass NGINX auf jedem Open Connect-Delivery-Gerät läuft und eine Schlüsselrolle dabei spielt, dass Netflix mit dem explosiven Wachstum des Videodienstes Schritt halten kann. Gleb Smirnoff von NGINX arbeitet seit über zwei Jahren mit dem Open Connect-Team zusammen und erklärte im vergangenen Oktober auf unserer Benutzerkonferenz nginx.conf2014, warum Netflix sich für NGINX (zusammen mit FreeBSD) entschieden hat, um diesen entscheidenden Teil seines Geschäfts voranzutreiben.
Netflix hat die Bereitstellung von Streaming-Videos zunächst an drei große CDN-Anbieter (Akamai, Level3 und LimeLight) ausgelagert. Als der Dienst immer beliebter wurde, beschloss Netflix, dass der Aufbau und die Verwaltung eines eigenen CDN aus mehreren Gründen sinnvoll wäre:
Am wichtigsten ist jedoch, dass Netflix sein eigenes CDN erstellt hat, um eine bessere Kontrolle über die Anwendungsbereitstellung und das Benutzererlebnis zu haben. Um seinen Kunden optimale Streaming-Medien bereitzustellen, musste Netflix seine Kontrolle über die drei Grundkomponenten der Lieferkette maximieren:
Netflix konnte Open Connect für Video-Streaming auf eine Weise optimieren, die mit einem generischen CDN eines Anbieters nicht möglich ist. Open Connect ermöglicht es Netflix, ein besseres Benutzererlebnis zu geringeren Kosten und mit besserer Transparenz hinsichtlich der Leistung der Anwendung weltweit anzubieten.
Von Anfang an bestand das Ziel von Netflix darin, „immer mehr Gigabit pro Sekunde aus einer einzigen Box herauszuholen“, wie Gleb es ausdrückt. Insbesondere musste Netflix die Zahl der Abonnenten maximieren, die jedes Gerät gleichzeitig bedienen konnte. Die Ingenieure von Open Connect gingen davon aus, dass zur Erreichung dieses Ziels Feinabstimmungen an der Software erforderlich sein würden. Daher entschieden sie sich aufgrund der unbegrenzten Erweiterbarkeit für Open-Source-Software.
Wie bereits erwähnt, platziert Netflix seine Video-Streaming-Geräte nach Möglichkeit in den Rechenzentren der ISPs seiner Kunden. Da die auf den Geräten ausgeführte Software in den Händen Dritter liegen würde, entschied sich Netflix für Projekte, die eine Lizenz im BSD-Stil anstelle der GNU Public License (GPL) verwenden.
Die spezifischen Open-Source-Projekte, die Netflix ausgewählt hat, waren:
NGINX als Streaming-Media-Server. Die bewährte Geschwindigkeit und Stabilität waren wichtig, da Netflix Open Connect so schnell wie möglich einführen wollte, ohne dass vorab Anpassungen vorgenommen werden mussten. Nachdem das CDN einsatzbereit war, konnte Netflix Verkehrsmuster untersuchen und die NGINX-Einstellungen optimieren.
Ein weiterer Vorteil von NGINX besteht darin, dass die Open-Source-Software zwar unter einer BSD-ähnlichen Lizenz vertrieben wird, alle Kernentwickler jedoch Vollzeitmitarbeiter von NGINX, Inc. sind, das unternehmensweiten Support für das kommerzielle Produkt NGINX Plus bietet. In dieser Hinsicht kombiniert es die besten Funktionen von OSS und kommerzieller Software.
Auch das flexible Framework von NGINX zum Ausführen benutzerdefinierter Module gefiel Netflix und das Open Connect-Team hat Module entwickelt, die speziell auf die Video-Streaming-Anforderungen des Unternehmens zugeschnitten sind.
Die Kombination von FreeBSD und NGINX bietet weitere Vorteile:
kqueue
von FreeBSD ist eine der besten APIs für Multiplex-E/A.„sendfile“
zusammen mit dem Systemaufruf „aio_read“
verwenden. Zusammen verhindern die Aufrufe eine Blockierung der Festplatten-E/A und führen so zu einer hervorragenden Leistung.NGINX wurde von Anfang an so konzipiert, dass es anpassungsfähig ist und jeden Aspekt der Anwendungsbereitstellung unterstützt. Um unseren gewerblichen Kunden die Bereitstellung von Anwendungen wie Netflix zu erleichtern, kombiniert NGINX Plus Web-Serving, Lastausgleich, Inhalts-Caching und Medien-Streaming in einem benutzerfreundlichen Paket. Sehen Sie sich unsere Fallstudien an, um zu erfahren, wie andere führende Unternehmen NGINX Plus verwenden, um ihre Anwendungen leistungsstark, sicher und skalierbar bereitzustellen.
Wir arbeiten gerne eng mit unseren Kunden zusammen und beraten sie, wie sie in ihren spezifischen Anwendungsbereitstellungsarchitekturen das Beste aus NGINX Plus herausholen können. Unsere Support- und Professional-Services -Teams können Ihnen mit Architekturberatung, Installation, Konfiguration, Updates und mehr helfen. Kontaktieren Sie uns, um mehr zu erfahren.
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."