Visão geral
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.
Por que executar o Apache Kafka no Kubernetes?
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
Strimzi: como o Apache Kafka funciona no Kubernetes
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.
Descubra as soluções ideais para EDA
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.
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.