Hoge beschikbaarheid met Media Services en Video on Demand (VOD)

Media Services-logo v3


Waarschuwing

Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de Handleiding voor buitengebruikstelling van AMS voor meer informatie.

Hoge beschikbaarheid voor VOD

Er is een ontwerppatroon voor hoge beschikbaarheid met de naam Geodes in de documentatie voor Azure-architectuur. Hierin wordt beschreven hoe dubbele resources worden geïmplementeerd in verschillende geografische regio's om schaalbaarheid en tolerantie te bieden. U kunt Azure-services gebruiken om een dergelijke architectuur te maken voor veel ontwerpoverwegingen voor hoge beschikbaarheid, zoals redundantie, statuscontrole, taakverdeling en back-up en herstel van gegevens. Een dergelijke architectuur wordt hieronder beschreven met details over elke service die in de oplossing wordt gebruikt en hoe de afzonderlijke services kunnen worden gebruikt om een architectuur met hoge beschikbaarheid voor uw VOD-toepassing te maken.

Voorbeeld

Er is een voorbeeld beschikbaar dat u kunt gebruiken om vertrouwd te raken met hoge beschikbaarheid met Media Services en Video on Demand (VOD). Er wordt ook dieper ingegaan op hoe de services worden gebruikt voor een VOD-scenario. Het voorbeeld is niet bedoeld om in de huidige vorm in productie te worden gebruikt. Bekijk de voorbeeldcode en het leesmij-bestand zorgvuldig, met name de sectie foutmodi voordat u deze integreert in een productietoepassing. Een productie-implementatie van hoge beschikbaarheid voor Video on Demand (VOD) moet ook hun CDN-strategie (Content Delivery Network) zorgvuldig beoordelen. Bekijk de code op GitHub.

Overzicht van services

De services die in deze voorbeeldarchitectuur worden gebruikt, zijn onder andere:

Pictogram Naam Beschrijving
Dit is het pictogram van het Media Services-account. Media Services-account Beschrijving:
Een Media Services-account is het startpunt voor het beheren, versleutelen, coderen, analyseren en streamen van media-inhoud in Azure. Deze is gekoppeld aan een Azure Storage-accountresource. Het account en alle bijbehorende opslag moeten zich in hetzelfde Azure-abonnement bevinden.

VOD gebruiken:
Dit zijn de services die u gebruikt om uw video- en audioassets te coderen en te leveren. Voor hoge beschikbaarheid stelt u ten minste twee Media Services-accounts in, elk in een andere regio. Meer informatie over Azure Media Services.
Dit is het pictogram opslagaccount. Storage-account Beschrijving:
Een Azure-opslagaccount bevat al uw Azure Storage-gegevensobjecten: blobs, bestanden, wachtrijen, tabellen en schijven. Gegevens zijn overal ter wereld toegankelijk via HTTP of HTTPS.

Elk Media Services-account in elke regio heeft een opslagaccount in dezelfde regio.

VOD gebruiken:
U kunt invoer- en uitvoergegevens opslaan voor VOD-verwerking en streaming. Meer informatie over Azure Storage.
Dit is het pictogram van de Azure Storage-wachtrij. Azure Storage-wachtrij Beschrijving:
Azure Queue Storage is een service voor de opslag van grote aantallen berichten die via HTTP of HTTPS overal vandaan kunnen worden opgevraagd met geverifieerde aanroepen.

VOD gebruiken:
Wachtrijen kunnen worden gebruikt om berichten te verzenden en te ontvangen om activiteiten tussen verschillende modules te coördineren. Het voorbeeld maakt gebruik van een Azure Storage-wachtrij, maar Azure biedt andere typen wachtrijen, zoals Service Bus en Betrouwbare Service Fabric-wachtrijen, die mogelijk beter aansluiten bij uw behoeften. Meer informatie over Azure Queue.
Dit is het pictogram van Azure Cosmos DB. Azure Cosmos DB Beschrijving:
Azure Cosmos DB is de wereldwijd gedistribueerde databaseservice van Microsoft met meerdere modellen waarmee doorvoer en opslag onafhankelijk worden geschaald in een willekeurig aantal Azure-regio's wereldwijd.

VOD gebruiken:
Tabellen kunnen worden gebruikt om statusrecords van taakuitvoer op te slaan en om de status van elk Media Services-exemplaar bij te houden. U kunt ook de status van elke aanroep naar de Media Services-API bijhouden/opnemen. Meer informatie over Azure Cosmos DB.
Dit is het pictogram Beheerde identiteit. Beheerde identiteit Beschrijving:
Beheerde identiteit is een functie van Azure AD die een automatisch beheerde identiteit in Azure AD biedt. Het kan worden gebruikt voor verificatie bij elke service die ondersteuning biedt voor Azure AD verificatie, inclusief Key Vault, zonder referenties in code op te slaan.

VOD gebruiken:
Azure Functions kunt beheerde identiteit gebruiken om te verifiëren bij Media Services-exemplaren om verbinding te maken met Key Vault. Meer informatie over beheerde identiteit.
Dit is het pictogram Key Vault. Key Vault Beschrijving:
Azure Key Vault kan worden gebruikt om de toegang tot tokens, wachtwoorden, certificaten, API-sleutels en andere geheimen veilig op te slaan en strikt te beheren. Het kan ook worden gebruikt als een oplossing voor sleutelbeheer. Met Azure Key Vault kunt u eenvoudig de versleutelingssleutels maken en beheren waarmee uw gegevens worden versleuteld. Het kan eenvoudig openbare en persoonlijke TLS/SSL-certificaten (Transport Layer Security/Secure Sockets Layer) inrichten, beheren en implementeren voor gebruik met Azure en interne verbonden resources. Geheimen en sleutels kunnen worden beveiligd met software of met FIPS 140-2 Level 2 gevalideerde HSM's.

VOD gebruiken:
Key Vault kunt u gebruiken voor het instellen van toegangsbeleid voor de service-principal voor uw toepassing. Het kan worden gebruikt om de verbindingsreeks op te slaan in opslagaccounts. We gebruiken Key Vault om verbindingsreeksen op te slaan met opslagaccounts en cosmos db. U kunt Key Vault ook gebruiken om de algehele clusterconfiguratie op te slaan. Voor elk Media Service-exemplaar kunt u de abonnements-id, de naam van de resourcegroep en de accountnaam opslaan. Zie hoe het wordt gebruikt in het voorbeeld voor meer informatie. Meer informatie over Key Vault.
Dit is het pictogram Azure Functions. Azure Functions Beschrijving:
Voer kleine stukjes code (functies genoemd) uit zonder dat u zich zorgen hoeft te maken over de toepassingsinfrastructuur met Azure Functions. Meer informatie over Azure Functions.

VOD gebruiken:
Azure Functions kunt u gebruiken om de modules van uw VOD-toepassing op te slaan. Modules voor een VOD-toepassing kunnen het volgende omvatten:

Taakplanningsmodule
De taakplanningsmodule is bedoeld voor het verzenden van nieuwe taken naar een Media Services-cluster (twee of meer exemplaren in verschillende regio's). Hiermee wordt de status van elk Media Services-exemplaar bijgehouden en wordt een nieuwe taak verzonden naar het volgende gezonde exemplaar.

Module Taakstatus
De taakstatusmodule luistert naar taakuitvoerstatus gebeurtenissen die afkomstig zijn van Azure Event Grid service. Hiermee worden gebeurtenissen opgeslagen in het gebeurtenisarchief om het aantal aanroepen naar Media Services-API's door de rest van de modules te minimaliseren.

Module Voor exemplaarstatus
Deze module houdt verzonden taken bij en bepaalt de status voor elk Media Services-exemplaar. Hiermee worden voltooide taken, mislukte taken en taken bijgehouden die nooit zijn voltooid.

Inrichtingsmodule
In deze module worden verwerkte assets ingericht. Hiermee worden assetgegevens gekopieerd naar alle Media Services-exemplaren en wordt de Azure Front Door-service ingesteld om ervoor te zorgen dat assets kunnen worden gestreamd, zelfs als sommige Media Services-exemplaren niet beschikbaar zijn. Het zou ook streaming-locators instellen.

Module voor taakverificatie
In deze module wordt elke verzonden taak bijgehouden, mislukte taken opnieuw ingediend en taakgegevens opgeschoond zodra een taak is voltooid.
Dit is het pictogram App Service. App Service (en plan) Beschrijving:
Azure App Service is een HTTP-service voor het hosten van webtoepassingen, REST API's en mobiele back-ends. Het ondersteunt .NET, .NET Core, Java, Node.js, PHP of Python. Toepassingen worden uitgevoerd en geschaald in zowel Windows- als Linux-omgevingen.

VOD-gebruik:
Elke module wordt gehost door een App Service. Meer informatie over App Service.
Dit is het azure Front Door-pictogram. Azure Front Door Beschrijving:
Azure Front Door wordt gebruikt voor het definiëren, beheren en bewaken van de wereldwijde routering van webverkeer door te optimaliseren voor de beste prestaties en snelle wereldwijde failover voor hoge beschikbaarheid.

VOD-gebruik:
Azure Front Door kan worden gebruikt om verkeer naar streaming-eindpunten te routeren. Meer informatie over Azure Front Door.
Dit is het pictogram Azure Event Grid. Azure Event Grid Beschrijving:
Event Grid is gemaakt voor op gebeurtenissen gebaseerde architecturen en biedt ingebouwde ondersteuning voor gebeurtenissen die afkomstig zijn van Azure-services, zoals opslagblobs en resourcegroepen. Het biedt ook ondersteuning voor aangepaste onderwerpgebeurtenissen. Filters kunnen worden gebruikt om specifieke gebeurtenissen te routeren naar verschillende eindpunten, multicast naar meerdere eindpunten en om ervoor te zorgen dat gebeurtenissen betrouwbaar worden geleverd. Het maximaliseert de beschikbaarheid door systeemeigen te spreiden over meerdere foutdomeinen in elke regio en over beschikbaarheidszones.

VOD-gebruik:
Event Grid kan worden gebruikt om alle toepassingsevenementen bij te houden en op te slaan om de taakstatus te behouden. Meer informatie over Azure Event Grid.
Dit is het Pictogram van Application Insights. Application Insights Beschrijving:
Application Insights, een functie van Azure Monitor, is een flexibele APM-service (Application Performance Management) voor ontwikkelaars en DevOps-professionals. Het wordt gebruikt voor het bewaken van live-toepassingen. Het detecteert prestatieafwijkingen en bevat analysehulpprogramma's om problemen vast te stellen en te begrijpen wat gebruikers met een app doen. Het is bedoeld om u te helpen de prestaties en bruikbaarheid continu te verbeteren.

VOD-gebruik:
Alle logboeken kunnen worden verzonden naar Application Insights. Het zou mogelijk zijn om te zien welk exemplaar elke taak heeft verwerkt door te zoeken naar taakberichten die zijn gemaakt. Het kan alle ingediende taakmetagegevens bevatten, inclusief de unieke id en de naam van het exemplaar. Meer informatie over Application Insights.

Architectuur

Dit diagram op hoog niveau toont de architectuur van het voorbeeld om u op weg te helpen met hoge beschikbaarheid en mediaservices.

Video on Demand (VOD) High Level Architecture Diagram

Aanbevolen procedures

Regio's

  • Maak twee (of meer) Azure Media Services-accounts. De twee accounts moeten zich in verschillende regio's bevinden. Zie Regio's waarin de Azure Media Services-service is geïmplementeerd voor meer informatie.
  • Upload uw media naar dezelfde regio van waaruit u de taak wilt verzenden.
  • Als u de taak vervolgens opnieuw moet indienen bij een andere regio, kunt u de JobInputHttpCopy-Blob gegevens van de bronassetcontainer kopiëren naar een assetcontainer in de alternatieve regio.

Bewaking

  • JobStateChange Abonneer u op berichten in elk account via Azure Event Grid.

    • Gebruik de Microsoft.Azure.EventGrid SDK (die systeemeigen ondersteuning biedt voor Media Services-gebeurtenissen).
    • U kunt event Grid-gebeurtenissen ook gebruiken via Azure Functions.

    Voor meer informatie:

    • Zie het audioanalysevoorbeeld waarin wordt getoond hoe u een taak bewaakt met Azure Event Grid inclusief het toevoegen van een terugval voor het geval de Azure Event Grid berichten om een of andere reden worden vertraagd.
  • Wanneer u een taak maakt:

    • Selecteer willekeurig een account in de lijst met momenteel gebruikte accounts (deze lijst bevat normaal gesproken beide accounts, maar als er problemen worden gedetecteerd, kan deze slechts één account bevatten). Als de lijst leeg is, geeft u een waarschuwing zodat een operator dit kan onderzoeken.
    • Maak een record om elke inflight-taak en de gebruikte regio/account bij te houden.
  • Wanneer uw JobStateChange handler een melding krijgt dat een taak de geplande status heeft bereikt, registreert u de tijd die de geplande status krijgt en de regio/het gebruikte account.

  • Wanneer uw JobStateChange handler een melding krijgt dat een taak de verwerkingsstatus heeft bereikt, markeert u de record voor de taak als verwerking en registreert u de tijd waarop deze de verwerkingsstatus krijgt.

  • Wanneer uw JobStateChange handler een melding krijgt dat een taak de uiteindelijke status heeft bereikt (Voltooid/Fout opgetreden/Geannuleerd), markeert u de record voor de taak op de juiste manier.

  • Zorg voor een afzonderlijk proces dat periodiek uw records van de taken bekijkt

    • Als u taken in de geplande status hebt die niet binnen een redelijke tijd naar de verwerkingsstatus zijn gevorderd voor een bepaalde regio, verwijdert u die regio uit uw lijst met momenteel gebruikte accounts. Afhankelijk van uw bedrijfsvereisten kunt u besluiten deze taken meteen te annuleren en ze opnieuw naar de andere regio te verzenden. U kunt ze ook wat meer tijd geven om naar de volgende status te gaan.
    • Als een regio uit de lijst met accounts is verwijderd, controleert u deze op herstel voordat u deze weer toevoegt aan de lijst. De regionale status kan worden bewaakt via de bestaande taken in de regio (als deze niet zijn geannuleerd en opnieuw zijn ingediend), door het account na een bepaalde periode weer toe te voegen aan de lijst en door operators die Azure-communicatie bewaken over storingen die van invloed kunnen zijn op Azure Media Services.

Help en ondersteuning

U kunt contact opnemen met Media Services als u vragen hebt of onze updates op een van de volgende manieren volgen: