Alta disponibilidad con Media Services y Vídeo bajo demanda (VOD)

Logotipo de Media Services v3


Advertencia

Azure Media Services se retirará el 30 de junio de 2024. Para obtener más información, consulte la Guía de retirada de AMS.

Alta disponibilidad para VOD

Hay un modelo de diseño de alta disponibilidad llamado Geodes en la documentación de la arquitectura de Azure. Describe cómo se implementan los recursos duplicados en distintas regiones geográficas para proporcionar escalabilidad y resistencia. Puede usar los servicios de Azure para crear este tipo de arquitectura con el fin de tratar muchas consideraciones de diseño de alta disponibilidad, como la redundancia, la supervisión del estado, el equilibrio de carga y la copia de seguridad y recuperación de datos. A continuación se describe una arquitectura de este tipo con detalles sobre cada servicio que se usa en la solución, así como la forma en que se pueden usar los servicios individuales para crear una arquitectura de alta disponibilidad para la aplicación VOD.

Muestra

Hay un ejemplo disponible que puede usar para familiarizarse con la alta disponibilidad con Media Services y Vídeo bajo demanda (VOD). También ofrece información más detallada sobre la forma en que se usan los servicios en un escenario VOD. El ejemplo no está pensado para usarse en producción en su forma actual. Revise detenidamente el código de ejemplo y el archivo Léame, especialmente la sección sobre Modos de error antes de integrarlo en una aplicación de producción. Una implementación de producción de alta disponibilidad para Vídeo bajo demanda (VOD) también debe revisar detenidamente su estrategia de Content Delivery Network (CDN). Consulte el código en GitHub.

Información general de los servicios

Entre los servicios que se usan en esta arquitectura de ejemplo se incluyen los siguientes:

Icono Nombre Descripción
Este es el icono de la cuenta de Media Services. Cuenta de Media Services Descripción:
una cuenta de Media Services es el punto de partida para la administración, el cifrado, la codificación, el análisis y el streaming de contenido multimedia en Azure. Se asocia a un recurso de la cuenta de Azure Storage. La cuenta y todo el almacenamiento asociado deben estar en la misma suscripción de Azure.

Uso de VOD:
estos son los servicios que se usan para codificar y proporcionar los recursos de vídeo y audio. Para lograr una alta disponibilidad, se tendrían que configurar al menos dos cuentas de Media Services, cada una en una región diferente. Obtenga más información sobre Azure Media Services.
Este es el icono de la cuenta de almacenamiento. Cuenta de almacenamiento Descripción:
una cuenta de Azure Storage contiene todos los objetos de datos de Azure Storage: blobs, archivos, colas, tablas y discos. Es posible acceder a los datos desde cualquier parte del mundo a través de HTTP o HTTPS.

Cada cuenta de Media Services, en cada región, tendría una cuenta de almacenamiento en la misma región.

Uso de VOD:
puede almacenar datos de entrada y salida para el streaming y el procesamiento de VOD. Obtenga más información sobre Azure Storage.
Este es el icono de la cola de Azure Storage. Cola de Azure Storage Descripción:
El almacenamiento en cola de Azure es un servicio para almacenar grandes cantidades de mensajes a los que puede obtenerse acceso desde cualquier lugar del mundo a través de llamadas autenticadas con HTTP o HTTPS.

Uso de VOD:
las colas se pueden usar para enviar y recibir mensajes a fin de coordinar actividades entre distintos módulos. En el ejemplo se usa una instancia de Azure Storage Queue, pero Azure proporciona otros tipos de colas, como las colas de confianza de Service Bus y Service Fabric, que pueden adaptarse mejor a sus necesidades. Obtenga más información sobre la cola de Azure.
Este es el icono de Azure Cosmos DB. Azure Cosmos DB Descripción:
Azure Cosmos DB es un servicio de Microsoft, de bases de datos multimodelo y de distribución global que escala de forma independiente el rendimiento y el almacenamiento en cualquier número de regiones de Azure del mundo.

Uso de VOD:
las tablas se pueden usar para almacenar registros de estado de salida del trabajo y realizar un seguimiento del estado de mantenimiento de cada instancia de Media Services. También puede realizar un seguimiento del estado de cada llamada a la API de Media Services o registrarlo. Obtenga más información sobre Azure Cosmos DB.
Este es el icono de identidad administrada. Identidad administrada Descripción:
la identidad administrada es una característica de Azure AD que proporciona una identidad administrada automáticamente en Azure AD. Puede usarse para autenticarse en cualquier servicio que admita la autenticación de Azure AD, incluido Key Vault, sin necesidad de almacenar las credenciales en el código.

Uso de VOD:
Azure Functions puede usar la identidad administrada para autenticarse en instancias de Media Services con el fin de conectarse a Key Vault. Obtenga más información sobre la identidad administrada.
Este es el icono de Key Vault. Key Vault Descripción:
Azure Key Vault se puede utilizar para almacenar de forma segura y controlar estrechamente el acceso a los tokens, contraseñas, certificados, claves de API y otros secretos. También se puede usar como una solución de administración de claves. Azure Key Vault facilita la creación y control de las claves de cifrado utilizadas para cifrar los datos. Puede aprovisionar, administrar e implementar fácilmente certificados públicos y privados de la Capa de sockets seguros y de Seguridad de la capa de transporte (SSL/TLS) para su uso con Azure y sus recursos internos conectados. Las claves y secretos se pueden proteger mediante software o mediante dispositivos HSM validados FIPS 140-2 de nivel 2.

Uso de VOD:
Key Vault se puede usar para configurar directivas de acceso para la entidad de servicio de la aplicación. Se puede usar para almacenar la cadena de conexión en cuentas de almacenamiento. Usamos Key Vault para almacenar cadenas de conexión en cuentas de almacenamiento y Cosmos DB. También puede usar Key Vault para almacenar la configuración general del clúster. Para cada instancia de Media Services puede almacenar el identificador de suscripción, el nombre del grupo de recursos y el nombre de cuenta. Para obtener más detalles, consulte cómo se usa en el ejemplo. Obtenga más información sobre Key Vault.
Este es el icono de Azure Functions. Azure Functions Descripción:
ejecute pequeños fragmentos de código (denominados "funciones") sin preocuparse por la infraestructura de la aplicación con Azure Functions. Obtenga más información sobre Azure Functions.

Uso de VOD:
Azure Functions se puede usar para almacenar y hospedar los módulos de la aplicación VOD. Entre los módulos para una aplicación VOD podrían incluirse los siguientes:

Módulo de programación de trabajos
El módulo de programación de trabajos sería para enviar nuevos trabajos a un clúster de Media Services (dos o más instancias en regiones diferentes). Realizaría un seguimiento del estado de mantenimiento de cada instancia de Media Services y enviaría un nuevo trabajo a la siguiente instancia correcta.

Módulo de estado del trabajo
El módulo de estado del trabajo escuchará los eventos de estado de salida del trabajo procedentes del servicio Azure Event Grid. Almacenaría eventos de almacenamiento en el almacén de eventos para minimizar el número de llamadas del resto de los módulos a las API de Media Services.

Módulo de estado de la instancia
Este módulo realizaría un seguimiento de los trabajos enviados y determinaría el estado de mantenimiento de cada instancia de Media Services. Realizaría un seguimiento de los trabajos finalizados, aquellos con error y los que nunca finalizaron.

Módulo de aprovisionamiento
Este módulo aprovisionaría recursos procesados. Copiaría los datos de recursos en todas las instancias de Media Services y configuraría el servicio Azure Front Door para asegurarse de la capacidad de transmisión de los recursos incluso sin estar disponibles algunas instancias de Media Services. También configuraría localizadores de streaming.

Módulo de comprobación de trabajos
Este módulo realizaría un seguimiento de cada trabajo enviado, volvería a enviar los trabajos con error y realizaría la limpieza de los datos del trabajo tras finalizar correctamente un trabajo.
Este es el icono de App Service. App Service (y plan) Descripción:
Azure App Service es un servicio basado en HTTP para hospedar aplicaciones web, API de REST y back-ends para dispositivos móviles. Admite .NET, .NET Core, Java, Node.js, PHP o Python. Las aplicaciones se ejecutan y escalan en los entornos Windows y Linux.

Uso de VOD:
cada módulo se hospedaría en una instancia de App Service. Obtenga más información sobre App Service.
Este es el icono de Azure Front Door. Azure Front Door Descripción:
Azure Front Door se usa para definir, administrar y supervisar el enrutamiento global del tráfico web mediante la optimización para obtener el mejor rendimiento y la conmutación por error global rápida para alta disponibilidad.

Uso de VOD:
Azure Front Door podría usarse para enrutar el tráfico a los puntos de conexión de streaming. Obtenga más información sobre Azure Front Door.
Este es el icono de Azure Event Grid. Azure Event Grid Descripción:
Event Grid, creado para arquitecturas basadas en eventos, tiene compatibilidad integrada para eventos procedentes de los servicios de Azure, como los blobs de almacenamiento y los grupos de recursos. También es compatible con eventos de temas personalizados. Los filtros se pueden usar para enrutar eventos específicos a distintos puntos de conexión, multidifusión a varios puntos de conexión y asegurarse de que los eventos se entregan de forma confiable. Maximiza la disponibilidad mediante la distribución nativa por múltiples dominios de error en cada región, y por zonas de disponibilidad.

Uso de VOD:
Event Grid se puede usar para realizar un seguimiento de todos los eventos de aplicación y almacenarlos para conservar el estado del trabajo. Obtenga más información sobre Azure Event Grid.
Este es el icono de Application Insights. Application Insights Descripción:
Application Insights es una característica de Azure Monitor que es un servicio de Application Performance Management (APM) extensible para desarrolladores y profesionales de DevOps. Se usa para supervisar las aplicaciones en directo. Detecta anomalías de rendimiento e incluye herramientas de análisis para diagnosticar problemas y comprender lo que hacen realmente los usuarios con una aplicación. Está diseñado para ayudarle a mejorar continuamente el rendimiento y la facilidad de uso.

Uso de VOD:
todos los registros se pueden enviar a Application Insights. Sería posible ver qué instancia procesó cada trabajo buscando mensajes de trabajo creados correctamente. Podría contener todos los metadatos de trabajo enviados, incluido el identificador único y la información del nombre de la instancia. Más información sobre Application Insights.

Architecture

Este diagrama de alto nivel muestra la arquitectura del ejemplo proporcionado para que pueda comenzar a usar la alta disponibilidad y Media Services.

Diagrama de arquitectura de alto nivel de Vídeo bajo demanda (VOD)

Procedimientos recomendados

Regions

  • Cree dos cuentas de Azure Media Services (o más). Las dos cuentas deben estar en distintas regiones. Para más información, consulte las regiones en las que se implementa el servicio Azure Media Services.
  • Cargue los medios en la misma región desde la que planea enviar el trabajo.
  • Si luego necesita volver a enviar el trabajo a otra región, puede usar JobInputHttp o Copy-Blob para copiar los datos del contenedor de recursos de origen en un contenedor de recursos de la región alternativa.

Supervisión

  • Suscríbase a mensajes de JobStateChange en cada cuenta a través de Azure Event Grid.

    • Use el SDK Microsoft.Azure.EventGrid (que admite eventos de Media Services de forma nativa).
    • También puede consumir eventos Event Grid a través de Azure Functions.

    Para obtener más información:

    • consulte el ejemplo de análisis de audio que muestra cómo supervisar un trabajo con Azure Event Grid, incluida la adición de una reserva en caso de que los mensajes de Azure Event Grid se retrasen por algún motivo.
  • Al crear un trabajo:

    • seleccione aleatoriamente una cuenta de la lista de cuentas usadas actualmente (esta lista contendrá normalmente ambas cuentas, pero si se detectan problemas, es posible que solo contenga una cuenta). Si la lista está vacía, se genera una alerta para que un operador pueda investigar.
    • Cree un registro para realizar un seguimiento de cada trabajo en proceso y la región o cuenta usadas.
  • Cuando el controlador de JobStateChange reciba una notificación de que un trabajo ha alcanzado el estado programado, registre la hora en que entra en el estado programado y la región o cuenta usadas.

  • Cuando el controlador de JobStateChange reciba una notificación de que un trabajo ha alcanzado el estado de procesamiento, marque el registro del trabajo como en proceso y registre la hora en que entra en el estado de procesamiento.

  • Cuando el controlador de JobStateChange reciba una notificación de que un trabajo ha alcanzado un estado final (Finalizado/Con errores/Cancelado), marque el registro del trabajo correctamente.

  • Tenga un proceso independiente que examine periódicamente los registros de los trabajos.

    • Si tiene trabajos en el estado programado que no han avanzado al estado de procesamiento en una cantidad de tiempo razonable para una región determinada, quite esa región de la lista de cuentas usadas actualmente. En función de los requisitos de su empresa, podría decidir cancelar esos trabajos de inmediato y volver a enviarlos a la región. O bien, puede darles más tiempo para pasar al estado siguiente.
    • Si se ha quitado una región de la lista de cuentas, debe comprobar que se haya recuperado antes de volver a agregarla a la lista. El estado regional se puede supervisar a través de los trabajos existentes en la región (si no se cancelaron y reenviaron); para ello, agregue la cuenta de nuevo a la lista después de un período de tiempo, y use los operadores que supervisan las comunicaciones de Azure sobre las interrupciones que pueden afectar a Azure Media Services.

Obtener ayuda y soporte técnico

Puede ponerse en contacto con Media Services con preguntas o seguir nuestras actualizaciones mediante uno de los métodos siguientes: