Partager via


Haute disponibilité avec Media Services et VOD (vidéo à la demande)

Logo de Media Services v3


Avertissement

Azure Media Services sera mis hors service le 30 juin 2024. Pour plus d’informations, consultez le Guide de mise hors service AMS.

Haute disponibilité pour VOD

Il existe un modèle de conception haute disponibilité appelé Geodes dans la documentation de l’architecture Azure. Il décrit comment les ressources dupliquées sont déployées dans différentes régions géographiques pour offrir scalabilité et résilience. Vous pouvez utiliser les services Azure pour créer une architecture de ce type afin de couvrir de nombreuses considérations relatives à la conception de la haute disponibilité, comme la redondance, la surveillance de l’intégrité, l’équilibrage de charge, la sauvegarde et la récupération des données. Une architecture de ce type est décrite ci-dessous avec des détails sur chaque service utilisé dans la solution, ainsi que sur la façon dont les services individuels peuvent être utilisés pour créer une architecture haute disponibilité pour votre application VOD.

Exemple

Vous pouvez utiliser un exemple afin de vous familiariser avec la haute disponibilité avec Media Services et VOD (vidéo à la demande). Cet exemple donne aussi plus de détails sur la façon dont les services sont utilisés dans un scénario de VOD. L’exemple n’est pas destiné à être utilisé en production dans sa forme actuelle. Examinez attentivement l’exemple de code et le fichier Lisez-moi, en particulier la section sur les modes d’échec (Failure Modes) avant de l’intégrer dans une application de production. Pour une implémentation en production de la haute disponibilité pour VOD (vidéo à la demande), la stratégie du réseau de distribution de contenu (CDN) doit également être attentivement examinée. Consultez le code sur GitHub.

Vue d’ensemble des services

Les services utilisés dans cet exemple d’architecture sont les suivants :

Icône Nom Description
Il s’agit de l’ID du compte Media Services. Compte Media Services Description :
Pour commencer à gérer, chiffrer, coder, analyser et diffuser en continu du contenu multimédia dans Azure, vous devez créer un compte Media Services. Il est associé à une ressource de compte Stockage Azure. Le compte et l’ensemble du stockage associé doivent faire partie du même abonnement Azure.

Utilisation de VOD :
Voici les services que vous utilisez pour encoder et diffuser vos ressources vidéo et audio. Pour la haute disponibilité, vous devez configurer au moins deux comptes Media Services, chacun dans une région différente. En savoir plus sur Azure Media Services.
Il s’agit de l’icône du compte de stockage. Compte de stockage Description :
Un compte Stockage Azure contient tous vos objets de données Stockage Azure : blobs, fichiers, files d’attente, tables et disques. Les données sont accessibles n’importe où dans le monde via HTTP ou HTTPS.

Chaque compte Media Services, dans chaque région, dispose d’un compte de stockage dans la même région.

Utilisation de VOD :
Vous pouvez stocker les données d’entrée et de sortie pour le traitement et le streaming VOD. En savoir plus sur Stockage Azure.
Il s’agit de l’icône de la file d’attente de stockage Azure. File d’attente de stockage Azure Description :
Les files d’attente de stockage Azure sont un service permettant de stocker un grand nombre de messages accessibles depuis n’importe où dans le monde via des appels authentifiés avec HTTP ou HTTPS.

Utilisation de VOD :
Les files d’attente peuvent être utilisées pour envoyer et recevoir des messages afin de coordonner les activités entre les différents modules. L’exemple utilise une file d’attente Stockage Azure, mais Azure fournit d’autres types de files d’attente, comme des files d’attente fiables (Reliable Queues) Service Bus et Service Fabric qui peuvent mieux répondre à vos besoins. En savoir plus sur la File d’attente Azure.
Il s’agit de l’icône d’Azure Cosmos DB. Azure Cosmos DB Description :
Azure Cosmos DB est un service de base de données Microsoft multimodèle et distribué mondialement qui fait évoluer de manière indépendante le débit et le stockage dans n’importe quel nombre de régions Azure dans le monde.

Utilisation de VOD :
Les tables peuvent être utilisées pour stocker les enregistrements de l’état de sortie des travaux et pour suivre l’état d’intégrité de chaque instance Media Services. Vous pouvez également suivre/enregistrer l’état de chaque appel à l’API Media Services. En savoir plus sur Azure Cosmos DB.
Il s’agit de l’icône de l’identité managée. Identité managée Description :
L’identité managée est une fonctionnalité d’Azure AD qui fournit une identité administrée automatiquement dans Azure AD. Elle peut être utilisée pour l’authentification sur n’importe quel service prenant en charge l’authentification Azure AD, notamment Key Vault, sans stocker d’informations d’identification dans le code.

Utilisation de VOD :
Azure Functions peut utiliser l’identité managée pour s’authentifier auprès des instances Media Services afin de se connecter à Key Vault. En savoir plus sur l’identité managée.
Il s’agit de l’icône de Key Vault. Key Vault Description :
Azure Key Vault peut être utilisé pour stocker en toute sécurité les jetons, mots de passe, certificats, clés d’API et autres secrets, et en contrôler étroitement l’accès. Il peut également être utilisé comme solution de gestion de clés. Azure Key Vault simplifie la création et le contrôle des clés de chiffrement utilisées pour chiffrer vos données. Il peut facilement provisionner, gérer et déployer des certificats TLS/SSL (Transport Layer Security/Secure Sockets Layer) publics et privés pour une utilisation avec Azure et des ressources connectées internes. Les secrets et les clés peuvent être protégés par logiciel ou par des modules HSM valides FIPS 140-2 de niveau 2.

Utilisation de VOD :
Key Vault peut être utilisé pour configurer des stratégies d’accès pour le principal de service de votre application. Il peut être utilisé pour stocker la chaîne de connexion aux comptes de stockage. Nous utilisons Key Vault pour stocker les chaînes de connexion aux comptes de stockage et à Cosmos DB. Vous pouvez également utiliser Key Vault pour stocker la configuration globale du cluster. Pour chaque instance Media Service, vous pouvez stocker l’ID d’abonnement, le nom du groupe de ressources et le nom du compte. Pour plus d’informations, consultez son utilisation dans l’exemple. En savoir plus sur Key Vault.
Il s’agit de l’icône d’Azure Functions. Azure Functions Description :
Avec Azure Functions, exécutez de petits morceaux de code (appelés « fonctions ») sans vous préoccuper de l’infrastructure de l’application. En savoir plus sur Azure Functions.

Utilisation de VOD :
Azure Functions peut être utilisé pour stocker les modules de votre application VOD. Les modules d’une application VOD peuvent inclure :

Module de planification de travail
Le module de planification de travail permet d’envoyer de nouveaux travaux à un cluster Media Services (deux instances ou plus dans différentes régions). Il effectue le suivi de l’état d’intégrité de chaque instance Media Services et envoie un nouveau travail à l’instance intègre suivante.

Module d’état du travail
Le module d’état du travail écoute les événements d’état de sortie du travail provenant du service Azure Event Grid. Il stocke les événements dans le magasin d’événements afin de réduire le nombre d’appels aux API Media Services passés par les autres modules.

Module d’intégrité de l’instance
Ce module effectue le suivi des travaux envoyés et détermine l’état d’intégrité de chaque instance Media Services. Il effectue le suivi des travaux terminés, des travaux ayant échoué et des travaux qui ne se sont jamais terminés.

Module de provisionnement
Ce module provisionne les ressources traitées. Il copie les données de ressources sur toutes les instances Media Services et configure le service Azure Front Door pour s’assurer que les ressources peuvent être diffusées en continu, même si certaines instances Media Services ne sont pas disponibles. Il configure également des localisateurs de streaming.

Module de vérification du travail
Ce module effectue le suivi de chaque travail envoyé, renvoie les travaux ayant échoué et effectue le nettoyage des données du travail une fois celui-ci terminé.
Il s’agit de l’icône d’App Service. App Service (et plan) Description :
Azure App Service est un service HTTP pour l’hébergement d’applications web, d’API REST et de back-ends mobiles. Il prend en charge .NET, .NET Core, Java, Node.js, PHP ou Python. Les applications s’exécutent et sont mises à l’échelle dans les environnements Windows et Linux.

Utilisation de VOD :
Chaque module est hébergé par un App Service. En savoir plus sur App Service.
Il s’agit de l’icône d’Azure Front Door. Azure Front Door Description :
Azure Front Door est utilisé pour définir, gérer et superviser le routage global du trafic web en privilégiant l’optimisation des performances et le basculement global rapide à des fins de haute disponibilité.

Utilisation de VOD :
Azure Front Door peut être utilisé pour acheminer le trafic vers des points de terminaison de streaming. En savoir plus sur Azure Front Door.
Il s’agit de l’icône d’Azure Event Grid. Azure Event Grid Description :
Créé pour les architectures basées sur les événements, Event Grid dispose d’une prise en charge intégrée pour les événements provenant des services Azure, comme les blobs de stockage et les groupes de ressources. Il prend également en charge les événements avec rubriques personnalisées. Il est possible d’utiliser des filtres pour acheminer des événements spécifiques à différents points de terminaison, multidiffuser vers des points de terminaison multiples et s’assurer que les événements sont correctement livrés. Il optimise la disponibilité via une répartition en mode natif sur plusieurs domaines d’erreur dans chaque région et sur les zones de disponibilité.

Utilisation de VOD :
Event Grid peut être utilisé pour faire le suivi de tous les événements d’application et les stocker pour conserver l’état des travaux. En savoir plus sur Azure Event Grid.
Il s’agit de l’icône d’Application Insights. Application Insights Description :
Application Insights, fonctionnalité d’Azure Monitor, est un service extensible de gestion des performances des applications (APM) destiné aux développeurs et aux professionnels de DevOps. Cette fonctionnalité est utilisée pour superviser les applications en temps réel. Elle détecte les anomalies de performances et intègre des outils d’analytique conçus pour diagnostiquer les problèmes et comprendre l’usage que les utilisateurs font d’une application. Il a été conçu pour vous permettre d’améliorer continuellement les performances et la convivialité.

Utilisation de VOD :
Tous les journaux peuvent être envoyés à Application Insights. Il est possible de voir quelle instance a traité chaque travail en recherchant les messages relatifs aux travaux correctement créés. Ces messages peuvent contenir toutes les métadonnées du travail envoyé, notamment l’identificateur unique et les informations sur le nom de l’instance. En savoir plus sur Application Insights

Architecture

Ce diagramme de haut niveau montre l’architecture de l’exemple fourni pour vous aider à démarrer avec la haute disponibilité et Media Services.

Diagramme d’architecture de haut niveau pour VOD (vidéo à la demande)

Meilleures pratiques

Régions

  • Créez au moins deux comptes Azure Media Services. Les deux comptes doivent se trouver dans des régions différentes. Pour plus d’informations, consultez Régions dans lesquelles la plateforme Azure Media Services est déployée.
  • Chargez votre média dans la région à partir de laquelle vous envisagez d’envoyer le travail.
  • Si vous devez ensuite renvoyer le travail à une autre région, vous pouvez utiliser JobInputHttp ou Copy-Blob pour copier les données du conteneur de ressources source dans un conteneur de ressources situé dans l’autre région.

Supervision

  • Abonnez-vous aux messages JobStateChange dans chaque compte via Azure Event Grid.

    • Utilisez le SDK Microsoft.Azure.EventGrid (qui prend en charge les événements Media Services en mode natif).
    • Vous pouvez également consommer des événements Event Grid via Azure Functions.

    Pour plus d'informations :

    • Consultez l’exemple d’analytique audio montrant comment surveiller un travail avec Azure Event Grid, incluant l’ajout d’un secours en cas de retard des messages Azure Event Grid pour une raison quelconque.
  • Quand vous créez un travail :

    • Sélectionnez un compte de manière aléatoire dans la liste des comptes actuellement utilisés (cette liste contient normalement les deux comptes mais, si des problèmes sont détectés, il est possible qu’elle n’en contienne qu’un seul). Si la liste est vide, déclenchez une alerte pour qu’un opérateur puisse intervenir.
    • Créez un enregistrement pour effectuer le suivi de chaque travail en cours et de la région/du compte utilisés.
  • Quand votre gestionnaire JobStateChange reçoit une notification indiquant qu’un travail a atteint l’état planifié, enregistrez le moment où il entre en état planifié et la région/le compte utilisés.

  • Quand votre gestionnaire JobStateChange reçoit une notification indiquant qu’un travail a atteint l’état de traitement, marquez l’enregistrement du travail comme étant en cours de traitement et enregistrez l’heure à laquelle il entre en état de traitement.

  • Quand votre gestionnaire JobStateChange reçoit une notification indiquant qu’un travail a atteint un état final (terminé/erroné/annulé), marquez l’enregistrement du travail de manière appropriée.

  • Faites en sorte d’avoir un processus distinct qui examine périodiquement les enregistrements des travaux

    • Si vous avez des travaux à l’état planifié qui ne sont pas passés à l’état de traitement dans un laps de temps raisonnable pour une région donnée, supprimez cette région de la liste des comptes actuellement utilisés. En fonction de vos exigences métier, vous pouvez décider d’annuler ces travaux immédiatement et de les renvoyer à l’autre région. Ou bien vous pouvez leur accorder un peu plus de temps pour passer à l’état suivant.
    • Si une région a été supprimée de la liste des comptes, analysez-la en vue de sa récupération avant de la rajouter à la liste. Vous pouvez surveiller l’intégrité régionale au travers des travaux existants dans la région (en vérifiant s’ils n’ont pas été annulés et renvoyés), en rajoutant le compte à la liste après un certain temps, et via des opérateurs surveillant les communications Azure en lien avec des pannes susceptibles d’affecter Azure Media Services.

Obtenir de l’aide et du support

Vous pouvez contacter Media Services pour vous poser des questions ou suivre nos mises à jour en suivant l’une des méthodes suivantes :