Udostępnij za pośrednictwem


Wysoka dostępność za pomocą usług Media Services i wideo na żądanie (VOD)

Logo usługi Media Services w wersji 3


Ostrzeżenie

Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz Przewodnik po wycofaniu usługi AMS.

Wysoka dostępność dla voD

W dokumentacji architektury platformy Azure istnieje wzorzec projektowania wysokiej dostępności o nazwie Geodes . W tym artykule opisano sposób wdrażania zduplikowanych zasobów w różnych regionach geograficznych w celu zapewnienia skalowalności i odporności. Za pomocą usług platformy Azure można utworzyć taką architekturę, aby uwzględnić wiele zagadnień dotyczących projektowania wysokiej dostępności, takich jak nadmiarowość, monitorowanie kondycji, równoważenie obciążenia oraz tworzenie kopii zapasowych i odzyskiwanie danych. Jedna z takich architektur jest opisana poniżej ze szczegółowymi informacjami na temat każdej usługi używanej w rozwiązaniu, a także sposobu użycia poszczególnych usług do tworzenia architektury wysokiej dostępności dla aplikacji VOD.

Przykład

Dostępny jest przykład umożliwiający zapoznanie się z wysoką dostępnością w usługach Media Services i Wideo na żądanie (VOD). Bardziej szczegółowo o tym, jak usługi są używane w scenariuszu voD. Próbka nie jest przeznaczona do użycia w środowisku produkcyjnym w obecnej formie. Dokładnie przejrzyj przykładowy kod i plik readme, szczególnie sekcję dotyczącą trybów awarii przed zintegrowaniem go z aplikacją produkcyjną. Implementacja produkcyjna wysokiej dostępności wideo na żądanie (VOD) powinna również uważnie przejrzeć strategię usługi Content Delivery Network (CDN). Zapoznaj się z kodem w witrynie GitHub.

Omówienie usług

Usługi używane w tej przykładowej architekturze obejmują:

Ikona Nazwa Opis
Jest to ikona konta usługi Media Services. Konto usługi Media Services Opis:
Konto usługi Media Services to punkt wyjścia do zarządzania, szyfrowania, kodowania, analizowania i przesyłania strumieniowego zawartości multimediów na platformie Azure. Jest ona skojarzona z zasobem konta usługi Azure Storage. Konto i wszystkie skojarzone magazyny muszą znajdować się w tej samej subskrypcji platformy Azure.

Korzystanie z usługi VOD:
Są to usługi używane do kodowania i dostarczania zasobów wideo i audio. Aby uzyskać wysoką dostępność, należy skonfigurować co najmniej dwa konta usługi Media Services, z których każdy jest w innym regionie. Dowiedz się więcej o usłudze Azure Media Services.
Jest to ikona konta magazynu. Konto magazynu Opis:
Konto usługi Azure Storage zawiera wszystkie obiekty danych usługi Azure Storage: obiekty blob, pliki, kolejki, tabele i dyski. Dane są dostępne z dowolnego miejsca na świecie za pośrednictwem protokołu HTTP lub HTTPS.

Każde konto usługi Media Services w każdym regionie będzie miało konto magazynu w tym samym regionie.

Korzystanie z usługi VOD:
Dane wejściowe i wyjściowe można przechowywać na potrzeby przetwarzania i przesyłania strumieniowego voD. Dowiedz się więcej o usłudze Azure Storage.
Jest to ikona kolejki usługi Azure Storage. Kolejka usługi Azure Storage Opis:
Azure Queue Storage to usługa do przechowywania dużej liczby komunikatów, do której można uzyskać dostęp z dowolnego miejsca na świecie za pośrednictwem uwierzytelnionego połączenia za pomocą protokołu HTTP lub HTTPS.

Korzystanie z usługi VOD:
Kolejki mogą służyć do wysyłania i odbierania komunikatów w celu koordynowania działań między różnymi modułami. W przykładzie użyto kolejki usługi Azure Storage, ale platforma Azure udostępnia inne typy kolejek, takich jak Service Bus i Service Fabric Reliable Queues, które mogą lepiej pasować do Twoich potrzeb. Dowiedz się więcej o usłudze Azure Queue.
Jest to ikona usługi Azure Cosmos DB. Azure Cosmos DB Opis:
Usługa Azure Cosmos DB to globalnie rozproszona, wielomodelowa usługa bazy danych firmy Microsoft, która niezależnie skaluje przepływność i magazyn w dowolnej liczbie regionów platformy Azure na całym świecie.

Korzystanie z usługi VOD:
Tabele mogą służyć do przechowywania rekordów stanu danych wyjściowych zadania i śledzenia stanu kondycji każdego wystąpienia usługi Media Services. Możesz również śledzić/rejestrować stan każdego wywołania interfejsu API usługi Media Services. Dowiedz się więcej o usłudze Azure Cosmos DB.
Jest to ikona tożsamości zarządzanej. Tożsamość zarządzana Opis:
Tożsamość zarządzana to funkcja Azure AD, która zapewnia automatycznie zarządzaną tożsamość w Azure AD. Może służyć do uwierzytelniania w dowolnej usłudze obsługującej uwierzytelnianie Azure AD, w tym Key Vault, bez przechowywania poświadczeń w kodzie.

Korzystanie z usługi VOD:
Azure Functions może używać tożsamości zarządzanej do uwierzytelniania w wystąpieniach usługi Media Services w celu nawiązania połączenia z Key Vault. Dowiedz się więcej o tożsamości zarządzanej.
Jest to ikona Key Vault. Key Vault Opis:
Usługa Azure Key Vault może służyć do bezpiecznego przechowywania i ścisłego kontrolowania dostępu do tokenów, haseł, certyfikatów, kluczy interfejsu API i innych wpisów tajnych. Może być również używany jako rozwiązanie do zarządzania kluczami. Usługa Azure Key Vault ułatwia tworzenie i kontrolowanie kluczy szyfrowania używanych do szyfrowania danych. Może łatwo aprowizować i wdrażać publiczne i prywatne certyfikaty protokołu Transport Layer Security/Secure Sockets Layer (TLS/SSL) do użytku z platformą Azure i wewnętrznymi połączonymi zasobami. Wpisy tajne i klucze mogą być chronione przez zweryfikowane moduły HSM oprogramowania lub fiPS 140-2 poziomu 2.

Korzystanie z usługi VOD:
Key Vault można użyć do skonfigurowania zasad dostępu dla jednostki usługi dla aplikacji. Może służyć do przechowywania parametry połączenia na kontach magazynu. Używamy Key Vault do przechowywania parametrów połączenia z kontami magazynu i usługą Cosmos DB. Można również użyć Key Vault do przechowywania ogólnej konfiguracji klastra. Dla każdego wystąpienia usługi Media Service można przechowywać identyfikator subskrypcji, nazwę grupy zasobów i nazwę konta. Aby uzyskać więcej informacji, zobacz, jak jest on używany w przykładzie. Dowiedz się więcej o Key Vault.
Jest to ikona Azure Functions. Azure Functions Opis:
Uruchamianie małych fragmentów kodu (nazywanych "funkcjami") bez obaw o infrastrukturę aplikacji z Azure Functions. Dowiedz się więcej o Azure Functions.

Korzystanie z usługi VOD:
Azure Functions może służyć do przechowywania modułów aplikacji VOD. Moduły dla aplikacji VOD mogą obejmować:

Moduł planowania zadań
Moduł planowania zadań będzie przeznaczony do przesyłania nowych zadań do klastra usługi Media Services (co najmniej dwóch wystąpień w różnych regionach). Będzie śledzić stan kondycji każdego wystąpienia usługi Media Services i przesyłać nowe zadanie do następnego wystąpienia w dobrej kondycji.

Moduł stanu zadania
Moduł stanu zadania nasłuchuje zdarzeń stanu danych wyjściowych zadania pochodzących z usługi Azure Event Grid. Będzie przechowywać zdarzenia w magazynie zdarzeń, aby zminimalizować liczbę wywołań interfejsów API usługi Media Services przez pozostałe moduły.

Moduł kondycji wystąpienia
Ten moduł będzie śledzić przesłane zadania i określać stan kondycji każdego wystąpienia usługi Media Services. Śledzenie zakończonych zadań, zadań zakończonych niepowodzeniem i zadań, które nigdy nie zostały ukończone.

Moduł aprowizacji
Ten moduł aprowizacji przetworzonych zasobów. Spowoduje to skopiowanie danych zasobów do wszystkich wystąpień usługi Media Services i skonfigurowanie usługi Azure Front Door w celu zapewnienia, że zasoby mogą być przesyłane strumieniowo, nawet jeśli niektóre wystąpienia usługi Media Services nie są dostępne. Ponadto skonfiguruje lokalizatory przesyłania strumieniowego.

Moduł weryfikacji zadania
Ten moduł będzie śledzić każde przesłane zadanie, przesyłać ponownie zadania zakończone niepowodzeniem i czyścić dane zadań po pomyślnym zakończeniu zadania.
Jest to ikona App Service. App Service (i planowanie) Opis:
Azure App Service to usługa oparta na protokole HTTP do hostowania aplikacji internetowych, interfejsów API REST i zapleczy dla urządzeń przenośnych. Obsługuje platformy .NET, .NET Core, Java, Node.js, PHP lub Python. Aplikacje są uruchamiane i skalowane zarówno w środowiskach opartych na systemie Windows, jak i Linux.

Korzystanie z voD:
Każdy moduł będzie hostowany przez App Service. Dowiedz się więcej o App Service.
Jest to ikona usługi Azure Front Door. Azure Front Door Opis:
Usługa Azure Front Door służy do definiowania globalnego routingu ruchu internetowego, zarządzania nim i monitorowania go przez optymalizację pod kątem najlepszej wydajności i szybkiego globalnego trybu failover pod kątem wysokiej dostępności.

Korzystanie z voD:
Usługa Azure Front Door może służyć do kierowania ruchu do punktów końcowych przesyłania strumieniowego. Dowiedz się więcej o usłudze Azure Front Door.
Jest to ikona Azure Event Grid. Azure Event Grid Opis:
Utworzona dla architektur opartych na zdarzeniach usługa Event Grid ma wbudowaną obsługę zdarzeń pochodzących z usług platformy Azure, takich jak obiekty blob magazynu i grupy zasobów. Ma również obsługę zdarzeń niestandardowych tematów. Filtry mogą służyć do kierowania określonych zdarzeń do różnych punktów końcowych, multiemisji do wielu punktów końcowych i zapewnienia niezawodnego dostarczania zdarzeń. Maksymalizuje dostępność przez natywne rozłożenie wielu domen błędów w każdym regionie i w różnych strefach dostępności.

Korzystanie z voD:
Usługa Event Grid może służyć do śledzenia wszystkich zdarzeń aplikacji i przechowywania ich w celu utrwalonego stanu zadania. Dowiedz się więcej o Azure Event Grid.
Jest to ikona usługi Application Insights. Application Insights Opis:
Application Insights (funkcja usługi Azure Monitor) to rozszerzalna usługa do zrządzania wydajnością aplikacji dla deweloperów i ekspertów metodyki DevOps. Służy do monitorowania aplikacji na żywo. Wykrywa anomalie wydajności i zawiera narzędzia analityczne do diagnozowania problemów i zrozumienia, co użytkownicy robią z aplikacją. Usługa ta pomaga w ciągłym udoskonalaniu wydajności i użyteczności tworzonych rozwiązań.

Korzystanie z voD:
Wszystkie dzienniki można wysyłać do usługi Application Insights. Możliwe byłoby sprawdzenie, jakie wystąpienie przetworzyło każde zadanie, wyszukując pomyślnie utworzone komunikaty o zadaniu. Może zawierać wszystkie przesłane metadane zadania, w tym unikatowy identyfikator i informacje o nazwie wystąpienia. Dowiedz się więcej o usłudze Application Insights.

Architektura

Ten ogólny diagram przedstawia architekturę udostępnionego przykładu, aby rozpocząć pracę z usługami o wysokiej dostępności i mediach.

Diagram architektury wysokiego poziomu wideo na żądanie (VOD)

Najlepsze rozwiązania

Regiony

  • Utwórz dwa (lub więcej) kont usługi Azure Media Services. Dwa konta muszą znajdować się w różnych regionach. Aby uzyskać więcej informacji, zobacz Regiony, w których wdrożono usługę Azure Media Services.
  • Przekaż multimedia do tego samego regionu, z którego planujesz przesłać zadanie.
  • Jeśli następnie musisz ponownie przesłać zadanie do innego regionu, możesz użyć polecenia JobInputHttp lub użyć Copy-Blob polecenia , aby skopiować dane ze źródłowego kontenera zasobów do kontenera zasobów w regionie alternatywnym.

Monitorowanie

  • Subskrybuj komunikaty na JobStateChange każdym koncie za pośrednictwem Azure Event Grid.

    • Użyj zestawu SDK Microsoft.Azure.EventGrid (który natywnie obsługuje zdarzenia usługi Media Services).
    • Zdarzenia usługi Event Grid można również używać za pośrednictwem Azure Functions.

    Więcej informacji:

    • Zobacz przykład analizy audio, który pokazuje, jak monitorować zadanie za pomocą Azure Event Grid w tym dodawanie rezerwowego w przypadku opóźnienia komunikatów Azure Event Grid z jakiegoś powodu.
  • Podczas tworzenia zadania:

    • Losowo wybierz konto z listy aktualnie używanych kont (ta lista zwykle będzie zawierać oba konta, ale jeśli wykryto problemy, może zawierać tylko jedno konto). Jeśli lista jest pusta, zgłoś alert, aby operator mógł zbadać problem.
    • Utwórz rekord, aby śledzić każde zadanie w locie i używany region/konto.
  • Gdy program JobStateChange obsługi otrzymuje powiadomienie, że zadanie osiągnęło zaplanowany stan, zarejestruj czas wprowadzenia zaplanowanego stanu oraz użyty region/konto.

  • JobStateChange Gdy program obsługi otrzymuje powiadomienie, że zadanie osiągnęło stan przetwarzania, oznacz rekord zadania jako przetwarzania i zapisz czas wejścia w stan przetwarzania.

  • Gdy program JobStateChange obsługi otrzymuje powiadomienie o osiągnięciu stanu końcowego zadania (Zakończone/Błędne/Anulowane), należy odpowiednio oznaczyć rekord zadania.

  • Mieć oddzielny proces, który okresowo analizuje rekordy zadań

    • Jeśli masz zadania w stanie zaplanowanym, które nie zostały zaawansowane do stanu przetwarzania w rozsądnym czasie dla danego regionu, usuń ten region z listy aktualnie używanych kont. W zależności od wymagań biznesowych możesz od razu anulować te zadania i przesłać je ponownie do innego regionu. Możesz też dać im jeszcze trochę czasu, aby przejść do następnego stanu.
    • Jeśli region został usunięty z listy kont, monitoruj go pod kątem odzyskiwania przed dodaniem go z powrotem do listy. Kondycję regionalną można monitorować za pośrednictwem istniejących zadań w regionie (jeśli nie zostały anulowane i ponownie anulowane), dodając konto z powrotem do listy po upływie określonego czasu oraz przez operatorów monitorujących komunikację platformy Azure o awariach, które mogą mieć wpływ na usługę Azure Media Services.

Uzyskiwanie pomocy i obsługi technicznej

Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod: