Freigeben über


Hohe Verfügbarkeit mit Mediendiensten und Video on Demand (VOD)

Media Services-Logo v3


Warnung

Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im AMS Retirement Guide.

Hohe Verfügbarkeit für VOD

Es gibt ein Entwurfsmuster mit hoher Verfügbarkeit Geodes- in der Azure-Architekturdokumentation. Es beschreibt, wie doppelte Ressourcen in verschiedenen geografischen Regionen bereitgestellt werden, um Skalierbarkeit und Resilienz zu bieten. Sie können Azure-Dienste verwenden, um eine solche Architektur zu erstellen, um viele Entwurfsaspekte für hohe Verfügbarkeit wie Redundanz, Integritätsüberwachung, Lastenausgleich und Datensicherung und Wiederherstellung abzudecken. Eine solche Architektur wird unten mit Details zu jedem dienst beschrieben, der in der Lösung verwendet wird und wie die einzelnen Dienste verwendet werden können, um eine Hochverfügbarkeitsarchitektur für Ihre VOD-Anwendung zu erstellen.

Probe

Es gibt ein Beispiel, mit dem Sie sich mit der hohen Verfügbarkeit von Media Services und Video on Demand (VOD) vertraut machen können. Darüber hinaus wird genauer erläutert, wie die Dienste für ein VOD-Szenario verwendet werden. Die Probe soll nicht in der Produktion in ihrer aktuellen Form verwendet werden. Eine Produktionsimplementierung der hohen Verfügbarkeit von Video on Demand (VOD) sollte auch sorgfältig ihre Strategie für das Content Delivery Network (CDN) überprüfen.

Übersicht über Dienstleistungen

Zu den in dieser Beispielarchitektur verwendeten Diensten gehören:

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

VOD-Verwendung:
Dies sind die Dienste, die Sie zum Codieren und Bereitstellen Ihrer Video- und Audioressourcen verwenden. Für hohe Verfügbarkeit würden Sie mindestens zwei Media Services-Konten einrichten, die jeweils in einer anderen Region vorhanden sind. Erfahren Sie mehr über azure Media Services.
Dies ist das Speicherkontosymbol. Speicherkonto Beschreibung:
Ein Azure-Speicherkonto enthält alle Ihre Azure Storage-Datenobjekte: Blobs, Dateien, Warteschlangen, Tabellen und Datenträger. Auf Daten kann von überall aus über HTTP oder HTTPS zugegriffen werden.

Jedes Media Services-Konto in jeder Region hätte ein Speicherkonto in derselben Region.

VOD-Verwendung:
Sie können Eingabe- und Ausgabedaten für voD-Verarbeitung und Streaming speichern. Erfahren Sie mehr über Azure Storage.
Dies ist das Azure Storage Queue-Symbol. Azure Storage Queue Beschreibung:
Azure Queue Storage ist ein Dienst zum Speichern großer Anzahl von Nachrichten, auf die von überall auf der Welt über authentifizierte Anrufe mit HTTP oder HTTPS zugegriffen werden kann.

VOD-Verwendung:
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 stellt andere Arten von Warteschlangen bereit, z. B. Service Bus- und Service Fabric-Zuverlässige Warteschlangen, die Ihren Anforderungen besser entsprechen. Weitere Informationen zu Azure Queue.
Dies ist das Azure Cosmos DB-Symbol. Azure Cosmos DB Beschreibung:
Azure Cosmos DB ist der global verteilte, multimodellbasierte Datenbankdienst von Microsoft, der den Durchsatz und speicherunabhängig über eine beliebige Anzahl von Azure-Regionen weltweit skaliert.

VOD-Verwendung:
Tabellen können zum Speichern von Auftragsausgabestatusdatensätzen und zum Nachverfolgen des Integritätszustands jeder Media Services-Instanz verwendet werden. Sie können auch den Status jedes Aufrufs der Media Services-API nachverfolgen/aufzeichnen. Erfahren Sie mehr über Azure Cosmos DB.
Dies ist das Symbol Verwaltete Identität Beschreibung:
Verwaltete Identität ist ein Feature von Azure AD, das eine automatisch verwaltete Identität in Azure AD bereitstellt. Sie kann verwendet werden, um sich bei jedem Dienst zu authentifizieren, der die Azure AD-Authentifizierung unterstützt, einschließlich Key Vault, ohne Anmeldeinformationen im Code zu speichern.

VOD-Verwendung:
Azure Functions kann verwaltete Identität verwenden, um sich bei Media Services-Instanzen zu authentifizieren, um eine Verbindung mit Key Vault herzustellen. Erfahren Sie mehr über managed Identity.
Dies ist das Key Vault-Symbol. Key Vault Beschreibung:
Azure Key Vault kann verwendet werden, um den Zugriff auf Token, Kennwörter, Zertifikate, API-Schlüssel und andere geheime Schlüssel sicher zu speichern und streng zu steuern. Sie kann auch als Schlüsselverwaltungslösung verwendet werden. Azure Key Vault erleichtert das Erstellen und Steuern der Verschlüsselungsschlüssel, die zum Verschlüsseln Ihrer Daten verwendet werden. Es kann problemlos öffentliche und private Transport Layer Security/Secure Sockets Layer (TLS/SSL)-Zertifikate für die Verwendung mit Azure und internen verbundenen Ressourcen bereitstellen, verwalten und bereitstellen. Geheime Schlüssel können entweder durch Software oder FIPS 140-2 Level 2 validierte HSMs geschützt werden.

VOD-Verwendung:
Key Vault kann verwendet werden, um Zugriffsrichtlinien für den Dienstprinzipal für Ihre Anwendung einzurichten. Sie kann verwendet werden, um die Verbindungszeichenfolge in Speicherkonten zu speichern. Wir verwenden Key Vault, um Verbindungszeichenfolgen für Speicherkonten und Cosmos db zu speichern. Sie können auch Key Vault verwenden, um die gesamte Clusterkonfiguration zu speichern. Für jede Mediendienstinstanz können Sie abonnement-ID, Ressourcengruppenname und Kontoname speichern. Weitere Informationen finden Sie in der Verwendung im Beispiel. Erfahren Sie mehr über key Vault.
Dies ist das Symbol Azure-Funktionen Beschreibung:
Führen Sie kleine Codeteile (als "Funktionen" bezeichnet) aus, ohne sich gedanken über die Anwendungsinfrastruktur mit Azure Functions zu machen. Erfahren Sie mehr über Azure Functions.

VOD-Verwendung:
Azure Functions können verwendet werden, um hosten die Module Ihrer VOD-Anwendung zu speichern. Module für eine VOD-Anwendung können folgendes umfassen:

Auftragsplanungsmodul
Das Auftragsplanungsmodul wäre für das Übermitteln neuer Aufträge an einen Media Services-Cluster (mindestens zwei Instanzen in verschiedenen Regionen) vorgesehen. Er würde den Integritätsstatus jeder Media Services-Instanz nachverfolgen und einen neuen Auftrag an die nächste fehlerfreie Instanz übermitteln.

Auftragsstatusmodul
Das Auftragsstatusmodul überwacht Statusereignisse des Auftragsausgabestatus, die vom Azure Event Grid-Dienst stammen. Es würde Ereignisse im Ereignisspeicher speichern, um die Anzahl der Aufrufe von Media Services-APIs nach rest der Module zu minimieren.

Instanzintegritätsmodul
Dieses Modul würde übermittelte Aufträge nachverfolgen und den Integritätsstatus für jede Media Services-Instanz ermitteln. Er würde abgeschlossene Aufträge nachverfolgen, fehlgeschlagene Aufträge und Aufträge nachverfolgen, die nie beendet wurden.

Bereitstellungsmodul
Dieses Modul würde verarbeitete Ressourcen bereitstellen. Es würde Bestandsdaten in alle Mediendiensteinstanzen kopieren und den Azure Front Door-Dienst einrichten, um sicherzustellen, dass Ressourcen auch dann gestreamt werden könnten, wenn einige Mediendiensteinstanzen nicht verfügbar waren. Es würde auch Streaming-Locators 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 ist.
Dies ist das Symbol App-Dienst (und Plan) Beschreibung:
Azure App Service ist ein HTTP-basierter Dienst zum Hosten von Webanwendungen, REST-APIs und mobilen Back-Ends. Es unterstützt .NET, .NET Core, Java, Node.js, PHP oder Python. Anwendungen werden sowohl in Windows- als auch in Linux-basierten Umgebungen ausgeführt und skaliert.

VOD-Verwendung:
Jedes Modul wird von einem App-Dienst gehostet. Erfahren Sie mehr über app Service.
Dies ist das Azure Front Door-Symbol. Azure Front Door Beschreibung:
Azure Front Door wird verwendet, um das globale Routing von Webdatenverkehr zu definieren, zu verwalten und zu überwachen, indem es für optimale Leistung und schnelles globales Failover für hohe Verfügbarkeit optimiert wird.

VOD-Verwendung:
Azure Front Door könnte verwendet werden, um Datenverkehr an Streaming-Endpunkte weiterzuleiten. Erfahren Sie mehr über azure Front Door.
Dies ist das Azure Event Grid-Symbol. Azure-Ereignisraster Beschreibung:
Das Ereignisraster wurde für ereignisbasierte Architekturen erstellt und bietet integrierte Unterstützung für Ereignisse, die von Azure-Diensten stammen, z. B. Speicher-Blobs und Ressourcengruppen. Sie unterstützt auch benutzerdefinierte Themenereignisse. Filter können verwendet werden, um bestimmte Ereignisse an verschiedene Endpunkte, Multicasts an mehrere Endpunkte weiterzuleiten und sicherzustellen, dass Ereignisse zuverlässig übermittelt werden. Sie maximiert die Verfügbarkeit, indem sie nativ über mehrere Fehlerdomänen in jeder Region und über Verfügbarkeitszonen verteilt wird.

VOD-Verwendung:
Das Ereignisraster kann verwendet werden, um alle Anwendungsereignisse nachzuverfolgen und zum Speichern des Auftragsstatus zu speichern. Weitere Informationen zu Azure Event Grid.
Dies ist das Symbol Application Insights Beschreibung:
Application Insights, ein Feature von Azure Monitor, ist ein erweiterbarer APM-Dienst (Application Performance Management) für Entwickler und DevOps-Experten. Es wird verwendet, um Liveanwendungen zu überwachen. Es erkennt Leistungsanomalien und umfasst Analysetools zum Diagnostizieren von Problemen und zum Verstehen, was Benutzer mit einer App tun. Es wurde entwickelt, um Ihnen dabei zu helfen, die Leistung und Benutzerfreundlichkeit kontinuierlich zu verbessern.

VOD-Verwendung:
Alle Protokolle können an Application Insights gesendet werden. Es wäre möglich, zu sehen, welche Instanz jeden Auftrag verarbeitet hat, indem nach erfolgreich erstellten Auftragsnachrichten gesucht wird. Er kann alle übermittelten Auftragsmetadaten enthalten, einschließlich der eindeutigen Id und der Instanznameninformationen. Erfahren Sie mehr über Application Insights.

Architektur

Dieses allgemeine Diagramm zeigt die Architektur des Beispiels, das Ihnen bei den ersten Schritten mit hohen Verfügbarkeits- und Mediendiensten bereitgestellt wird.

Video on Demand (VOD) High Level Architecture Diagram

Bewährte Methoden

Regionen

  • Erstellen zwei (oder mehr) Azure Media Services-Konten. Die beiden Konten müssen in verschiedenen Regionen sein. Weitere Informationen finden Sie unter Regionen, in denen der Azure Media Services-Dienstbereitgestellt wird.
  • Laden Sie Ihre Medien in dieselbe Region hoch, aus der Sie den Auftrag übermitteln möchten.
  • Wenn Sie dann den Auftrag erneut an eine andere Region übermitteln müssen, können Sie JobInputHttp verwenden oder Copy-Blob verwenden, um die Daten aus dem Quellobjektcontainer in einen Objektcontainer in der alternativen Region zu kopieren.

Überwachung

  • Abonnieren Sie JobStateChange Nachrichten in jedem Konto über Das 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:

    • Sehen Sie sich das Audio Analytics-Beispiel an, in dem gezeigt wird, wie Sie einen Auftrag mit Azure Event Grid überwachen, einschließlich des Hinzufügens eines Fallbacks, falls die Azure Event Grid-Nachrichten aus irgendeinem Grund verzögert werden.
  • Beim Erstellen eines Auftrags:

    • Wählen Sie zufällig ein Konto aus der Liste der aktuell verwendeten Konten aus (diese Liste enthält normalerweise beide Konten, aber wenn Probleme erkannt werden, darf es nur ein Konto enthalten). Wenn die Liste leer ist, lösen Sie eine Warnung aus, damit ein Operator untersuchen kann.
    • Erstellen Sie einen Datensatz, um die einzelnen Inflight-Jobs 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 die Uhrzeit, zu der er den geplanten Zustand und das verwendete Region/Konto eingibt.

  • 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 zeichnen Sie die Uhrzeit auf, zu der er den Verarbeitungszustand eingibt.

  • Wenn ihr JobStateChange-Handler eine Benachrichtigung erhält, dass ein Auftrag einen endgültigen Zustand erreicht hat (Finished/Errored/Canceled), markieren Sie den Datensatz für den Auftrag entsprechend.

  • Einen separaten Prozess haben, der regelmäßig Ihre Datensätze der Aufträge untersucht

    • Wenn Sie Aufträge im geplanten Zustand haben, die in angemessener Zeit für eine bestimmte Region nicht zum Verarbeitungszustand erweitert wurden, entfernen Sie diese Region aus Ihrer Liste der aktuell verwendeten Konten. Je nach Ihren Geschäftlichen Anforderungen können Sie sich entscheiden, diese Aufträge sofort abzubrechen und sie erneut an die andere Region zu übermitteln. Oder Sie könnten ihnen etwas mehr Zeit geben, um zum nächsten Zustand zu wechseln.
    • Wenn eine Region aus der Kontoliste entfernt wurde, überwachen Sie sie auf Wiederherstellung, bevor Sie sie wieder zur Liste hinzufügen. Die regionale Integrität kann über die vorhandenen Aufträge in der Region überwacht werden (wenn sie nicht abgebrochen und erneut übermittelt wurden), indem sie das Konto nach einem bestimmten Zeitraum wieder zur Liste hinzufügen und die Azure-Kommunikation über Ausfälle überwachen, die sich auf Azure Media Services auswirken können.

Hilfe und Support erhalten

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