Video-Streaming-Plattform mit geringer Latenz in Oracle Cloud bereitstellen

Die Nachfrage nach Live-Streaming-Uhrenparteien hat in den letzten Jahren zu einem wachsenden Markt für Streaming-Plattformen wie Red5 Pro geführt.

Trotz intensiver Konkurrenz unter den Streaming-Anbietern sind nicht alle Plattformen gleich. Tatsächlich haben viele Streaming-Services eine Latenz von 30-120s oder mehr. Eine solche Verzögerung kann eine Uhrparty ruinieren, da einige Mitglieder die Aufregung eines Heimlaufs, slam dunk oder Knockout erleben, wie es passiert, während andere durch den Jubel ihrer Mitbeobachter Sekunden leiden, bevor sie die Aktion selbst sehen. Aber Red5 Pro hat ein Media-Server-System basierend auf Web Real-Time Communication (WebRTC) entwickelt, das Live-Stream-Video mit einer Latenz von weniger als 500 ms oder etwa .5 Sekunden bereitstellt, sodass jeder in der Watch-Partei die Aktion gleichzeitig sehen kann.

Red5 Pro führt seine Plattform auf Oracle Cloud Infrastructure (OCI) aus und unterstützt Watchpartys auf KeepBoxingFree.com. Jedes Red5 Pro-Deployment unterstützt 50.000 Benutzer, 6.250 Uhrparteien und acht Benutzer pro Watchparty. Red5 Pro kann in kleinen Schritten skaliert werden: Ein einzelner Knoten (der kleinste Knoten, den Sie skalieren können) fügt eine Kapazität von 300-1000 Benutzern hinzu. Durch die Skalierung in kleinen Schritten kann Red5 Pro nach Bedarf ohne inaktive Instanzen skaliert werden. Je nachdem, wie viele Menschen beobachten und wie lange sie beobachten, wird geschätzt, dass der Egress-Traffic generiert wird:

  • Bitrate von 4,5 Mbps für bis zu 50.000 Benutzer
  • Latenz von weniger als 500 ms, selbst bei Spitzenkapazität

Red5 Pro hat sich für die Ausführung seiner Plattform auf Oracle Cloud Infrastructure entschieden, um Folgendes zu nutzen:

  • Flexibilität bei Bursts mit der Flex-Compute-Ausprägung mit AMD E4
  • Geringere Kosten für Datenübertragungen

    Für eingehende Datenübertragungen fallen keine Gebühren an. Bei ausgehenden Datenübertragungen sind die ersten 10 TB pro Monat kostenlos.

  • Konsistente Zeiten beim Starten von Red5 Pro-Knoten (Instanzen)

    Bei anderen Hyperskalatoren dauerten die Startzeiten zuvor acht bis zehn Stunden. Mit OCI werden die Startzeiten auf zwei Stunden reduziert. Dadurch kann Red5 Pro die Kapazität skalieren, wenn schnell Hunderte von Knoten/Instanzen benötigt werden.

Architektur

Auf eine Red5 Pro-Watch-Party kann die Öffentlichkeit, Prominente und die Broadcaster, die für die Bereitstellung des Live-Video-Feeds für eine Veranstaltung verantwortlich sind, zugreifen.

Die Architektur besteht aus Clustern von Red5 Pro-Servern in verschiedenen Regionen von Oracle Cloud Infrastructure (OCI), die von Streammanagern verwaltet werden. Diese Stream Manager sind die wichtigsten Einstiegspunkte im Red5 Pro-Ökosystem und sind für die Zuweisung einer geeigneten Serverinstanz zum Veröffentlichen oder Abonnieren eines Streams verantwortlich. Stream Manager sind auch Load Balancing und für die Überwachung und Verwaltung von Knotenlebenszyklen verantwortlich.

Benutzer registrieren sich für einen Account, indem sie auf den Webserver der Watchparty zugreifen. Informationen zu Benutzeraccounts und Ereignisdetails werden in einem vollständig verwalteten Oracle MySQL Database Service-Cluster gespeichert, das eine Konferenzdatenbank hostet. Kontoinhaber können sich dann für eine Veranstaltung registrieren und ihre Freunde einladen, sich bei einer Uhrparty anzuschließen. Nach der Authentifizierung durchläuft der Benutzertraffic eine Gruppe von Load Balancern und überwacht dann die Webserver von Parteien, die mit OCI Autoscaling skaliert werden, um Änderungen im Benutzertraffic zu verarbeiten.

Alle virtuellen Instanzen in der Architektur werden auf virtuellen AMD E4 Flex-Maschinen (VMs) ausgeführt. Am Tag eines Ereignisses senden Sender ihren Event-Feed an einen Transcoder, der den Feed in verschiedene Varianten (Adaptive Bit Rate Streams verschiedener Auflösungen) oder direkt an die Ursprungsserver transformiert, wenn keine Transcodierung erforderlich ist. Red5 Pro unterstützt zwei Arten von Streams: einen Live-Stream, der von einem Sender generiert wird, und einen Web-Stream, der von Watch-Party-Abonnenten generiert wird, die über ihre Webkameras am Video-Chat beteiligt sind.

Stream Manager leiten den Broadcaster-Traffic an Ursprungsserver und Abonnentendatenverkehr an Edge-Server weiter. Stream Manager fungieren auch als Signalisierungsserver, um Web-Sockets zwischen Peers in einer WebRTC-Verbindung als Proxy zu senden. Streaminginformationen werden vom Stream Manager verwaltet und dann im Oracle MySQL Database Service-Cluster gespeichert, das die Konferenzdatenbank darstellt. Um eine geringe Latenz zu gewährleisten, verfügt Red5 Pro über keine Load Balancer für den Ursprungs- und Edge-Server, wodurch die Hops zwischen Herausgebern und Abonnenten minimiert werden. Netzwerksicherheitsgruppen (NSGs) kontrollieren den Netzwerkverkehr zwischen Ressourcen.

Das folgende Diagramm veranschaulicht den Prozess für Webparteien und Broadcast-Verbindungen.



red5-oci-data-flow-oracle.zip

High Availability der Webbenutzeroberfläche wird von Load Balancing-Servern in einer Availability-Domain über drei Faultdomains hinweg verwaltet. Beide Oracle MySQL Database Service-Datenbanken befinden sich in einem hochverfügbaren Cluster. Daten, die in eine primäre Datenbank geschrieben werden, werden auch in die Standby-Datenbank repliziert. Die Stream Manager skalieren Ursprungsserver und Edge-Server automatisch, um die Änderungen beim Laden zu unterstützen. Stream-Manager verwenden Terraformcode, um Knoten für die automatische Skalierung dynamisch bereitzustellen und die Bereitstellung zu entziehen. Die Skalierung wird über Red5 Pro-Policys konfiguriert und ausgelöst, die auf der Anzahl der Verbindungen zu den Ursprungs- und Edge-Knoten basieren. Beispiel: Für jede Komponente wird standardmäßig ein Alarm von 60% ausgelöst. Wenn eine Richtlinie mit 400 Verbindungen für einen Edge-Server festgelegt ist, wird bei 241 Verbindungen ein neuer Edge-Server bereitgestellt, um zusätzliche Benutzer aufzunehmen. Policys können so eingestellt werden, dass ein Server im Voraus bereitgestellt wird, anstatt nach Bedarf skaliert zu werden. Oracle Cloud Infrastructure Domain Name Service wird zur Verwaltung von DNS-Zonen für das unterstützende Ereignis verwendet. OCI Email Delivery-Services werden verwendet, um E-Mails aus dem Red5 Pro-System an registrierte Benutzer zu senden.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.



red5-oci-architecture-oracle.zip

Red5 Die Vision von Pro für eine zukünftige Statusarchitektur umfasst:

  • Bereitstellung der Red5 Pro-Plattform in mehreren OCI-Regionen auf der ganzen Welt
  • Mehrmandantenarchitektur zur Unterstützung vieler Broadcast-Kanäle pro Server erstellen
  • Integration von Sprach- und Sprachservices in die künstliche Intelligenz von Oracle für die Transkription von Sprache zu Text sowie Sprachübersetzungen, die mehrsprachige Optionen für Broadcaster und Benutzer ermöglichen

Die Architektur umfasst die folgenden Komponenten:

  • Mandant

    Ein Mandant ist eine sichere und isolierte Partition, die Oracle bei der Registrierung für Oracle Cloud Infrastructure in Oracle Cloud einrichtet. Sie können Ihre Ressourcen in Oracle Cloud in Ihrem Mandanten erstellen, organisieren und verwalten. Ein Mandant ist synonym zu einem Unternehmen oder einer Organisation. In der Regel verfügt ein Unternehmen über einen einzelnen Mandanten und spiegelt dessen Organisationsstruktur in diesem Mandanten wider. Ein einzelner Mandant ist in der Regel mit einem einzelnen Abonnement verknüpft, und ein einzelnes Abonnement hat in der Regel nur einen Mandanten.

  • Region

    Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält, das als Availability-Domains bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie voneinander trennen (innerhalb von Ländern oder sogar Kontinenten).

  • Compartment

    Compartments sind regionsübergreifende logische Partitionen in einem Oracle Cloud Infrastructure-Mandanten. In Compartments können Sie Ihre Ressourcen in Oracle Cloud organisieren, den Zugriff auf die Ressourcen kontrollieren und Nutzungs-Quotas festlegen. Um den Zugriff auf die Ressourcen in einem bestimmten Compartment zu kontrollieren, definieren Sie Policys, mit denen angegeben wird, wer auf die Ressourcen zugreifen kann und welche Aktionen sie ausführen können.

  • Availability-Domain

    Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was Fehlertoleranz bietet. Availability-Domains teilen keine Infrastruktur wie Stromversorgung oder Kühlung und nicht das interne Availability-Domainnetzwerk. Aus diesem Grund ist es wahrscheinlich, dass ein Fehler in einer Availability-Domain sich auf die anderen Availability-Domains in der Region auswirkt.

  • Bastion-Service

    Oracle Cloud Infrastructure Bastion bietet eingeschränkten und zeitlich begrenzten sicheren Zugriff auf Ressourcen, die keine öffentlichen Endpunkte haben und strenge Ressourcenzugriffskontrollen erfordern, wie Bare Metal und virtuelle Maschinen, Oracle MySQL Database Service, Autonomous Transaction Processing (ATP), Oracle Container Engine for Kubernetes (OKE) und alle anderen Ressourcen, die Secure Shell Protocol-(SSH-)Zugriff ermöglichen. Mit dem Oracle Cloud Infrastructure-Bastion-Service können Sie den Zugriff auf private Hosts aktivieren, ohne einen Sprunghost bereitzustellen und zu verwalten. Darüber hinaus erhalten Sie eine verbesserte Sicherheitslage mit identitätsbasierten Berechtigungen und einer zentralisierten, auditierten und zeitgebundenen SSH-Session. Mit Oracle Cloud Infrastructure Bastion ist keine öffentliche IP für den Bastionzugriff erforderlich. Dadurch entfallen der Aufwand und die potenzielle Angriffsfläche beim Remotezugriff.

  • DNS

    Der Oracle Cloud Infrastructure Domain Name System-(DNS-)Service ist ein hoch skalierbares, globales Anycast-Domain-Namen-System-(DNS-)Netzwerk, das verbesserte DNS-Performance, -Resilienz und -Skalierbarkeit bietet, sodass Endbenutzer so schnell wie möglich von überall aus eine Verbindung zur Kundenanwendung herstellen können.

  • Policy

    Eine Oracle Cloud Infrastructure Identity and Access Management-Policy gibt an, wer auf welche Ressourcen und wie zugreifen kann. Der Zugriff wird auf Gruppen- und Compartment-Ebene erteilt, d.h. Sie können eine Policy schreiben, mit der eine Gruppe einen bestimmten Zugriffstyp innerhalb eines bestimmten Compartments oder auf den Mandanten erhält.

  • E-Mail-Versand

    Oracle Cloud Infrastructure Email Delivery ist ein hoch skalierbarer, kosteneffektiver und zuverlässiger E-Mail-Zustellungsservice für das Senden von anwendungsgenerierten E-Mails mit hohem Volumen für erfolgsrelevantes Marketing, Benachrichtigungen und Transaktionskommunikationen, wie Empfangsbestätigungen, Betrugserkennungs-Alerts, Multifaktor-Identitätsverifizierung und Kennwortzurücksetzungen.

  • Terraform

    Mit Oracle Cloud Infrastructure Resource Manager können Sie das Provisioning von Terraform-Ressourcen automatisieren. Es unterstützt Sie bei der Installation, Konfiguration und Verwaltung von Ressourcen mit dem Infrastructure-as-Code-Modell.

  • Virtual Cloud Network (VCN) und Subnetze

    Ein VCN ist ein anpassbares, Software-definiertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten können. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain beschränken. Jedes Subnetz besteht aus einem fortlaufenden Adressbereich, der sich nicht mit den anderen Subnetzen im VCN überschneidet. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz ist öffentlich oder privat.

  • Sicherheitsliste

    Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Typ des Traffics angeben, der in das und aus dem Subnetz zugelassen werden muss.

  • Routentabelle

    Virtuelle Routentabellen enthalten Regeln, mit denen Traffic von Subnetzen zu Zielen außerhalb eines VCN, normalerweise über Gateways, weitergeleitet wird.

  • Internetgateway

    Das Internetgateway lässt Traffic zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet zu.

  • Servicegateway

    Das Servicegateway ermöglicht den Zugriff von einem VCN auf andere Services wie Oracle Cloud Infrastructure Object Storage. Der Datenverkehr vom VCN zum Oracle-Service durchläuft die Oracle-Netzwerkfabric und nie das Internet.

  • Netzwerksicherheitsgruppe (NSG)

    Netzwerksicherheitsgruppe (NSG) fungiert als virtuelle Firewall für Ihre Cloud-Ressourcen. Mit dem Zero-Trust-Sicherheitsmodell von Oracle Cloud Infrastructure wird jeder Traffic abgelehnt, und Sie können den Netzverkehr innerhalb eines VCN kontrollieren. Eine NSG besteht aus einer Gruppe von Ingress- und Egress-Sicherheitsregeln, die nur für eine bestimmte Gruppe von VNICs in einem einzelnen VCN gelten.

  • Load Balancer

    Der Oracle Cloud Infrastructure Load Balancing-Service ermöglicht automatisierte Trafficverteilung von einem einzelnen Einstiegspunkt auf mehrere Server im Backend.

  • Compute

    Mit dem Oracle Cloud Infrastructure Compute-Service können Sie Compute-Hosts in der Cloud bereitstellen und verwalten. Sie können Compute-Instanzen mit Ausprägungen starten, die Ihren Ressourcenanforderungen für CPU, Arbeitsspeicher, Netzwerkbandbreite und Speicher entsprechen. Nach dem Erstellen einer Compute-Instanz können Sie sicher auf die Compute-Instanz zugreifen, sie neu starten, Datenträger anhängen und trennen und sie beenden, wenn Sie sie nicht mehr benötigen.

  • Oracle MySQL Database Service

    Oracle MySQL Database Service ist ein vollständig verwalteter Oracle Cloud Infrastructure-(OCI-)Datenbankservice, mit dem Entwickler sichere, cloud-native Anwendungen schnell entwickeln und bereitstellen können. Oracle MySQL Database Service ist für OCI optimiert und exklusiv verfügbar und wird zu 100% von den OCI- und MySQL-Entwicklungsteams erstellt, verwaltet und unterstützt.

    Oracle MySQL Database Service verfügt über eine integrierte leistungsstarke Analyse-Engine (HeatWave), um hochentwickelte Echtzeitanalysen direkt für eine betriebsbereite MySQL-Datenbank auszuführen.

Integrierte und bereitgestellte Features bereitstellen

Möchten Sie zeigen, was Sie auf Oracle Cloud Infrastructure erstellt haben? Möchten Sie Ihre Erkenntnisse, Best Practices und Referenzarchitekturen mit unserer globalen Community aus Cloud-Architekten teilen? Wir helfen Ihnen bei den ersten Schritten.

  1. Laden Sie die Vorlage (PPTX) herunter

    Erstellen Sie eine eigene Referenzarchitektur, indem Sie die Symbole in den Beispiel-Drahtrahmen ziehen und ablegen.

  2. Architektur-Tutorial ansehen

    Schritt-für-Schritt-Anweisungen zum Erstellen einer Referenzarchitektur.

  3. Diagramm einreichen

    Senden Sie uns eine E-Mail mit Ihrem Diagramm. Unsere Cloud-Architekten überprüfen Ihr Diagramm und kontaktieren Sie, um Ihre Architektur zu besprechen.

Bestätigungen

  • Autoren: Robert Huie, Sasha Banks-Louie
  • Mitwirkender: Praveen Coca, Bill Wimsatt, Robert Lies