Este artigo apresenta uma arquitetura híbrida para streaming e análise de vídeo. Ele executa aplicativos sensíveis à latência no MEC público do Azure e executa outros serviços, como plano de controle, IA e serviços de machine learning, em uma região do Azure.
Observação
O streaming de baixa latência que essa arquitetura fornece aos usuários da Web se aplica somente aos usuários que são roteados para o MEC público do Azure que faz o processamento de vídeo e hospeda o aplicativo Web. Em geral, isso não inclui usuários em outras áreas geográficas.
Arquitetura
Baixe um Arquivo Visio dessa arquitetura.
Workflow
O vídeo da câmera é transmitido para o ponto de extremidade do serviço de processamento de vídeo, que é executado no MEC público do Azure. Uma rede 5G de telecomunicações transporta o fluxo.
O pipeline de processamento de vídeo é executado em um cluster do Serviço de Kubernetes do Azure (AKS) e processa o vídeo. Ter o serviço no MEC público do Azure reduz o tempo de ida e volta da rede e os custos de largura de banda em comparação com o envio do vídeo para a nuvem para processamento.
O serviço de inferência de IA, que também é executado no MEC público do Azure, analisa o vídeo depois que ele é processado pelo pipeline de processamento e fornece insights.
Depois que o pipeline de inferência analisa o vídeo, o aplicativo Web obtém o fluxo de vídeo do serviço de publicação e o distribui aos usuários da Web. Ele também pode distribuir arquivos estáticos usando perfis da Rede de Entrega de Conteúdo do Azure.
Os insights de vídeo e os metadados gerados pelo serviço de inferência são enviados para a nuvem, onde são armazenados no Banco de Dados SQL do Azure. O pipeline de processamento de vídeo pode armazenar o vídeo bruto em uma conta de Armazenamento de Blobs do Azure na nuvem para processamento adicional.
Os dados capturados no armazenamento podem ser usados para várias finalidades:
- O Azure Machine Learning pode executar processos em lote de aprendizado de máquina para melhorar seus modelos.
- O Microsoft Power BI e o Hub de Notificação do Azure podem usar os dados para enviar notificações e preencher painéis.
O Machine Learning atualiza os modelos de inferência de IA executados no MEC público do Azure.
Componentes
Há duas listas de componentes nesta seção, aqueles que estão no MEC público do Azure e aqueles que estão na região do Azure.
MEC pública do Azure
-
Processamento de vídeo no MEC público do Azure: o pipeline de processamento de vídeo, o serviço de inferência de IA e o aplicativo Web são aplicativos baseados em microsserviços executados no cluster do Serviço de Kubernetes do Azure (AKS). O serviço de inferência de IA usa modelos de inferência de IA para analisar os fluxos de vídeo e fornecer insights. O aplicativo Web distribui o vídeo processado para usuários da Web.
- Pipeline de processamento de vídeo: um pipeline de processamento de vídeo típico tem serviços que capturam feeds de vídeo de câmeras, processam-nos e os publicam. A implantação desses serviços na borda reduz a latência e o uso de largura de banda em comparação com o envio do vídeo para a nuvem para processamento.
- Serviço de inferência de IA: Este serviço toma como entrada o vídeo processado e fornece insights sobre ele. Você pode implantar modelos de IA do Azure ou modelos de IA de outras fontes que podem ajudar com tarefas como detecção e rastreamento de objetos e pessoas, classificação de imagens, detecção de anomalias e alertas de segurança.
- Serviço de aplicativo Web: o serviço de aplicativo Web hospeda a página da Web que fornece vídeos aos usuários. O aplicativo Web recebe a entrada do serviço de publicação do pipeline de processamento de vídeo e transmite o feed ao vivo.
- Perfis da Rede de Entrega de Conteúdo do Azure: o aplicativo Web pode usar perfis da Rede de Entrega de Conteúdo para transmitir imagens estáticas do aplicativo Web para ajudar a melhorar a capacidade de resposta do aplicativo.
Região do Azure
- Serviço de banco de dados: o Azure fornece várias ofertas de banco de dados, como Banco de Dados SQL do Azure, Banco de Dados do Azure para MySQL, Banco de Dados do Azure para PostgreSQL e Azure Cosmos DB. Você pode usar qualquer um deles para armazenar a saída do serviço de inferência.
- Armazenamento de Blobs do Azure: você pode usar o armazenamento de blob para manter o fluxo de vídeo para usos futuros, como vídeo sob demanda e análise de vídeo.
- Aprendizado de Máquina do Azure: nessa arquitetura, o Aprendizado de Máquina recebe a entrada do banco de dados para treinar modelos de aprendizado de máquina e, em seguida, atualiza os modelos que o serviço de inferência usa.
- Outros serviços: você pode usar os Hubs de Notificação do Azure para alertar os usuários sobre anomalias detectadas no vídeo, o Microsoft Power BI para preencher painéis e gerar relatórios e o Azure Stream Analytics para obter informações sobre seus fluxos de vídeo.
Alternativas
Uma alternativa à implantação do AKS é implantar o Azure IoT Edge no MEC público do Azure e executar módulos do Azure que fornecem funcionalidade semelhante aos serviços já mencionados. Você pode usar:
- Azure Video Analyzer para criar o pipeline de processamento de vídeo.
- Serviços Cognitivos do Azure para analisar o vídeo para fornecer insights.
- Azure Stream Analytics para implantar serviços de análise no vídeo transmitido.
- Azure Functions para executar ações na análise e nos insights.
Detalhes do cenário
Hospedar aplicativos na borda pode torná-los mais responsivos e facilitar os requisitos de largura de banda da rede. A computação de borda de acesso múltiplo pública do Azure (Azure public MEC) é uma solução de computação de borda que reúne um portfólio de serviços de computação, rede e aplicativos da Microsoft gerenciados na nuvem. Você pode usá-lo para explorar a velocidade do 5G e desbloquear os principais cenários de baixa latência e alta largura de banda.
No entanto, o MEC público do Azure não deve hospedar toda a pilha de aplicativos na borda. É fundamental entender quais partes do seu aplicativo devem ser executadas no MEC público do Azure e quais devem ser executadas em uma região do Azure ou local.
A transmissão ao vivo de eventos requer processamento de vídeo rápido para fornecer aos usuários uma visualização personalizada e em tempo real, por isso é um bom candidato para uma solução de borda.
Possíveis casos de uso
As organizações que precisam de resposta rápida do aplicativo, mesmo em situações de alta demanda, devem considerar o uso do MEC público do Azure para hospedar partes sensíveis à latência do aplicativo.
Em particular, a análise de vídeo baseada em modelos de visão computacional é usada por várias indústrias, incluindo varejo de próxima geração, cidades inteligentes, veículos conectados. Tais aplicações são candidatas a essa arquitetura.
Considerações
Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework. A estrutura consiste em cinco pilares de excelência em arquitetura:
- Confiabilidade
- Segurança
- Otimização de custos
- Excelência operacional
- Eficiência de desempenho
Implantação
Normalmente, há um prêmio de preço associado à implantação de recursos no MEC público do Azure. Para manter os custos baixos, é importante que você identifique os componentes críticos e sensíveis à latência que podem se beneficiar da execução no MEC público do Azure. Todos os outros componentes do aplicativo devem ser implantados na região do Azure para reduzir custos.
Escalabilidade
O MEC público do Azure oferece suporte ao AKS e aos Conjuntos de Dimensionamento de Máquina Virtual do Azure que você pode usar para dimensionar suas cargas de trabalho sensíveis à latência e à computação para corresponder aos requisitos dos aplicativos.
Opções de balanceamento de carga
O AKS suporta internamente várias opções para balancear a carga do tráfego de entrada. O NGINX Ingress Controller é mostrado no diagrama de arquitetura, mas há outros load balancers que você pode usar com o AKS. Para obter mais informações, consulte Usar um load balancer interno com o Serviço de Kubernetes do Azure (AKS).
Desempenho
O MEC público do Azure fornece vários SKUs de máquina virtual, incluindo SKUs específicos da GPU para processamento de fluxo de vídeo com uso intensivo de computação.
Opções de armazenamento
O MEC público do Azure não oferece suporte a contas de Armazenamento do Azure, portanto, o Armazenamento de blob só pode residir na região do Azure.
Otimização de custos
A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.
- Confira Preços do Azure para informações sobre preços.
- Use a Calculadora de preços do Azure para estimar o custo da implantação dessa solução.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Autor principal:
- Adhip Gupta | Gerente de Programas Sênior
Próximas etapas
- Computação de borda de acesso múltiplo (MEC) pública do Azure
- Documentação do Serviço de Kubernetes do Azure (AKS)
- Documentação do Azure Machine Learning
- Documentação da CDN do Azure