Jump to section

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 aplicações 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 gerenciar eventos. 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.

Conheça o Red Hat OpenShift Streams for Apache Kafka

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.

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 Red Hat AMQ Streams, que faz parte do Red Hat Integration, é uma distribuição empresarial do Apache Kafka com o projeto Strimzi desenvolvida pela Red Hat. Grande parte do valor extra que o AMQ Streams agrega ao Apache Kafka está no uso dessa plataforma no Kubernetes, ou melhor ainda, no Red Hat OpenShift, que é a distribuição do Kubernetes oferecida pela Red Hat.

Com o Red Hat AMQ Streams 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 AMQ Streams é 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.

Leitura recomendada

Artigo

O que é integração?

Quer saber o que é integração? Descubra o que é, como incorporá-la e por que ela é muito melhor com tecnologias open source.

Artigo

O que é Apache Kafka?

O Apache Kafka é uma plataforma distribuída de transmissão de dados que é capaz de publicar, subscrever, armazenar e processar fluxos de registro em tempo real.

Artigo

O que é uma API?

API significa interface de programação de aplicações, um conjunto de definições e protocolos para criar e integrar softwares de aplicações.

Leia mais sobre integração

Soluções Red Hat

Conjunto abrangente de tecnologias para integração e mensageria. Inclui Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, captura de dados de alterações e um registro de serviço.

Plataforma gerenciada e hospedada, aplicações e data services que otimizam a experiência da nuvem híbrida, reduzindo os custos e a complexidade operacionais de aplicações nativas em nuvem.

Um conjunto de soluções, ferramentas e componentes para desenvolver e manter aplicações nativas em nuvem. Inclui Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, uma versão Red Hat do OpenJDK, uma versão Red Hat do Quarkus, um conjunto de runtimes nativos em nuvem, kit de ferramentas de migração para aplicações, login único (SSO) e serviço de inicialização.

Um conjunto abrangente de tecnologias de integração e runtimes para criar, implantar e operar aplicações com segurança e em escala na nuvem híbrida.

Conteúdo adicional

Ebook

Integração ágil

Crie uma infraestrutura ágil para viabilizar uma organização adaptável.

Visão geral

Red Hat Cloud Services

Serviços gerenciados para desenvolvimento nativo em nuvem.

Treinamento

Treinamento gratuito

Red Hat Agile Integration Technical Overview