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 com os requisitos específicos da sua carga de trabalho.
Este artigo descreve uma variação de uma arquitetura orientada a eventos sem servidor que é executada no Serviço Kubernetes do Azure (AKS) com o escalonador KEDA. A solução ingere um fluxo de dados, processa os dados e, em seguida, grava os resultados em um banco de dados back-end.
Arquitetura
Transfira um ficheiro do Visio desta arquitetura.
Fluxo de dados
- O AKS com o escalador KEDA é usado para dimensionar automaticamente os contêineres do Azure Functions com base no número de eventos que precisam ser processados.
- Os eventos chegam ao Hub de Eventos de Entrada.
- A Função do Azure de Eliminação de Lotes e Filtragem é acionada para manipular o evento. Esta etapa filtra eventos indesejados e desagrupa os eventos recebidos antes de enviar para o Hub de Eventos de Saída.
- Se a Função do Azure De-batching and Filtering não conseguir armazenar o evento com êxito, o evento será enviado para o Deadletter Event Hub 1.
- Os eventos que chegam ao Hub de Eventos de Saída acionam a Função Transformando o Azure. Esta Função do Azure transforma o evento numa mensagem para a instância do Azure Cosmos DB.
- O evento é armazenado em um banco de dados do Azure Cosmos DB.
Componentes
- O Serviço Kubernetes do Azure (AKS) simplifica a implantação de um cluster Kubernetes gerenciado no Azure descarregando a sobrecarga operacional para o Azure. Como um serviço Kubernetes hospedado, o Azure lida com tarefas críticas, como monitoramento e manutenção de integridade.
- O KEDA é um autoscaler controlado por eventos usado para dimensionar contêineres no cluster do Kubernetes com base no número de eventos que precisam ser processados.
- Os Hubs de Eventos ingerem o fluxo de dados. Os Hubs de Eventos foram projetados para cenários de streaming de dados de alta taxa de transferência.
- O Azure Functions é uma opção de computação sem servidor. Ele usa um modelo controlado por eventos, onde uma parte do código (uma função) é invocada por um gatilho.
- O Azure Cosmos DB é um serviço de banco de dados multimodelo que está disponível em um modo sem servidor e baseado no consumo. Para esse cenário, a função de processamento de eventos armazena registros JSON, usando o Azure Cosmos DB para NoSQL.
Nota
Para cenários de Internet das Coisas (IoT), recomendamos 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, portanto, você pode usar qualquer um dos serviços nessa arquitetura sem grandes alterações no processamento de back-end. Para obter mais informações, consulte Conectando 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 o KEDA scaler. A solução ingere um fluxo de dados, processa os dados e, em seguida, grava os resultados em um banco de dados back-end.
Caso de uso potencial
Um caso de uso popular para implementar um padrão de processamento de fluxo de eventos de ponta a ponta 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 desempacotamento e transformação implementada com funções altamente escaláveis acionadas por hub de eventos.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Rajasa Savant - Brasil | Engenheiro de Desenvolvimento de Software Sênior
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.