Share via


Alta Disponibilidade com Serviços de Mídia e VoD (Vídeo por Demanda)

Logotipo dos Serviços de Mídia v3


Aviso

Os Serviços de Mídia do Azure serão desativados em 30 de junho de 2024. Para obter mais informações, consulte o Guia de Desativação do AMS.

Alta disponibilidade para VoD

Há um padrão de design de alta disponibilidade chamado Geodes na documentação da Arquitetura do Azure. Ele descreve como os recursos duplicados são implantados em regiões geográficas diferentes para fornecer escalabilidade e resiliência. Você pode usar os serviços do Azure para criar uma arquitetura para abranger muitas considerações de design de alta disponibilidade, como redundância, monitoramento de integridade, balanceamento de carga e backup e recuperação de dados. Uma dessas arquiteturas é descrita abaixo com detalhes sobre cada serviço usado na solução, bem como a maneira que os serviços individuais podem ser usados para criar uma arquitetura de alta disponibilidade para o aplicativo VoD.

Amostra

Há uma amostra disponível para uso para você se familiarizar com a alta disponibilidade com Serviços de Mídia e VoD (Vídeo por Demanda). Ela também traz mais detalhes sobre como os serviços são usados para um cenário de VoD. A amostra não se destina para uso em produção em sua forma atual. Revise atentamente o código de exemplo e o Leiame, principalmente a seção sobre os Modos de Falha antes de integrá-lo a um aplicativo de produção. Uma implementação de produção de alta disponibilidade para VoD (Vídeo por demanda) também deve revisar cuidadosamente a estratégia de CDN (Rede de Distribuição de Conteúdo). Confira o código no GitHub.

Visão geral dos serviços

Os serviços usados nesta arquitetura de exemplo incluem:

ícone Nome Descrição
Este é o ícone da conta de Serviços de Mídia. Conta de Serviços de Mídia Descrição:
Uma conta de Serviços de Mídia é o ponto de partida para o gerenciamento, a criptografia, a codificação, a análise e o streaming de conteúdo de mídia no Azure. Ele está associado a um recurso de conta do Armazenamento do Azure. A conta e todo o armazenamento associado precisam estar na mesma assinatura do Azure.

Uso do VoD:
Esses são os serviços usados para codificar e entregar seus ativos de áudio e vídeo. Para alta disponibilidade, você deve configurar pelo menos duas contas de Serviços de Mídia, cada uma em uma região diferente. Saiba mais sobre os Serviços de Mídia do Azure.
Este é o ícone da conta de armazenamento. Conta de armazenamento Descrição:
Uma conta de armazenamento do Azure contém todos os objetos de dados do Armazenamento do Azure: blobs, arquivos, filas, tabelas e discos. Os dados podem ser acessados de qualquer lugar do mundo via HTTP ou HTTPS.

Cada conta de Serviços de Mídia, em cada região, tem uma conta de armazenamento na mesma região.

Uso do VoD:
Você pode armazenar dados de entrada e de saída para o processamento e streaming de VoD. Saiba mais sobre o Armazenamento do Azure.
Este é o ícone de Fila de Armazenamento do Azure. Fila de Armazenamento do Azure Descrição:
O armazenamento de filas do Azure é um serviço para armazenamento de um grande número de mensagens que podem ser acessadas de qualquer lugar do mundo por meio de chamadas autenticadas usando HTTP ou HTTPS.

Uso do VoD:
As filas podem ser usadas para enviar e receber mensagens para coordenar atividades entre diferentes módulos. A amostra usa uma Fila de Armazenamento do Azure, mas o Azure fornece outros tipos de filas, como o Barramento de Serviço e Filas Confiáveis do Service Fabric, que podem atender melhor às suas necessidades. Saiba mais sobre a Fila do Azure.
Este é um ícone do Azure Cosmos DB. Azure Cosmos DB Descrição:
O Azure Cosmos DB é um serviço de banco de dados de vários modelos distribuído globalmente da Microsoft, que dimensiona de forma independente a taxa de transferência e armazenamento em qualquer número de regiões do Azure mundialmente.

Uso do VoD:
As tabelas podem ser usadas para armazenar registros de status de saída do trabalho e para acompanhar o estado de integridade de cada instância dos Serviços de Mídia. Você também pode rastrear/registrar o status de cada chamada para a API dos Serviços de Mídia. Saiba mais sobre o Azure Cosmos DB.
Este é o ícone de identidade gerenciada. Identidade Gerenciada Descrição:
A identidade gerenciada é um recurso do Azure AD que fornece uma identidade gerenciada automaticamente no Azure AD. Ela pode ser usada para se autenticar em qualquer serviço que dê suporte à autenticação do Azure AD, incluindo o Key Vault, sem armazenar credenciais no código.

Uso do VoD:
O Azure Functions pode usar a Identidade Gerenciada para se autenticar em instâncias dos Serviços de Mídia para se conectar ao Key Vault. Saiba mais sobre a Identidade Gerenciada.
Este é o ícone do Key Vault. Key Vault Descrição:
O Azure Key Vault pode ser usado para armazenar com segurança e controlar firmemente o acesso a tokens, senhas, certificados, chaves de API e outros segredos. Ele também pode ser usado como uma solução de Gerenciamento de Chaves. O Azure Key Vault torna fácil criar e controlar as chaves de criptografia usadas para criptografar seus dados. Ele também pode provisionar, gerenciar e implantar com facilidade certificados TLS/SSL (protocolo TLS/protocolo SSL) públicos e privados para uso com o Azure e recursos internos conectados. Chaves e segredos podem ser protegidos por software ou HSMs validados por FIPS 140-2 Nível 2.

Uso do VoD:
O Key Vault pode ser usado para configurar políticas de acesso para a entidade de serviço do aplicativo. Ele pode ser usado para armazenar a cadeia de conexão em contas de armazenamento. Usamos o Key Vault para armazenar cadeias de conexão em contas de armazenamento e no Cosmos DB. Você também pode usar o Key Vault para armazenar a configuração geral do cluster. Para cada Instância do Serviço de Mídias, você pode armazenar a ID da assinatura, o nome do grupo de recursos e o nome da conta. Para obter mais detalhes, confira como ele é usado na amostra. Saiba mais sobre o Key Vault.
Este é o ícone do Azure Functions. Funções do Azure Descrição:
Execute pequenas partes de código (chamadas de "funções") sem se preocupar com a infraestrutura do aplicativo com o Azure Functions. Saiba mais sobre o Azure Functions.

Uso do VoD:
O Azure Functions pode ser usado para armazenar o host dos módulos do aplicativo VoD. Os módulos para um aplicativo VoD podem incluir:

Módulo de agendamento de trabalho
O módulo de agendamento de trabalho serve para enviar novos trabalhos a um cluster dos Serviços de Mídia (duas ou mais instâncias em regiões diferentes). Ele acompanha o status de integridade de cada instância dos Serviços de Mídia e envia um novo trabalho para a próxima instância íntegra.

Módulo de status do trabalho
O módulo de status do trabalho escuta eventos de status de saída do trabalho provenientes do serviço de Grade de Eventos do Azure. Ele armazena eventos no repositório de eventos para minimizar o número de chamadas para APIs de Serviços de Mídia pelo restante dos módulos.

Módulo de integridade da instância
Este módulo acompanha os trabalhos enviados e determina o status de integridade de cada instância dos Serviços de Mídia. Ele acompanha os trabalhos concluídos, trabalhos com falha e trabalhos que nunca foram concluídos.

Módulo de provisionamento
Este módulo provisiona ativos processados. Ele copia os dados do ativo para todas as instâncias dos Serviços de Mídia e configura o Azure Front Door Service para garantir que os ativos possam ser transmitidos mesmo se algumas instâncias dos Serviços de Mídia não estiverem disponíveis. Ele também configura localizadores de streaming.

Módulo de verificação de trabalho
Este módulo acompanha cada trabalho enviado, reenvia os trabalhos com falha e executa a limpeza dos dados de trabalho quando um trabalho for concluído com êxito.
Este é o ícone do Serviço de Aplicativo. Serviço de Aplicativo (e plano) Descrição:
O Serviço de Aplicativo do Azure é um serviço com base em HTTP para hospedagem de aplicativos Web, APIs REST e back-ends móveis. Ele dá suporte a .NET, .NET Core, Java, Node.js, PHP ou Python. Os aplicativos são executados e escalados em ambientes baseados no Windows e no Linux.

Uso do VoD:
Cada módulo será hospedado por um Serviço de Aplicativo. Saiba mais sobre Serviço de Aplicativo.
Este é o ícone do Azure Front Door. Porta da frente do Azure Descrição:
O Azure Front Door é usado para definir, gerenciar e monitorar o roteamento global para o tráfego da Web, otimizando-o para melhor desempenho e rápido failover global para alta disponibilidade.

Uso do VoD:
O Azure Front Door pode ser usado para encaminhar o tráfego para pontos de extremidade de streaming. Saiba mais sobre o Azure Front Door.
Este é o ícone da Grade de Eventos do Azure. Grade de Eventos do Azure Descrição:
Criada para arquiteturas baseadas em evento, a Grade de Eventos tem suporte interno para eventos provenientes de serviços do Azure, como blobs de armazenamento e grupos de recursos. Ela também tem suporte para eventos de tópico personalizado. Filtros podem ser usados para encaminhar eventos específicos a pontos de extremidade diferentes, multicast para vários pontos de extremidade e conferir se os eventos são distribuídos de forma confiável. Ela maximiza a disponibilidade, distribuindo-se nativamente entre vários domínios de falha em todas as regiões e nas zonas de disponibilidade.

Uso do VoD:
A Grade de Eventos pode ser usada para acompanhar todos os eventos do aplicativo e armazená-los para manter o status do trabalho. Saiba mais sobre a Grade de Eventos do Azure.
Este é o ícone do Application Insights. Application Insights Descrição:
O Application Insights, um recurso do Azure Monitor, é um serviço de APM (gerenciamento de desempenho de aplicativos) extensível para desenvolvedores e profissionais de DevOps. Ele é usado para monitorar aplicativos dinâmicos. Ele detecta anomalias de desempenho e inclui ferramentas de análise para diagnosticar problemas e compreender o que os usuários realmente fazem com um aplicativo. Ele foi projetado para ajudar você a aprimorar continuamente o desempenho e a usabilidade do seu aplicativo.

Uso do VoD:
Todos os logs podem ser enviados para o Application Insights. É possível ver qual instância processou cada trabalho ao pesquisar mensagens de trabalho criadas com êxito. Ele pode conter todos os metadados de trabalho enviados, incluindo o identificador exclusivo e as informações de nome da instância. Saiba mais sobre o Application Insights.

Arquitetura

Este diagrama de alto nível mostra a arquitetura da amostra fornecida para ajudá-lo a começar a usar a alta disponibilidade e os serviços de mídia.

Diagrama  de Arquitetura de Alto Nível do VoD (vídeo por demanda)

Práticas recomendadas

Regiões

  • Crie duas (ou mais) contas dos Serviços de Mídia do Azure. As duas contas precisam estar em regiões diferentes. Para obter mais informações, confira Regiões nas quais o serviço dos Serviços de Mídia do Azure está implantado.
  • Carregue a mídia para a mesma região da qual você está planejando enviar o trabalho.
  • Se precisar reenviar o trabalho para outra região, poderá usar JobInputHttp ou usar Copy-Blob para copiar os dados do contêiner de ativos de origem para um contêiner de ativos na região alternativa.

Monitoramento

  • Assine para receber JobStateChange mensagens em cada conta por meio da Grade de Eventos do Azure.

    • Use o SDK Microsoft.Azure.EventGrid (que dá suporte a eventos dos Serviços de Mídia no modo nativo).
    • Você também pode consumir eventos de Grade de Eventos pelo Azure Functions.

    Para mais informações:

    • Confira a amostra de Análise de Audio, que mostra como monitorar um trabalho com a Grade de Eventos do Azure, incluindo a adição de um fallback caso as mensagens da Grade de Eventos do Azure se atrasem.
  • Ao criar um trabalho:

    • Selecione aleatoriamente uma conta na lista de contas usadas atualmente (essa lista normalmente conterá as duas contas, mas poderá conter apenas uma se houver algum problema). Se a lista estiver vazia, gere um alerta para que um operador possa investigar.
    • Crie um registro para acompanhar cada trabalho em andamento e a região/conta usada.
  • Quando o identificador JobStateChange receber uma notificação de que um trabalho atingiu o estado agendado, registre a hora em que ele entra no estado agendado e a região/conta usada.

  • Quando o identificador JobStateChange receber uma notificação de que um trabalho atingiu o estado de processamento, marque o registro para o trabalho como em processamento e registre a hora em que ele entra no estado de processamento.

  • Quando o identificador JobStateChange receber uma notificação de que um trabalho atingiu um estado final (concluído/com erro/cancelado), marque o registro para o trabalho adequadamente.

  • Tenha um processo separado que examina periodicamente os registros dos trabalhos

    • Se você tiver trabalhos no estado agendado que não avançaram para o estado de processamento em um período razoável para uma determinada região, remova essa região da lista de contas atualmente usadas. Dependendo dos requisitos de negócios, você pode optar por cancelar esses trabalhos imediatamente e reenviá-los para a outra região. Ou você pode dar mais tempo para que eles passem para o próximo estado.
    • Se uma região tiver sido removida da lista de contas, monitore-a para recuperação antes de adicioná-la de volta à lista. A integridade regional pode ser monitorada por meio dos trabalhos existentes na região (se eles não foram cancelados e reenviados). Para isso, adicione a conta de volta à lista após um período e tenha operadores monitorando as comunicações do Azure sobre interrupções que podem estar afetando os Serviços de Mídia do Azure.

Obter ajuda e suporte

Você pode entrar em contato com os Serviços de Mídia com dúvidas ou seguir nossas atualizações por um dos seguintes métodos: