Processamento de fluxo de eventos sem servidor em uma VNet com pontos de extremidade privados

Link Privado do Azure
Hubs de eventos do Azure
Funções do Azure
Azure Cosmos DB

Ideias de soluções

Esse artigo é uma ideia de solução. Caso deseje que ampliemos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações sobre implementação ou diretrizes de preços, fale conosco enviando seus comentários no GitHub.

Este artigo descreve uma arquitetura orientada a eventos sem servidor em uma rede virtual que ingere e processa um fluxo de dados e, depois, grava os resultados em um banco de dados.

Arquitetura

Diagram showing data flowing into a VNet and then being processed by the architecture described in this article.

Fluxo de dados

  1. A integração de rede virtual é usada para colocar todos os recursos do Azure sob os Pontos de Extremidade Privados do Azure.
  2. Os eventos chegam ao Hub de Eventos de Entrada.
  3. A remoção de lotes e a filtragem no Azure Function são disparadas para tratar o evento. Esta etapa filtra eventos indesejados e remove lotes nos eventos recebidos antes de enviá-los ao Hub de Eventos de Saída.
  4. Se a remoção de lotes e filtragem no Azure Function falhar ao armazenar o evento com êxito, o evento será enviado para o Hub de Eventos de Mensagens Mortas 1.
  5. Os eventos que chegam ao Hub de Eventos de Saída disparam o Azure Function Transformador. Esse Azure Function transforma o evento em uma mensagem para a instância do Azure Cosmos DB.
  6. O evento é armazenado em um banco de dados do Azure Cosmos DB.
  7. Se o Azure Function Transformador não conseguir armazenar o evento com êxito, o evento será salvo no Hub de Eventos de Mensagens Mortas 2.

Observação

Para simplificar, as sub-redes não aparecem no diagrama.

Componentes

  • O Ponto de Extremidade Privado do Azure é um adaptador de rede que conecta você de maneira privada e segura a um serviço que conta com o Link Privado do Azure. O Ponto de Extremidade Privado usa um endereço IP privado da VNet, colocando efetivamente o serviço na VNet.
  • Os Hubs de Eventos ingerem o fluxo de dados. Os Hubs de Eventos foram projetados para cenários de streaming de dados com alta taxa de transferência.
  • O Azure Functions é uma opção de computação sem servidor. Ele usa um modelo controlado por eventos, em que um trecho de código (uma função) é invocado por um gatilho.
  • O Cosmos DB é um serviço de banco de dados de vários modelos que está disponível em um modo baseado em consumo sem servidor. Para este cenário, a função de processamento de eventos armazena registros JSON, usando o Azure Cosmos DB for NoSQL.

Detalhes do cenário

Essa ideia de solução mostra uma variação de uma arquitetura sem servidor orientada a eventos que ingere um fluxo de dados, processa os dados e grava os resultados em um banco de dados de back-end. Neste exemplo, a solução é hospedada em uma rede virtual com todos os recursos do Azure atrás de pontos de extremidade privados.

Para saber mais sobre os conceitos básicos, considerações e abordagens para processamento de eventos sem servidor, consulte a arquitetura de referência de processamento de eventos sem servidor.

Possíveis casos de uso

Um caso de uso conhecido para implementar um padrão de processamento de fluxo de eventos completo inclui o serviço de ingestão de streaming de Hubs de Eventos para receber e processar eventos por segundo, usando uma lógica de remoção de lotes e transformação implementada com funções disparadas pelo Hub de Eventos.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

  • Rajasa Savant | Engenheira Sênior de Desenvolvimento de Software

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas