Hochverfügbarkeit bei Media Services und Video on Demand (VoD)

Media Services-Logo v3


Warnung

Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im Leitfaden zur Einstellung von AMS.

Hochverfügbarkeit bei VoD

In der Dokumentation zur Azure-Architektur gibt es das Entwurfsmuster für Hochverfügbarkeit, Geodes. Es wird beschrieben, wie doppelte Ressourcen in verschiedenen geografischen Regionen bereitgestellt werden, um Skalierbarkeit und Resilienz zu bieten. Sie können mithilfe von Azure-Diensten eine solche Architektur erstellen, um viele Überlegungen zum Entwurf von Hochverfügbarkeit wie Redundanz, Integritätsüberwachung, Lastenausgleich sowie Datensicherung und -wiederherstellung abzudecken. Eine solche Architektur wird nachstehend mit Details zu den einzelnen Diensten beschrieben, die in der Lösung verwendet werden. Außerdem erfahren Sie, wie die einzelnen Dienste genutzt werden können, um eine Hochverfügbarkeitsarchitektur für Ihre VoD-Anwendung zu erstellen.

Beispiel

Es gibt ein Beispiel, das Sie verwenden können, um sich mit der Hochverfügbarkeit bei Media Services und Video on Demand (VoD) vertraut zu machen. Darin wird auch ausführlicher erläutert, wie die Dienste für ein VoD-Szenario genutzt werden. In seiner aktuellen Form ist das Beispiel nicht zum Einsatz in einer Produktionsumgebung vorgesehen. Überprüfen Sie sorgfältig den Beispielcode, und lesen Sie die Infodatei, insbesondere den Abschnitt zu Fehlermodi, bevor Sie den Code in eine Produktionsanwendung integrieren. Bei einer Produktionsimplementierung von Hochverfügbarkeit für Video on Demand (VoD) sollte auch Ihre CDN-Strategie (Content Delivery Network) gründlich überprüft werden. Sehen Sie sich den Code auf GitHub an.

Übersicht über Dienste

Die in dieser Beispielarchitektur verwendeten Dienste umfassen Folgendes:

Symbol Name Beschreibung
Dies ist das Symbol für das Media Services-Konto. Media Services-Konto Beschreibung:
Ein Media Services-Konto ist der Ausgangspunkt für Verwaltung, Verschlüsselung, Codierung, Analyse und Streaming von Medieninhalten in Azure. Es ist einer Azure Storage-Kontoressource zugeordnet. Das Konto und der gesamte zugeordnete Speicher müssen sich in demselben Azure-Abonnement befinden.

VoD-Nutzung:
Dies sind die Dienste, die Sie zum Codieren und Bereitstellen Ihrer Video- und Audiomedienobjekte verwenden. Für Hochverfügbarkeit sollten Sie mindestens zwei Media Services-Konten einrichten, die sich jeweils in einer anderen Region befinden. Informieren Sie sich ausführlicher über Azure Media Services.
Dies ist das Symbol für das Speicherkonto. Speicherkonto Beschreibung:
Ein Azure-Speicherkonto enthält Ihre gesamten Azure Storage-Datenobjekte: Blobs, Dateien, Warteschlangen, Tabellen und Datenträger. Der Zugriff auf die Daten ist von überall auf der Welt über HTTP oder HTTPS möglich.

Zu jedem Media Services-Konto in jeder Region sollte es ein Speicherkonto in derselben Region geben.

VoD-Nutzung:
Sie können Ein- und Ausgabedaten für VoD-Verarbeitung und -Streaming speichern. Informieren Sie sich ausführlicher über Azure Storage.
Dies ist das Symbol für die Azure Storage-Warteschlange. Azure Storage-Warteschlange Beschreibung:
Die Warteschlangenspeicherung in Azure ist ein Dienst zur Speicherung großer Anzahlen von Nachrichten, auf die von überall auf der Welt mit authentifizierten Anrufen über HTTP oder HTTPS zugegriffen werden kann.

VoD-Nutzung:
Warteschlangen können zum Senden und Empfangen von Nachrichten verwendet werden, um Aktivitäten zwischen verschiedenen Modulen zu koordinieren. Im Beispiel wird eine Azure Storage-Warteschlange verwendet, aber Azure bietet andere Arten von Warteschlangen, z. B. zuverlässige Service Bus- und Service Fabric-Warteschlangen, die Ihren Anforderungen möglicherweise besser entsprechen. Informieren Sie sich ausführlicher über die Azure-Warteschlange.
Dies ist das Symbol für Azure Cosmos DB. Azure Cosmos DB Beschreibung:
Azure Cosmos DB ist der global verteilte Datenbankdienst mit mehreren Modellen von Microsoft, der Durchsatz und Speicher unabhängig voneinander über eine beliebige Anzahl von Azure-Regionen weltweit skaliert.

VoD-Nutzung:
Tabellen können verwendet werden, um Statusdatensätze zur Auftragsausgabe zu speichern und den Integritätsstatus der einzelnen Media Services-Instanzen nachzuverfolgen. Sie können auch den Status jedes Aufrufs der Media Services-API nachverfolgen/aufzeichnen. Informieren Sie sich ausführlicher über Azure Cosmos DB.
Dies ist das Symbol für „Verwaltete Identität“. Verwaltete Identität Beschreibung:
„Verwaltete Identität“ ist ein Feature von Azure AD, das eine automatisch verwaltete Identität in Azure AD bereitstellt. Es kann für die Authentifizierung bei jedem Dienst, der die Azure AD-Authentifizierung unterstützt, einschließlich Key Vault, verwendet werden, ohne dass Anmeldeinformationen im Code gespeichert werden.

VoD-Nutzung:
Azure Functions kann sich mithilfe von „Verwaltete Identität“ bei Media Services-Instanzen authentifizieren, um eine Verbindung mit Key Vault herzustellen. Informieren Sie sich ausführlicher über „Verwaltete Identität“.
Dies ist das Symbol für Key Vault. Key Vault Beschreibung:
Azure Key Vault ermöglicht die sichere Speicherung und präzise Steuerung des Zugriffs auf Token, Kennwörter, Zertifikate, API-Schlüssel und andere Geheimnisse. Es kann auch als Schlüsselverwaltungslösung verwendet werden. Azure Key Vault vereinfacht das Erstellen und Verwalten der zur Verschlüsselung Ihrer Daten verwendeten Verschlüsselungsschlüssel. Es kann öffentliche und private TLS-/SSL-Zertifikate (Transport Layer Security/Secure Sockets Layer) für die Verwendung vei Azure und internen verbundenen Ressourcen mühelos bereitstellen und verwalten. Geheimnisse und Schlüssel können entweder per Software oder mit HSMs mit FIPS 140-2 Level 2-Validierung geschützt werden.

VoD-Nutzung:
Key Vault kann zum Einrichten von Zugriffsrichtlinien für den Dienstprinzipal für Ihre Anwendung verwendet werden. Außerdem kann damit die Verbindungszeichenfolge in Speicherkonten gespeichert werden. Wir verwenden Key Vault zum Speichern von Verbindungszeichenfolgen in Speicherkonten und Cosmos DB. Sie können Key Vault auch zum Speichern der gesamten Clusterkonfiguration verwenden. Bei jeder Media Service-Instanz können Sie die Abonnement-ID, den Ressourcengruppennamen und den Kontonamen speichern. Weitere Informationen finden Sie unter „Verwendung im Beispiel“. Informieren Sie sich ausführlicher über Key Vault.
Dies ist das Symbol für Azure Functions. Azure-Funktionen Beschreibung:
Führen Sie mit Azure Functions kleine Codeelemente (sogenannte „Funktionen“) aus, ohne sich Gedanken über die Anwendungsinfrastruktur machen zu müssen. Informieren Sie sich ausführlicher über Azure Functions.

VoD-Nutzung:
Azure Functions kann zum Speichern und Hosten der Module ihrer VoD-Anwendung verwendet werden. Module für eine VoD-Anwendung könnten Folgendes umfassen:

Auftragsplanungsmodul
Die Aufgabe des Auftragsplanungsmoduls wäre die Übermittlung neuer Aufträge an einen Media Services-Cluster (zwei oder mehr Instanzen in verschiedenen Regionen). Es würde den Integritätsstatus der einzelnen Media Services-Instanzen nachverfolgen und einen neuen Auftrag an die nächste fehlerfreie Instanz übermitteln.

Auftragsstatusmodul
Das Auftragsstatusmodul würde auf Statusereignisse der Auftragsausgabe lauschen, die aus dem Azure Event Grid-Dienst stammen. Es würde Ereignisse im Ereignisspeicher speichern, um die Anzahl von Aufrufen der Media Services-APIs durch die restlichen Module zu minimieren.

Instanzintegritätsmodul
Dieses Modul würde übermittelte Aufträge nachverfolgen und den Integritätsstatus für die einzelnen Media Services-Instanzen ermitteln. Es würde abgeschlossene Aufträge, fehlgeschlagene Aufträge und Aufträge nachverfolgen, die nie abgeschlossen wurden.

Bereitstellungsmodul
Dieses Modul würde verarbeitete Medienobjekte bereitstellen. Es würde Medienobjektdaten in alle Media Services-Instanzen kopieren und den Azure Front Door-Dienst einrichten, um sicherzustellen, dass Medienobjekte sogar dann gestreamt werden könnten, wenn einige Media Services-Instanzen nicht verfügbar wären. Außerdem würde es Streaminglocators einrichten.

Auftragsüberprüfungsmodul
Dieses Modul würde jeden übermittelten Auftrag nachverfolgen, fehlgeschlagene Aufträge erneut übermitteln und Auftragsdaten bereinigen, sobald ein Auftrag erfolgreich abgeschlossen wurde.
Dies ist das Symbol für App Service. App Service (und Plan) Beschreibung:
Azure App Service ist ein HTTP-basierter Dienst zum Hosten von Webanwendungen, REST-APIs und mobilen Back-Ends. Er unterstützt .NET, .NET Core, Java, Node.js, PHP oder Python. Anwendungen können in Windows- und Linux-basierten Umgebungen ausgeführt und skaliert werden.

VoD-Nutzung:
Jedes Modul würde von einem App Service gehostet. Informieren Sie sich ausführlicher über App Service.
Dies ist das Symbol für Azure Front Door. Azure Front Door Beschreibung:
Mithilfe von Azure Front Door kann das globale Routing für den Webdatenverkehr definiert, verwaltet und überwacht werden. Dazu wird eine Optimierung auf die bestmögliche Leistung und ein schnelles globales Failover durchgeführt, um Hochverfügbarkeit sicherzustellen.

VoD-Nutzung:
Azure-Front-Door könnte zum Weiterleiten von Datenverkehr an Streamingendpunkte verwendet werden. Informieren Sie sich ausführlicher über Azure Front Door.
Dies ist das Symbol für Azure Event Grid. Azure Event Grid Beschreibung:
Event Grid wurde für ereignisbasierte Architekturen erstellt und bietet integrierte Unterstützung für Ereignisse, die aus Azure-Diensten stammen, z. B. Speicherblobs und Ressourcengruppen. Außerdem werden benutzerdefinierte Themenereignisse unterstützt. Filter können verwendet werden zur Weiterleitung bestimmter Ereignisse an verschiedene Endpunkte, zur Ausführung von Multicasts an mehrere Endpunkte und zur Sicherstellung, dass Ereignisse zuverlässig übermittelt werden. Event Grid maximiert die Verfügbarkeit durch native Verteilung auf mehrere Fehlerdomänen in jeder Region und über Verfügbarkeitszonen hinweg.

VoD-Nutzung:
Mithilfe von Event Grid können alle Anwendungsereignisse nachverfolgt und gespeichert werden, um den Auftragsstatus beizubehalten. Informieren Sie sich ausführlicher über Azure Event Grid.
Dies ist das Symbol für Application Insights. Application Insights Beschreibung:
Application Insights, ein Feature von Azure Monitor, ist ein erweiterbarer Dienst zur Verwaltung der Anwendungsleistung (Application Performance Management, APM) für Entwickler und DevOps-Profis. Er wird zum Überwachen von aktiven Anwendungen genutzt. Er erkennt Leistungsanomalien und enthält Analysetools, mit denen Kunden Probleme diagnostizieren und nachvollziehen können, wie eine App von den Benutzern verwendet wird. Der Dienst unterstützt Sie bei der kontinuierlichen Verbesserung der Leistung und Benutzerfreundlichkeit Ihrer App.

VoD-Nutzung:
Alle Protokolle können an Application Insights gesendet werden. Dann könnten Sie sehen, welche Instanz die einzelnen Aufträge verarbeitet hat, indem Sie nach erfolgreich erstellten Auftragsnachrichten suchen. Application Insights könnte alle übermittelten Auftragsmetadaten enthalten, einschließlich des eindeutigen Bezeichners und der Informationen zum Instanznamen. Erfahren Sie mehr über Application Insights.

Aufbau

Dieses allgemeine Diagramm zeigt die Architektur des Beispiels, das für Ihren Einstieg in Hochverfügbarkeit und Media Services bereitgestellt wird.

Allgemeines Diagramm der Architektur für Video on Demand (VoD)

Bewährte Methoden

Regions

  • Erstellen Sie zwei (oder mehr) Azure Media Services-Konten. Die beiden Konten müssen sich in verschiedenen Regionen befinden. Weitere Informationen finden Sie unter Regionen, in denen der Azure Media Services-Dienst bereitgestellt wird.
  • Laden Sie Ihre Medien in dieselbe Region hoch, von der aus Sie den Auftrag übermitteln möchten.
  • Wenn Sie dann den Auftrag erneut in eine andere Region übermitteln müssen, können Sie die Daten mithilfe von JobInputHttp oder Copy-Blob aus dem Quellcontainer für Medienobjekte in einen Medienobjektcontainer in der alternativen Region kopieren.

Überwachung

  • Abonnieren Sie JobStateChange-Nachrichten in den einzelnen Konten über Azure Event Grid.

    • Verwenden Sie das Microsoft.Azure.EventGrid-SDK (das Media Services-Ereignisse nativ unterstützt).
    • Sie können Event Grid-Ereignisse auch über Azure Functions nutzen.

    Weitere Informationen finden Sie unter:

    • Sehen Sie sich das Beispiel zur Audioanalyse an. Es zeigt, wie ein Auftrag mit Azure Event Grid überwacht werden kann, einschließlich des Hinzufügens eines Fallbacks für den Fall, dass die Azure Event Grid-Nachrichten aus irgendeinem Grund verzögert werden.
  • Wenn Sie einen Auftrag erstellen:

    • Wählen Sie ein zufälliges Konto aus der Liste der zurzeit verwendeten Konten aus (diese Liste enthält normalerweise beide Konten; wenn aber Probleme festgestellt werden, enthält sie vielleicht nur ein Konto). Wenn die Liste leer ist, geben Sie eine Warnung aus, damit ein Operator dies untersuchen kann.
    • Erstellen Sie einen Datensatz, um die einzelnen Inflight-Aufträge und die verwendete Region/das verwendete Konto nachzuverfolgen.
  • Wenn Ihr JobStateChange-Handler eine Benachrichtigung erhält, dass ein Auftrag den geplanten Zustand erreicht hat, notieren Sie sich die Uhrzeit, zu der er in den geplanten Zustand wechselt, sowie die verwendete Region bzw. das verwendete Konto.

  • Wenn Ihr JobStateChange-Handler eine Benachrichtigung erhält, dass ein Auftrag den Verarbeitungsstatus erreicht hat, markieren Sie den Datensatz für den Auftrag als „Verarbeitung“, und notieren Sie sich die Uhrzeit, zu der er in den Verarbeitungsstatus wechselt.

  • Wenn Ihr JobStateChange-Handler eine Benachrichtigung erhält, dass ein Auftrag einen Endzustand erreicht hat („Abgeschlossen“/„Fehler“/„Abgebrochen“), markieren Sie den Datensatz für den Auftrag entsprechend.

  • Führen Sie einen separaten Prozess durch, der regelmäßig Ihre Datensätze zu den Aufträgen prüft.

    • Wenn Sie über Aufträge im Zustand „Geplant“ verfügen, die nicht innerhalb einer angemessenen Zeitspanne für eine bestimmte Region in den Verarbeitungszustand übergegangen sind, entfernen Sie diese Region aus Ihrer Liste der derzeit verwendeten Konten. Je nach Ihren geschäftlichen Anforderungen könnten Sie beschließen, diese Aufträge sofort abzubrechen und sie erneut an die andere Region zu übermitteln. Oder Sie könnten ihnen etwas mehr Zeit geben, um in den nächsten Zustand zu wechseln.
    • Wenn eine Region von der Kontoliste entfernt wurde, überwachen Sie sie auf die Wiederherstellung, bevor Sie sie wieder in die Liste aufnehmen. Die regionale Integrität kann über die bestehenden Aufträge in der Region überwacht werden (falls diese nicht abgebrochen und erneut übermittelt wurden), indem das Konto nach einer gewissen Zeit wieder in die Liste aufgenommen wird und indem die Operatoren die Azure-Kommunikation hinsichtlich Ausfällen überwachen, die Azure Media Services beeinträchtigen könnten.

Anfordern von Hilfe und Support

Sie können Media Services mit Fragen kontaktieren oder unsere Updates mit einer der folgenden Methoden verfolgen: