Hög tillgänglighet med Media Services och Video on Demand (VOD)
Varning
Azure Media Services dras tillbaka den 30 juni 2024. Mer information finns i AMS-pensionsguiden.
Hög tillgänglighet för VOD
Det finns ett designmönster med hög tillgänglighet som heter Geodes i dokumentationen för Azure Architecture. Den beskriver hur dubblettresurser distribueras till olika geografiska regioner för att ge skalbarhet och återhämtning. Du kan använda Azure-tjänster för att skapa en sådan arkitektur för att täcka många designöverväganden för hög tillgänglighet, till exempel redundans, hälsoövervakning, belastningsutjämning samt säkerhetskopiering och återställning av data. En sådan arkitektur beskrivs nedan med information om varje tjänst som används i lösningen samt hur de enskilda tjänsterna kan användas för att skapa en arkitektur med hög tillgänglighet för ditt VOD-program.
Exempel
Det finns ett exempel som du kan använda för att bekanta dig med hög tillgänglighet med Media Services och Video on Demand (VOD). Den går också in mer i detalj på hur tjänsterna används för ett VOD-scenario. Urvalet är inte avsett att användas i produktion i dess aktuella form. Granska exempelkoden och viktigt, särskilt avsnittet om fellägen innan du integrerar den i ett produktionsprogram. En produktionsimplementering av hög tillgänglighet för Video on Demand (VOD) bör också noggrant granska sin CDN-strategi (Content Delivery Network). Kolla in koden på GitHub.
Översikt över tjänster
Tjänsterna som används i den här exempelarkitekturen är:
Ikon | Name | Beskrivning |
---|---|---|
Media Services-konto |
Beskrivning: Ett Media Services-konto är startpunkten för att hantera, kryptera, koda, analysera och strömma medieinnehåll i Azure. Den är associerad med en Azure Storage-kontoresurs. Kontot och all associerad lagring måste finnas i samma Azure-prenumeration. VOD-användning: Det här är de tjänster som du använder för att koda och leverera dina video- och ljudtillgångar. För hög tillgänglighet konfigurerar du minst två Media Services-konton, var och en i en annan region. Läs mer om Azure Media Services. |
|
Lagringskonto |
Beskrivning: Ett Azure Storage-konto innehåller alla dina Azure Storage-dataobjekt: blobar, filer, köer, tabeller och diskar. Data är tillgängliga var som helst i världen via HTTP eller HTTPS. Varje Media Services-konto i varje region skulle ha ett lagringskonto i samma region. VOD-användning: Du kan lagra indata och utdata för VOD-bearbetning och strömning. Läs mer om Azure Storage. |
|
Azure Storage-kö |
Beskrivning: Azure Queue Storage är en tjänst för att lagra stora mängder meddelanden som kan nås från var som helst i världen via autentiserade anrop med HTTP eller HTTPS. VOD-användning: Köer kan användas för att skicka och ta emot meddelanden för att samordna aktiviteter mellan olika moduler. Exemplet använder en Azure Storage-kö, men Azure tillhandahåller andra typer av köer, till exempel Service Bus och Service Fabric Reliable Queues, som kan passa dina behov bättre. Läs mer om Azure Queue. |
|
Azure Cosmos DB |
Beskrivning: Azure Cosmos DB är Microsofts globalt distribuerade databastjänst för flera modeller som oberoende skalar dataflöde och lagring över valfritt antal Azure-regioner över hela världen. VOD-användning: Tabeller kan användas för att lagra statusposter för jobbutdata och för att spåra hälsotillståndet för varje Media Services-instans. Du kan också spåra/registrera status för varje anrop till Media Services-API:et. Läs mer om Azure Cosmos DB. |
|
Hanterad identitet |
Beskrivning: Hanterad identitet är en funktion i Azure AD som tillhandahåller en automatiskt hanterad identitet i Azure AD. Den kan användas för att autentisera till alla tjänster som stöder Azure AD-autentisering, inklusive Key Vault, utan att lagra autentiseringsuppgifter i kod. VOD-användning: Azure Functions kan använda hanterad identitet för att autentisera till Media Services-instanser för att ansluta till Key Vault. Läs mer om hanterad identitet. |
|
Key Vault |
Beskrivning: Azure Key Vault kan användas för att lagra och kontrollera åtkomsten till token, lösenord, certifikat, API-nycklar och andra hemligheter på ett säkert sätt. Den kan också användas som en nyckelhanteringslösning. Med Azure Key Vault är det enkelt att skapa och kontrollera de krypteringsnycklar som används för att kryptera dina data. Den kan enkelt etablera, hantera och distribuera offentliga och privata TLS/SSL-certifikat (Transport Layer Security/Secure Sockets Layer) för användning med Azure och interna anslutna resurser. Hemligheter och nycklar kan skyddas antingen av programvara eller FIPS 140-2 Level 2-verifierade HSM:er. VOD-användning: Key Vault kan användas för att konfigurera åtkomstprinciper för tjänstens huvudnamn för ditt program. Den kan användas för att lagra anslutningssträng till lagringskonton. Vi använder Key Vault för att lagra anslutningssträngar till lagringskonton och cosmos db. Du kan också använda Key Vault för att lagra övergripande klusterkonfiguration. För varje Media Service-instans kan du lagra prenumerations-ID, resursgruppsnamn och kontonamn. Mer information finns i hur den används i exemplet. Läs mer om Key Vault. |
|
Azure Functions |
Beskrivning: Kör små delar av koden (kallas "funktioner") utan att bekymra dig om programinfrastrukturen med Azure Functions. Läs mer om Azure Functions. VOD-användning: Azure Functions kan användas för att lagra värden för modulerna i ditt VOD-program. Moduler för ett VOD-program kan innehålla: Schemaläggningsmodul för jobb Jobbschemaläggningsmodulen skulle vara till för att skicka nya jobb till ett Media Services-kluster (två eller flera instanser i olika regioner). Den skulle spåra hälsostatusen för varje Media Services-instans och skicka ett nytt jobb till nästa felfria instans. Jobbstatusmodul Jobbstatusmodulen lyssnar på statushändelser för jobbutdata som kommer från Azure Event Grid-tjänsten. Den lagrar händelser i händelselagret för att minimera antalet anrop till Media Services-API:er med resten av modulerna. Instanshälsa-modul Den här modulen spårar skickade jobb och fastställer hälsostatusen för varje Media Services-instans. Det skulle spåra slutförda jobb, misslyckade jobb och jobb som aldrig slutfördes. Etableringsmodul Den här modulen etablerar bearbetade tillgångar. Den kopierar tillgångsdata till alla Media Services-instanser och konfigurerar Azure Front Door-tjänsten för att säkerställa att tillgångar kan strömmas även om vissa Media Services-instanser inte är tillgängliga. Det skulle också konfigurera positionerare för direktuppspelning. Jobbverifieringsmodul I den här modulen spåras varje skickat jobb, misslyckade jobb skickas på nytt och jobbdata rensas när ett jobb har slutförts. |
|
App Service (och planera) |
Beskrivning: Azure App Service är en HTTP-baserad tjänst som är värd för webbprogram, REST-API:er och mobila serverdelar. Den stöder .NET, .NET Core, Java, Node.js, PHP eller Python. Program körs och skalas i både Windows- och Linux-baserade miljöer. VOD-användning: Varje modul värdhanteras av en App Service. Läs mer om App Service. |
|
Azure Front Door |
Beskrivning: Azure Front Door används för att definiera, hantera och övervaka den globala routningen av webbtrafik genom att optimera för bästa prestanda och snabb global redundans för hög tillgänglighet. VOD-användning: Azure Front Door kan användas för att dirigera trafik till slutpunkter för direktuppspelning. Läs mer om Azure Front Door. |
|
Azure Event Grid |
Beskrivning: Event Grid har skapats för händelsebaserade arkitekturer och har inbyggt stöd för händelser som kommer från Azure-tjänster, till exempel lagringsblobar och resursgrupper. Den har också stöd för anpassade ämneshändelser. Filter kan användas för att dirigera specifika händelser till olika slutpunkter, multicast till flera slutpunkter och för att säkerställa att händelser levereras på ett tillförlitligt sätt. Den maximerar tillgängligheten genom att spridas internt över flera feldomäner i varje region och mellan tillgänglighetszoner. VOD-användning: Event Grid kan användas för att spåra alla programhändelser och lagra dem för att bevara jobbstatus. Läs mer om Azure Event Grid. |
|
Application Insights |
Beskrivning: Funktionen Application Insights i Azure Monitor är en utökningsbar APM-tjänst (Application Performance Management) för utvecklare och DevOps-utvecklare. Den används för att övervaka liveprogram. Den identifierar prestandaavvikelser och innehåller analysverktyg för att diagnostisera problem och förstå vad användare gör med en app. Den är avsedd för utvecklare och för att hjälpa dig att kontinuerligt förbättra prestanda och användbarhet. VOD-användning: Alla loggar kan skickas till Application Insights. Det skulle vara möjligt att se vilken instans som bearbetade varje jobb genom att söka efter jobbmeddelanden som har skapats. Den kan innehålla alla skickade jobbmetadata, inklusive den unika identifieraren och instansnamnsinformationen. Läs mer om Application Insights. |
Arkitektur
Det här diagrammet på hög nivå visar arkitekturen för exemplet som tillhandahålls för att komma igång med hög tillgänglighet och medietjänster.
Bästa praxis
Regioner
- Skapa två (eller flera) Azure Media Services-konton. De två kontona måste finnas i olika regioner. Mer information finns i Regioner där Azure Media Services-tjänsten distribueras.
- Ladda upp media till samma region som du planerar att skicka jobbet från.
- Om du sedan behöver skicka jobbet till en annan region igen kan du använda
JobInputHttp
eller användaCopy-Blob
för att kopiera data från källtillgångscontainern till en tillgångscontainer i den alternativa regionen.
Övervakning
Prenumerera
JobStateChange
på meddelanden i varje konto via Azure Event Grid.- Använd Microsoft.Azure.EventGrid SDK (som stöder Media Services-händelser internt).
- Du kan också använda Event Grid-händelser via Azure Functions.
Mer information:
- Se ljudanalysexemplet som visar hur du övervakar ett jobb med Azure Event Grid inklusive att lägga till en återställning om Azure Event Grid meddelandena av någon anledning fördröjs.
När du skapar ett jobb:
- Välj ett konto slumpmässigt i listan över konton som används för tillfället (den här listan innehåller normalt båda kontona, men om problem upptäcks kan det bara innehålla ett konto). Om listan är tom skapar du en avisering så att en operatör kan undersöka.
- Skapa en post för att hålla reda på varje inflight-jobb och den region/det konto som används.
JobStateChange
När hanteraren får ett meddelande om att ett jobb har nått det schemalagda tillståndet registrerar du den tid då det anger det schemalagda tillståndet och den region/det konto som används.JobStateChange
När hanteraren får ett meddelande om att ett jobb har nått bearbetningstillståndet markerar du posten för jobbet som bearbetning och registrerar den tid det anger bearbetningstillståndet.JobStateChange
När hanteraren får ett meddelande om att ett jobb har nått ett slutligt tillstånd (slutfört/fel/avbrutet) markerar du posten för jobbet på rätt sätt.Ha en separat process som regelbundet tittar på dina poster för jobben
- Om du har jobb i det schemalagda tillståndet som inte har avancerat till bearbetningstillståndet inom rimlig tid för en viss region tar du bort den regionen från listan över konton som används för tillfället. Beroende på dina affärskrav kan du välja att avbryta dessa jobb direkt och skicka dem till den andra regionen igen. Eller så kan du ge dem lite mer tid att flytta till nästa tillstånd.
- Om en region har tagits bort från kontolistan övervakar du den för återställning innan du lägger till den i listan igen. Den regionala hälsan kan övervakas via de befintliga jobben i regionen (om de inte har avbrutits och skickats på nytt), genom att lägga till kontot i listan igen efter en viss tidsperiod och av operatörer som övervakar Azure-kommunikation om avbrott som kan påverka Azure Media Services.
Få hjälp och support
Du kan kontakta Media Services med frågor eller följa våra uppdateringar med någon av följande metoder:
- Q & A
-
Stack Overflow. Tagga frågor med
azure-media-services
. - @MSFTAzureMedia eller använd @AzureSupport för att begära support.
- Öppna en supportbegäran via Azure Portal.