Microservices, Mensageria, Eventos e Escalabilidade com Kubernetes + KEDA
A implementação de projetos empregando recursos de mensageria ou baseados em ingestão de eventos tem se tornado cada vez mais frequente, com as mais variadas organizações tirando proveito das inúmeras capacidades oferecidas por tais soluções. Ótimos exemplos desta tendência estão associados a contextos tecnológicos mais complexos envolvendo microsserviços, processamento assíncrono e grandes volumes dados a serem processados em um curto período de tempo.
O RabbitMQ e o Apache Kafka despostam como escolhas óbvias em tais cenários, correspondendo a alternativas open source de excelente aceitação entre grandes companhias e profissionais das mais variadas stacks de desenvolvimento. Dentro da nuvem Microsoft temos ainda o Azure Service Bus, o Azure Queue Storage e o Azure Event Hubs como opções gerenciadas de fácil implementação, alta performance e robustez.
E caso trabalhemos com Kubernetes, como podemos implementar projetos escaláveis e de alta disponibilidade nos beneficiando destas tecnologias?
O projeto KEDA (Kubernetes Event-driven Autoscaling) é uma iniciativa vinculada à Cloud Native Computing Foundation (CNCF) e que simplifica este tipo de necessidade, descomplicando a configuração de regras de autoscaling ao utilizarmos Kafka, RabbitMQ, Azure Service Bus, Azure Queue Storage, Azure Event Hubs e diversas outras tecnologias. Além dos projetos open source e serviços da nuvem Microsoft aqui mencionados, temos ainda o suporte a outras soluções cloud como Amazon Simple Queue Service (SQS), Amazon Kinesis Data Streams, IBM MQ, Google Cloud Pub/Sub…
No link a seguir está uma lista completa englobando essas e até outros tipos de tecnologias suportadas atualmente pelo KEDA:
https://keda.sh/docs/2.9/scalers/
Venho há algum tempo palestrando e produzindo conteúdos gratuitos sobre KEDA, enfatizando o uso deste projeto com aplicações escaláveis baseadas em mensageria e streaming de eventos. Em uma live recente no Canal .NET demonstrei como tirar proveito do KEDA em projetos que utilizam o Azure Queue Storage:
Em outros posts publicados aqui neste blog também já detalhei o uso do KEDA com Apache Kafka, RabbitMQ, Azure Service Bus e Azure Event Hubs:
Kubernetes + Apache Kafka + KEDA: escalando aplicações que processam eventos com facilidade
RabbitMQ: Alta Disponibilidade e Escalabilidade de Aplicações
E finalizo este post com um convite…
Dia 27/02 (segunda) a partir das 21:00 — horário de Brasília — teremos mais um evento ONLINE e GRATUITO no Canal .NET.
Desta vez uma nova live com diversas dicas e truques extremamente úteis no dia a dia com Kubernetes, ferramentas auxiliares e integração com serviços em nuvem (incluindo o suporte ao AKS — Azure Kubernetes Service)!
Para participar faça sua inscrição no link:
https://bit.ly/live-kubernetes-dicas-truques-pt6
Referências
Kubernetes Event-driven Autoscaling | Site oficial