Por que executar o Apache Kafka no Kubernetes?

Copiar URL

A implantação do Apache Kafka em uma plataforma de orquestração de containers como o Kubernetes permite que as aplicações orientadas a eventos sejam automatizadas, escaladas e implantadas em qualquer lugar. Em suma, o Kubernetes aumenta a flexibilidade inerente das apps desenvolvidas no Apache Kafka.

Cada vez mais, a TI empresarial está adotando as abordagens de microsserviços e desenvolvimento nativo em nuvem, que resulta em sistemas distribuídos repletos de aplicações orientadas a eventos (EDA). Nesse ambiente de desenvolvimento dinâmico, muitos líderes digitais utilizam o Apache Kafka em combinação com o Kubernetes.

Com o Apache Kafka, os usuários podem visualizar e analisar os negócios em tempo real, reagindo em tempo hábil para se adaptar às contínuas mudanças no mercado. Além disso, o Apache Kafka é uma opção excelente para estabelecer e manter uma conexão em tempo real com stakeholders internos, parceiros externos, fornecedores e clientes.

Kafka Streams, um recurso interno do Apache Kafka que pode ser adicionado a qualquer aplicação, permite o processamento simples e poderoso do fluxo de eventos do Kafka. E o verdadeiro diferencial do Apache Kafka em comparação com as demais alternativas de sistema de mensageria está justamente no processamento e análise de volumes imensos de dados de forma imediata, contínua e simultânea. O Apache Kafka também permite que os usuários agreguem, transformem, enriqueçam e organizem os eventos para uma análise de dados em linha e tempo real. Assim, eles não precisam de equipamentos específicos para calcular os números nas análises de big data. Isso faz do Apache Kafka um componente essencial para qualquer aplicação que exija respostas imediatas a dados em tempo real.

O Apache Kafka compõe a base ideal para o desenvolvimento nativo em nuvem. As aplicações nativas em nuvem são orientadas a eventos, e o Apache Kafka é a base perfeita para gerenciá-los. Transmissão distribuída, processamento em tempo real e alta escalabilidade: todas essas tarefas básicas orientadas a eventos são possíveis com o Apache Kafka.

A arquitetura serverless, o próximo passo após a computação nativa em nuvem, também é baseada em eventos e viável com a adoção do Apache Kafka. Com o Apache Kafka executado no Kubernetes, os desenvolvedores têm o que precisam para oferecer notificações serverless escaláveis, comunicações entre processos e visibilidade de funções serverless.

Na maioria das vezes, o Apache Kafka é implantado no Kubernetes, um sistema usado para gerenciar, implantar, escalar e operar containers de modo automático em diferentes clusters de hosts. O Apache Kafka no Kubernetes combina muito bem com o desenvolvimento nativo em nuvem, que é a próxima geração do desenvolvimento de aplicações. As aplicações nativas em nuvem são serviços distribuídos, independentes e levemente acoplados que proporcionam alta escalabilidade por meio da nuvem. Da mesma forma, as aplicações orientadas a eventos criadas no Kafka são levemente acopladas e projetadas para escalar por todo o ambiente distribuído de nuvem híbrida.

Uma das principais vantagens desfrutadas pelas equipes de operações que executam o Apache Kafka no Kubernetes é a abstração da infraestrutura: basta configurá-la uma vez para executá-la em qualquer ambiente. As equipes de operações modernas normalmente gerenciam diversas matrizes de recursos on-premise e na nuvem. Com o Kubernetes, elas podem tratar esses ativos como pools de recursos computacionais onde podem alocar recursos de software, incluindo o Apache Kafka. Além disso, essa mesma camada do Kubernetes possibilita o uso de apenas um ambiente para gerenciar todas as instâncias do Apache Kafka.

A escalabilidade inerente do Kubernetes é um complemento natural ao Apache Kafka. Com o Kubernetes, é possível ajustar a escala de recursos de computação, rede e armazenamento para aplicações com um comando simples ou automaticamente conforme o uso para utilizá-los da forma mais econômica. O Kubernetes também confere ao Apache Kafka a portabilidade para uma distribuição em ambientes on-premise e de nuvem pública, privada ou híbrida, além do uso de sistemas operacionais diferentes.

Recursos da Red Hat

Operar manualmente o Apache Kafka é uma tarefa complexa que requer um grande trabalho de configuração de muitos componentes. Executar o Apache Kafka em bare-metal (ou até mesmo em máquinas virtuais) é bastante complicado. Implantar, monitorar, atualizar e reverter os nós é extremamente trabalhoso e difícil.

O projeto open source Strimzi entra em cena justamente para dar conta de toda essa complexidade. O Strimzi usa operadores para implantar configurações do Apache Kafka de forma simplificada e fácil. Os operadores são o recurso mais moderno para implantar e gerenciar aplicações no Kubernetes. Eles proporcionam flexibilidade ao desenvolvimento porque fazem abstrações no nível da infraestrutura. Assim, os desenvolvedores podem implantar aplicações sem precisar de muitas informações sobre a infraestrutura. Os desenvolvedores não precisam estar a par de todos os pormenores técnicos, como o número de máquinas ou o tipo de hardware, pois os operadores provisionam a infraestrutura e gerenciam todos os detalhes.

O Strimzi oferece as vantagens da infraestrutura como código (IaC). Isso quer dizer que os desenvolvedores podem facilmente escrever manuais de instruções semelhantes a um código para definir a infraestrutura, pois o Strimzi executará essas instruções com perfeição. O Strimzi ajuda até a simplificar a implantação do Apache Kafka em modos de alta disponibilidade, o que seria difícil de fazer de outra maneira.

O operador no Strimzi oferece suporte a muitas questões de segurança relacionadas ao Apache Kafka, o que é mais um motivo importante para executá-lo. Além disso, o Strimzi automatiza a segurança para o Apache Kafka no Kubernetes com logon único (SSO), criptografia e autenticação. Dessa forma, os desenvolvedores não precisam perder o tempo com a implementação de funcionalidades básicas de segurança.

O Streams for Apache Kafka, parte do Red Hat Integration, é uma distribuição empresarial Red Hat do Apache Kafka e do projeto Strimzi. Grande parte do valor extra que os fluxos agregam ao Apache Kafka estão no uso dessa plataforma no Kubernetes ou no Red Hat OpenShift, que é a distribuição do Kubernetes oferecida pela Red Hat.

Com o Streams for Apache Kafka implantado no OpenShift, é possível executar o Apache Kafka no Kubernetes para a criação de arquiteturas orientadas a eventos de classe empresarial que sejam compatíveis com fluxos de dados distribuídos e aplicações de processamento de fluxo baseadas em microsserviços. O Streams for Apache Kafka é conveniente principalmente para os cenários de escala e taxa de transferência elevadas, porque o particionamento inerente ao Apache Kafka ajuda a atender aos requisitos de escalabilidade.

Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

O que é o Podman Desktop?

O Podman Desktop é uma ferramenta open source gratuita que simplifica o trabalho com containers em ambientes de desenvolvedor locais.

O que é o Helm?

Helm é um gerenciador de pacotes para Kubernetes que inclui todos os códigos e recursos necessários para implantar uma aplicação em um cluster.

O que é o InstructLab?

O InstructLab é um projeto open source para aprimorar os modelos de linguagem de larga escala ou Large Language Models (LLMs).

Open source: leitura recomendada

Produto em destaque

  • Red Hat OpenShift

    Uma plataforma unificada de desenvolvimento de aplicações que permite desenvolver, modernizar e implantar aplicações em escala na infraestrutura de nuvem híbrida de sua escolha.

Artigos relacionados