Haute disponibilité avec Media Services et VOD (vidéo à la demande)
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 |
---|---|---|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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é. |
|
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. |
|
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. |
|
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. |
|
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.
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
ouCopy-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 :
- Q & R
-
Stack Overflow. Balisez les questions avec
azure-media-services
. - @MSFTAzureMedia ou utiliser @AzureSupport pour demander du support.
- Ouvrez un ticket de support via le Portail Azure.