Kubernetes do Azure no processamento de fluxos de eventos

AKS (Serviço de Kubernetes do Azure)
Hub IoT do Azure
Hubs de eventos do Azure
Funções do Azure
Azure Cosmos DB

Ideias de soluções

Este artigo descreve uma ideia de solução. Seu arquiteto de nuvem pode usar essa orientação para ajudar a visualizar os principais componentes para uma implementação típica dessa arquitetura. Use este artigo como ponto de partida para projetar uma solução bem arquitetada que se alinhe aos requisitos específicos de sua carga de trabalho.

Este artigo descreve uma variação de uma arquitetura orientada a eventos sem servidor que é executada no AKS (Serviço de Kubernetes do Azure) com o dimensionador KEDA. A solução ingere um fluxo de dados, processa os dados e, depois, grava os resultados em um banco de dados back-end.

Arquitetura

Diagrama de arquitetura mostrando o fluxo de dados descrito neste artigo.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. O AKS com o dimensionador KEDA é usado para dimensionar de forma automática contêineres do Azure Functions com base no número de eventos que precisam ser processados.
  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 enviar 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.

Componentes

  • O Serviço de Contêiner do Azure (AKS) simplifica a implantação de um cluster do Kubernetes gerenciado no Azure, transferindo a sobrecarga operacional para o Azure. Como um serviço Kubernetes hospedado, o Azure lida com as tarefas críticas, como o monitoramento da integridade e a manutenção.
  • O KEDA é um dimensionador automático controlado por eventos usado para dimensionar contêineres no cluster do Kubernetes com base no número de eventos a serem processados.
  • 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.

Observação

Para cenários de IoT (Internet das Coisas), é recomendável o Hub IoT do Azure. O Hub IoT tem um ponto de extremidade interno compatível com a API de Hubs de Eventos do Azure, para que você possa usar um dos serviços nessa arquitetura sem grandes mudanças no processamento de back-end. Para saber mais, confira Conectar dispositivos IoT ao Azure: Hub IoT e Hubs de Eventos.

Detalhes do cenário

Este artigo descreve uma arquitetura orientada a eventos sem servidor que é executada no AKS com um dimensionador KEDA. A solução ingere um fluxo de dados, processa os dados e, depois, grava os resultados em um banco de dados back-end.

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

Possível caso 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 altamente escalonáveis.

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