top of page
pedrobusko

Comparação do Apache Kafka open-source vs. fornecedores, incluindo Confluent, Cloudera, Red Hat

Este é um artigo traduzido originalmente publicado no blog do Kai Waehner:Comparison of Open Source Apache Kafka vs Vendors including Confluent, Cloudera, Red Hat, Amazon MSK”. Assine a newsletter do Kai para se manter atualizado com novas publicações.


O Apache Kafka tornou-se o padrão de fato para streaming de eventos. Vários fornecedores adicionaram Kafka e ferramentas relacionadas às suas ofertas ou fornecem um serviço de nuvem Kafka. Esta postagem de blog usa a analogia do carro – do motor do motor ao carro autônomo – para explorar as diferentes ofertas Kafka disponíveis no mercado. O objetivo não é uma comparação de recurso por recurso. Em vez disso, a intenção é educar sobre os diferentes modelos de implantação, estratégias de produtos e compensações das opções disponíveis.


 

O Apache Kafka tornou-se o padrão de fato para streaming de eventos. A comunidade de código aberto é enorme. Vários fornecedores adicionaram Kafka e ferramentas relacionadas às suas ofertas ou fornecem um serviço de nuvem Kafka. Esta postagem do blog usa a analogia do carro – do motor do motor ao carro autônomo – para explorar as diferentes ofertas Kafka disponíveis no mercado . Eu também cubro alguns outros veículos, o que significa (parcialmente) tecnologias compatíveis com Kafka. O objetivo não é uma comparação recurso por recurso (que estaria desatualizado no dia seguinte à publicação). Em vez disso, a intenção é educar sobre os diferentes modelos de implantação, estratégias de produtos e compensações das opções disponíveis.


Source: Kai Waehner - Comparison of Open Source Apache Kafka vs Vendors including Confluent, Cloudera, Red Hat, Amazon MSK


Isenção de responsabilidade : Eu trabalho para a Confluent. No entanto, o post não é sobre comparar recursos, mas explicar os conceitos por trás das alternativas. Falo com empresas de todo o mundo toda semana. Posso garantir que muitas pessoas com quem converso não estão cientes ou enganam sobre o que você lê nas seções a seguir. Portanto, espero que o seguinte ajude você a tomar a decisão certa. Escolha executar o Apache Kafka de código aberto ou uma das várias ofertas comerciais do Kafka, ou mesmo uma combinação de ambos.


Componentes e casos de uso do Apache Kafka


O objetivo não é apresentar Kafka aqui. O mínimo que você deve saber é que o Kafka NÃO é apenas uma camada de mensagens para ingestão de dados em um data lake. Esta é apenas uma fração dos usos de hoje.

Kafka é uma estrutura de código aberto sob licença Apache 2.0 . Ele fornece uma combinação de mensagens, armazenamento, processamento e integração de grandes volumes de dados em escala em tempo real e tolerante a falhas . É isso que torna o Kafka único em comparação com outras plataformas MQ, ETL, ESB e API .

O Kafka é implantado em produção para vários casos de uso em todos os setores . Isso inclui cargas de trabalho analíticas e de missão crítica . Diferentes implantações exigem diferentes SLAs. Você deve sempre se perguntar o que acontece se a infraestrutura Kafka estiver com problemas. Quais são seus RTO (objetivo de tempo de recuperação) e RPO (objetivo de ponto de recuperação)? Ou em outras palavras: quantos dados podem ser perdidos? Quanto tempo de inatividade é aceitável? Comece seus projetos Kafka com essas perguntas em mente ao iniciar a comparação das opções!


Kafka é a API padrão de fato para streaming de eventos, como a API S3 para armazenamento de objetos


Apache Kafka é mainstream! A última prova: Confira o novo Radar de Tecnologia ThoughtWorks : “ API Kafka sem Kafka ”:


Kafka se tornou a API de streaming de eventos de fato. Semelhante à API do S3, tornou-se o padrão de fato para armazenamento de objetos . Na verdade, a situação é ainda melhor para a API Kafka, pois a API S3 é um protocolo proprietário da AWS. Em contraste, a API e o protocolo Kafka são de código aberto sob a licença Apache 2.0.



Source: Kai Waehner - Comparison of Open Source Apache Kafka vs Vendors including Confluent, Cloudera, Red Hat, Amazon MSK


Vamos dar uma olhada em algumas alternativas Kafka muito diferentes disponíveis hoje :

  • Apache Kafka de código aberto do site Apache sob licença Apache 2.0

  • Ofertas de fornecedores autogerenciados da Confluent , Cloudera , Red Hat , Amazon MSK e muito mais

  • Ofertas de nuvem totalmente gerenciadas , como Confluent Cloud

  • Produtos parcialmente compatíveis com protocolo , como RedPanda para casos de uso incorporados/ WebAssembly (WASM )

  • Ofertas de SaaS parcialmente compatíveis com protocolo, como Azure EventHubs

Isso é um monte de opções. Então, como você faz uma comparação Kafka para escolher o caminho certo? Antes de entrarmos em mais detalhes, vamos explorar o quão complexo Kafka realmente é e quando você precisa se preocupar com isso.


Você deve se importar com o quão complexa ou pesada é sua tecnologia de streaming de eventos?


A complexidade importa (apenas) se você precisar operar a infraestrutura sozinho. A beleza do SaaS é que você apenas consome o serviço e se concentra nos problemas do seu negócio . Por exemplo, o armazenamento de objetos do AWS S3 é uma API simples com um serviço totalmente gerenciado sob o capô. Você não precisa se preocupar com operações ou monitoramento. Você acabou de usar o serviço de nuvem.

Dito isso, é um pouco estranho que a ThoughtWorks mencione as barreiras e a complexidade de Kafka, mas depois se refira ao wrapper Pulsar . Essa é uma implementação de mapeamento de classe única (imatura) que mapeia apenas uma pequena parte do protocolo de Kafka (aqui está o wrapper do produtor como exemplo). Os desenvolvedores podem usar esse wrapper para mover dados entre clientes Kafka e corretores Pulsar. No entanto, o Pulsar tem uma arquitetura distribuída de três camadas muito mais complexa com clusters ZooKeeper, BookKeeper e Pulsar . Qual é o benefício aqui? Isso é realmente o que você quer fazer em cargas de trabalho de missão crítica? Por quê? Por favor, deixe-me saber se você considera seriamente usar essa arquitetura de wrapper. Além disso, leia meu post sobre os “ Mitos de Kafka vs. Pulsar“. Muitos argumentos como o wrapper Kafka são simplesmente marketing e não podem ser usados ​​para projetos do mundo real!

Portanto, quando penso em usar a API Kafka sem operar o Kafka, tenho em mente ofertas de SaaS totalmente gerenciadas, como Confluent Cloud ou Azure Event Hubs .

Dito isto, um serviço de nuvem totalmente gerenciado nem sempre é uma opção. Por exemplo, Kafka na borda é o novo preto . Existem muitos casos de uso para um único agente ou clusters Kafka altamente disponíveis na borda .

Mas mesmo que você queira ou precise operar o Kafka sozinho: com o KIP-500 e a remoção do ZooKeeper, fica mais fácil e leve do que nunca . Muitos argumentos não existem mais para passar para uma “alternativa mais leve”. Pode haver boas razões para escolher algo como RedPanda. Mas o principal argumento de ter uma implantação mais simples e leve não é mais dado. Confira este vídeo mostrando Kafka sem ZooKeeper .


Como escolher a distribuição Kafka certa ou o serviço em nuvem?


Então, como fazer uma comparação para descobrir qual distribuição Kafka ou serviço de nuvem é o certo para o seu projeto?

A resposta é mais simples do que você imagina: o objetivo final é focar e resolver seu problema de negócios .

Como você faz isso? Implementando a lógica de negócios. Idealmente, você não precisa se preocupar com infraestrutura, operações, segurança, escalabilidade, confiabilidade e características não comerciais. Portanto, SaaS com Kafka totalmente gerenciado deve ser a primeira escolha .

Infelizmente, o SaaS nem sempre é possível ou a melhor opção por vários motivos:

  • Recursos ausentes

  • Limitações técnicas

  • Custo

  • Requisitos de segurança

  • Casos de uso no local ou na borda

Portanto, precisamos dar um passo atrás e entender quais opções você tem para implantar e operar o Kafka . Compreender esses conceitos sem todo o marketing fluente dos fornecedores é crucial para tomar a decisão certa!


O carro Kafka: uma analogia para uma comparação de produtos


Muitas vezes é mais fácil comparar a tecnologia usando uma analogia da vida real . Algo que todos entendem. Não importa em que setor você esteja. Não importa o quão técnico você seja. Primeiro, pensei em usar a analogia da pizza, incluindo pizza caseira, ingredientes de pizza, restaurantes, serviços de entrega e outros tópicos relacionados. Mas a pizza é usada com tanta frequência no mundo da TI. Isso se originou nos primeiros dias da Amazônia. Jeff Bezos instituiu uma regra: toda equipe interna deve ser pequena o suficiente para ser alimentada com duas pizzas.

Por fim, escolho usar a analogia de um carro porque acho que muitos dos argumentos são menos discutíveis dessa maneira. Acho que nunca poderíamos concordar sobre qual seria a melhor opção de pizza para a maioria das pessoas…

Portanto, vamos falar sobre motores de automóveis, marcas de automóveis, veículos autônomos, frotas conectadas e veículos antigos nas seções a seguir.


Source: Kai Waehner - Comparison of Open Source Apache Kafka vs Vendors including Confluent, Cloudera, Red Hat, Amazon MSK


Dê-me um carro autônomo, por favor!


Obviamente, a maioria das pessoas preferiria um carro autônomo (se o preço for justo). É seguro, econômico e confortável.

No contexto Kafka, isso significa que a infraestrutura Kafka seria

  • nativo da nuvem (= elástico, escalável e automatizado, idealmente totalmente gerenciado)

  • completo (= conjunto completo de recursos operacionais e de segurança que as empresas exigem)

  • em qualquer lugar (= disponível em várias nuvens públicas, nuvem privada, local, borda fora do data center)

Infelizmente, nem todas as configurações do Kafka podem ser autônomas . Precisamos desmontar um carro em suas partes para entender o que está acontecendo sob o capô. Então podemos escolher o carro certo para o nosso problema de negócios.


Marcas de carros: comparação de Confluent, Cloudera, Red Hat, Amazon MSK


A competição cria inovação . Por isso, é ótimo ver muitas marcas e modelos de carros nas ruas. Da mesma forma, muitas empresas concorrentes lutam por participação de mercado em torno dos negócios da Kafka . Vamos pensar rapidamente nas marcas de carros disponíveis (= fornecedores Kafka) no mercado.


Source: Kai Waehner - Comparison of Open Source Apache Kafka vs Vendors including Confluent, Cloudera, Red Hat, Amazon MSK


Concentro- me apenas nos mais relevantes que se preocupam com o projeto e a comunidade Kafka, têm muito poder de mercado ou, idealmente, ambos .

As marcas de carros são Confluent, Cloudera, Red Hat e Amazon MSK. Eu tenho uma seção sobre outros fornecedores de streaming Kafka e não Kafka no final da postagem do blog para fornecer uma comparação mais detalhada.

Novamente, a ideia NÃO é ter uma comparação de recurso por recurso ou guerra de chamas . A seguir estão alguns fatos sobre cada fornecedor. Concentro-me apenas em pontos relacionados a Kafka . Portanto, não é surpresa que o Confluent pareça melhor na lista a seguir, pois eles se concentram apenas no streaming de eventos. Mas, obviamente, cada fornecedor tem pontos fortes e fracos. Por exemplo, se você quiser discutir os recursos e a estratégia geral da infraestrutura de nuvem, bem, a AWS pareceria muito mais forte do que todos os outros fornecedores Kafka…


Confluent – ​​O principal fornecedor de Apache Kafka


Alguns fatos sobre o Confluent:

  • Concentre-se na transmissão de eventos

  • Criadores originais de Kafka

  • O principal contribuidor do projeto Apache Kafka com 80% dos commits do Kafka

  • Sempre a versão mais recente do Kafka (sem limitações) e suporte completo

  • Rico ecossistema Kafka (conectores, governança, segurança, etc.)

  • Arquiteturas híbridas (incluindo o único serviço Kafka completo e totalmente gerenciado)

  • Parceria e integração de terceiros em provedores de nuvem (AWS, GCP, Azure) – por exemplo, você pode usar seus créditos e conta de provedor de nuvem para consumir o Confluent Cloud

  • Certificado para operações autogerenciadas em ofertas de borda de provedores de nuvem (por exemplo, AWS Outpost, incluindo Wavelength, Anthos do Google)

Cloudera – Suíte de Big Data Analytics


Alguns fatos sobre Cloudera:

  • Concentre-se na análise de big data

  • Fornece uma plataforma em torno de dezenas de estruturas de big data diferentes para armazenamento, lote e análise em tempo real

  • Kafka faz parte da plataforma (Hadoop, Spark, Flume, Flink, muitos mais) com ferramentas e suporte para toda a plataforma

  • Arquiteturas híbridas (mas nenhum serviço Kafka totalmente gerenciado)

  • Parceria e integração de terceiros em provedores de nuvem (AWS, GCP, Azure)

Red Hat (IBM) – Infraestrutura PaaS nativa da nuvem


Alguns fatos sobre a Red Hat (IBM):

  • Foco em infraestrutura (principalmente em torno de Linux e Kubernetes)

  • Kafka está disponível como parte do portfólio de produtos Red Hat AMQ, combinado com outras estruturas de código aberto como ActiveMQ ou Camel

  • OpenShift Streams para Apache Kafka fornece integração com Kubernetes

  • Foco em frameworks de código aberto; trabalhando ativamente com a comunidade (para Kafka, Red Hat, por exemplo, contribui para o Debezium for CDC e o Strimzi Kubernetes Operator)

  • Arquiteturas híbridas (mas nenhum serviço Kafka totalmente gerenciado)

  • Parceria e integração de terceiros em provedores de nuvem (AWS, GCP, Azure)

Notas laterais interessantes para o relacionamento entre Confluent, Red Hat e IBM:

  • A IBM adquiriu a Red Hat em 2019 .

  • Confluent e IBM anunciam parceria estratégica em 2020

  • A IBM preteriu sua própria oferta Kafka (IBM Streams) em março de 2021.

  • Confluent é o caminho a seguir com a IBM como parte do IBM Cloud Pak for Integration. Até os vendedores da IBM vendem o Confluent .

Amazon Web Services (AWS) – O principal provedor de nuvem

A AWS se concentra na infraestrutura de nuvem e serviços de nuvem totalmente gerenciados de terceiros (S3, Kinesis, Lambda etc.)


Alguns fatos sobre o Amazon MSK, a oferta da AWS para o Kafka:

  • MSK perde vários recursos importantes do Kafka, incluindo Kafka Connect ou Kafka Streams

  • Somente na nuvem (mas apenas autogerenciado, não totalmente gerenciado)

  • O MSK não é nativo da nuvem (como S3 ou Kinesis), mas apenas infraestrutura provisionada

  • Obviamente disponível apenas na AWS

  • Para implantações no local (como AWS Outpost ou AWS Wavelength), o produto Kafka recomendado é a plataforma Confluent certificada

Nota lateral interessante sobre o suporte comercial e SLAs da oferta Kafka da AWS: Kafka está excluído do suporte MSK! Citação dos SLAs do MSK : “O Compromisso de Serviço NÃO SE APLICA a qualquer indisponibilidade, suspensão ou rescisão… causada pelo software do mecanismo Apache Kafka ou Apache ZooKeeper subjacente que leva a falhas de solicitação…”


A tecnologia de streaming de eventos e a infraestrutura nativa da nuvem são complementares!


O acima mostrou alguns fatos para os principais fornecedores de Kafka: Confluent, Cloudera, Red Hat, AWS. No entanto, vale ressaltar explicitamente que esses fornecedores são muitas vezes complementares . Por exemplo, a maioria das implantações do Confluent Platform que vejo no Kubernetes on-premise são, na verdade, no Red Hat OpenShift. E com a enorme participação de mercado da AWS, a maioria das implantações autogerenciadas do Confluent na nuvem estão na AWS.

Além disso, a Confluent Platform é certificada no AWS Outpost e no Google Anthos. Assim, você pode até combinar tecnologias nativas da nuvem na borda. Um ótimo exemplo são os casos de uso de 5G de fábrica inteligente que utilizam a plataforma Confluent no AWS Wavelength . Conseqüentemente, uma comparação Kafka normalmente não elimina todos os outros fornecedores Kafka do projeto.

A arquitetura a seguir descreve a combinação do Confluent Cloud na AWS com a Confluent Platform no AWS Wavelength, aproveitando as redes de operadoras 5G:


Source: Kai Waehner - Comparison of Open Source Apache Kafka vs Vendors including Confluent, Cloudera, Red Hat, Amazon MSK


Isso não é apenas teoria. As equipes conjuntas da AWS e da Confluent estão trabalhando neste exemplo no mundo real enquanto escrevo esta postagem no blog.


Nativo da nuvem? Completo? Em toda parte? Que Kafka devo comprar?


Depois de explorar diferentes fornecedores, vamos agora percorrer as diferentes opções de implantação e ofertas comerciais.

Novamente, não farei uma comparação característica por característica. Muito mais importante é entender os diferentes conceitos e princípios de arquitetura : Antes de tudo, você precisa decidir se um carro autônomo (= Kafka totalmente gerenciado) funciona para você. Nesse caso, por que se preocupar com as operações de Kafka? Caso contrário, as equipes de projeto devem avaliar as ofertas Kafka parcialmente gerenciadas (= carro completo) ou autogerenciadas (motor do carro).

Aqui está uma visão geral mostrando o cenário de streaming de eventos . Ele contém ofertas Kafka nativas , (parcialmente) produtos compatíveis com o protocolo Kafka e algumas soluções relevantes não Kafka :


Source: Kai Waehner - Comparison of Open Source Apache Kafka vs Vendors including Confluent, Cloudera, Red Hat, Amazon MSK


Vamos agora dar uma olhada mais profunda nessas alternativas para descobrir como escolher a certa para o seu próximo projeto.


Motor do carro: Apache Kafka de código aberto autogerenciado


O motor do carro é o coração do carro . Ele fornece o poder. Leva você da sua origem ao seu destino. No entanto, é necessário muito trabalho em torno do motor do motor. Pneus, volante, freios e muito mais são necessários. Portanto, esta é uma ótima solução para brincar, aprender como um carro funciona ou construir um carro por fanáticos por carros entusiasmados.

Se você baixar o Apache Kafka de código aberto do site do Apache ou imagens do Docker relacionadas, poderá usá-lo gratuitamente em todos os seus projetos. Sem limitações. Você deve ser capaz de executá-lo rapidamente. No entanto, esteja ciente de que, semelhante ao motor de um carro, há muito mais a fazer : Operar e monitorar os Clusters ZooKeeper e Kafka, reequilibrar partições, dimensionar para cima e para baixo, gerenciar armazenamento, proteger e criptografia de ponta a ponta comunicação entre produtor, cluster Kafka e consumidores, e muito mais.

Se você puder lidar com a carga de operações e o risco de tempo de inatividade, o Apache Kafka de código aberto pode ser uma boa opção . Alguns gigantes da tecnologia do Vale do Silício fazem exatamente isso. Eles contrataram massas de especialistas em tecnologia (ou fanáticos por carros para manter a analogia) para executar enormes clusters Kafka para processar trilhões de mensagens e gigabytes de dados por segundo.


Complementos gratuitos do Kafka para construir seu carro


Muitos complementos Kafka de código aberto se originaram por meio disso. Apenas para citar algumas ferramentas para propósitos muito diferentes: kafkacat, Kafka Manager, Kafdrop, toca, controle de cruzeiro e muito mais. Alguns estão bem conservados, outros nem tanto. Claro, você nunca terá garantias para obter uma atualização de versão ou correção de bug. Muitas vezes construído por um gigante da tecnologia para seu cenário específico. Não é facilmente utilizável fora dessa organização e sem uma grande comunidade.

Como alternativa, existem projetos comunitários bem mantidos, como o Registro de Esquemas da Confluent, o REST Proxy e o ksqlDB , todos sob a Licença da Comunidade Confluent (CCL). Isso não é de código aberto, mas é gratuito para uso se você não for um provedor de nuvem como a AWS. O Confluent também fornece alguns componentes sob a licença Apache 2.0, como os clientes Kafka não Java amplamente utilizados baseados em librdkafka ou o consumidor paralelo para integração com interfaces não escaláveis, como serviços da Web, de maneira escalável e de desempenho.


Motor de carro ajustado: produto Kafka autogerenciado


Se você deseja ou precisa autogerenciar sua infraestrutura Kafka, ainda tem mais opções do que apenas usar o Apache Kafka de código aberto e (bem ou não tão bem conservados) complementos de código aberto:

  • Apache Kafka de código aberto com ferramentas comerciais adicionais para operações e monitoramento . Por exemplo, Lentes ou Conduktor.

  • Plataformas comerciais completas . Por exemplo, Confluent Platform, Red Hat AMQ, Cloudera DataFlow.

Esses “motores de carro ajustados” são baseados no Apache Kafka (ou pelo menos partes dele) e fornecem ferramentas adicionais para desenvolvimento, operações, monitoramento, segurança, etc. A maturidade das ferramentas, SLAs de suporte, experiência e consultoria variam a muito entre fornecedores . Eu recomendo conversar com seus fornecedores em potencial. Faça as perguntas certas para entender se eles realmente entendem o que parecem vender e apoiar.

Interfaces de usuário brilhantes atraem muitas pessoas. Seja cuidadoso. A tecnologia subjacente precisa funcionar de forma confiável e ser dimensionada para suas necessidades . É bom ter a interface do usuário no topo da infraestrutura. No entanto, uma boa interface do usuário pode melhorar a experiência do desenvolvedor, aumentar o tempo de lançamento no mercado e trazer outros benefícios.


Devo usar um motor de carro (ajustado) e construir meu próprio carro?


Todas as opções exploradas acima ainda são autogerenciadas . Se você pensa em construir seu próprio carro com motor de carro, sempre avalie a relação custo-benefício .

Lembre-se, no início deste post, falei sobre como resolver problemas de negócios. Portanto, não se esqueça de considerar todos os impactos em:

  • Custo Total de Propriedade (TCO)

  • Risco (tempo de inatividade, perda de dados, segurança, governança, etc.)

  • Retorno sobre o investimento (ROI)

  • Time-to-market (maior velocidade do desenvolvedor e maior agilidade nos negócios)

Na Confluent, fazemos avaliações de TCO com nossos prospects e clientes para que eles entendam os custos e riscos completos de um projeto Kafka. Tal avaliação deveria fazer parte de cada comparação Kafka!

Portanto, não se esqueça de avaliar seriamente outras alternativas ao Apache Kafka de código aberto . Se o Apache Kafka autogerenciado ainda funcionar para você após a avaliação, faça-o! Mas esteja ciente de que mesmo os gigantes da tecnologia do Vale do Silício consideram e compram outras opções hoje . Muitos tiveram que construir a infraestrutura Kafka porque não havia outra alternativa quando a construíram anos atrás.

Meu fornecedor de código aberto favorito realmente fornece código aberto?

Além disso, tenha cuidado: algumas soluções de software livre não fornecem uma maneira fácil de criar o produto . Então, avalie o que exatamente está disponível a partir de uma chamada “oferta de código aberto”: Apenas um download binário? Imagens do Docker? Ou você também pode construir e implantar tudo do zero facilmente e documentado (não apenas em teoria !!!) usando Maven, Gradle, Terraform, Ansible ou ferramentas de construção e automação semelhantes?

Antes de construir seu próprio carro com um motor de carro disponível, por que não comprar um carro? Vamos considerar a seguir se um carro completo pode fazer mais sentido para você.


Carro completo: produtos Kafka e PaaS baseado em Kubernetes


Não sou fanático por carros. Eu quero comprar um carro completo que eu possa dirigir em todos os lugares. Você também deve pelo menos considerar esta opção!

Em termos Kafka, isso significa que você obtém ajuda do produto para executar a infraestrutura Kafka . As palavras-chave dos fornecedores incluem termos como “plataforma como serviço”, “nuvem privada”, “totalmente gerenciado” e “nativo da nuvem”. No final, os produtos ajudam você a provisionar, operar e monitorar tudo.

O principal benefício em comparação com os motores de carro (ajustados) é que esses produtos oferecem uma infraestrutura mais elástica, escalável e automatizada . Duas opções existem hoje:

  • Produtos baseados em Kubernetes que podem ser executados em qualquer lugar no local e em vários provedores de nuvem. Exemplos: Plataforma Confluent, Cloudera DataFlow (CDF), Red Hat AMQ respectivamente Red Hat OpenShift Streams for Apache Kafka.

  • Ofertas de nuvem proprietárias que normalmente estão vinculadas ao hiperescalador relacionado. Exemplo: Amazon MSK.

Isso é semelhante a comprar um carro : ele vem pré -montado . Embora, é claro, você ainda seja responsável por operá-lo e mantê-lo .

Em termos de Kafka, para muitos cenários, esses produtos Kafka autogerenciados (= carro) são uma escolha melhor do que o Kafka autogerenciado (= motor de carro) porque reduzem parcialmente a carga, o risco e (espero) o TCO das operações .


Um carro completo ainda não é autônomo!


No entanto, como você sabe, os carros de hoje ainda precisam de muito trabalho manual: condução, reabastecimento, manutenção e muito mais. Em termos de Kafka: Quantos trabalhos você ainda tem que fazer sozinho? Você precisa lidar com atualizações contínuas manualmente? Você tem que rebalancear partições em corretores? Como você escala para cima e para baixo? Quem corrige problemas de segurança e bugs? E assim por diante.

Portanto, é realmente uma pena que a maioria dos fornecedores use marketing incorreto intencionalmente! Nenhuma das soluções acima é totalmente gerenciada. Todos eles exigem trabalho para você operar o cluster Kafka. Todos eles! Plataforma Confluente. Cloudera DataFlow. Red Hat AMQ. Red Hat OpenShift Streams para Apache. Kafka Amazon MSK. Nenhum desses serviços é totalmente gerenciado!

Cada marca e modelo de carro é diferente. Se você compra um Porsche, provavelmente tem expectativas muito diferentes das de comprar um carro pequeno e médio de outra marca. O mesmo vale para todos os produtos Kafka autogerenciados no mercado. Cada produto é muito diferente: Plataforma Confluent. Cloudera DataFlow. Red Hat AMQ / OpenShift Streams para Apache Kafka. Amazon MSK. Todos eles têm pontos fortes e fracos. Certifique-se de que ele atenda às suas expectativas para que você possa resolver seu problema de negócios dentro dos SLAs e do orçamento necessários.

Dito isto, não seria bom se você não precisasse se preocupar com todas essas coisas? Vamos explorar o carro autônomo Kafka a seguir.


Carro autônomo: serviço Kafka em nuvem totalmente gerenciado


Um carro autônomo oferece uma solução completa . Basta dizer aonde você quer ir. Ele conduz você automaticamente. Escolhe a melhor rota. Permite relaxar, ler, jogar ou coisas semelhantes. É claro que um carro autônomo com automação de nível 5 ainda não está maduro (além de alguns estágios iniciais, como Waymo operando no deserto em Phoenix, onde não há chuva e outros problemas climáticos ou de tráfego).

Em termos Kafka, a solução precisa ser totalmente gerenciada pelo fornecedor .

Totalmente gerenciado significa sem servidor (ou seja, você não precisa se importar e nem mesmo tem acesso aos Kafka Brokers) . SLAs de missão crítica. Faturamento com base no uso. E assim por diante. Como você conhece de outras ofertas de nuvem realmente totalmente gerenciadas, como AWS S3 ou AWS Kinesis. Estes são totalmente gerenciados. Amazon MSK não é!

Lista de verificação para comparar serviços de nuvem Kafka parcialmente gerenciados e totalmente gerenciados

Por favor, compare diferentes ofertas de nuvem Kafka por si mesmo. Aqui estão alguns pontos a serem verificados:

Gerenciamento de infraestrutura

  • Atualizações (última versão estável do Kafka)

  • Aplicação de patches

  • Manutenção

Gerenciamento específico do Kafka

  • Dimensionamento (retenção, latência, taxa de transferência, armazenamento, etc.)

  • Balanceamento de dados para desempenho ideal

  • Ajuste de desempenho para requisitos de tempo real e latência

  • Corrigindo erros do Kafka

  • Monitoramento do tempo de atividade e correção proativa de problemas

  • Suporte de recuperação de corrupção de dados

Escala

  • Escalando o cluster conforme necessário

  • Balanceamento de dados do cluster à medida que os nós são adicionados

  • Suporte para qualquer problema do Kafka com tempo de resposta inferior a 60 minutos

A maioria das ofertas de “Kafka como serviço” é gerenciada apenas parcialmente . Isso é como um carro autônomo que você realmente tem que controlar por si mesmo (mais como nível 3, não nível 5 na terminologia de direção autônoma).

Neste ponto, eu tenho que fazer marketing para o meu empregador. No entanto, não é um anúncio, mas a realidade: Confluent Cloud é a única oferta no mercado que oferece uma oferta Kafka SaaS completa e totalmente gerenciada . E está disponível em todos os lugares – em todos os principais provedores de nuvem (AWS, Azure, GCP). Todas as outras ofertas do Kafka NÃO são totalmente gerenciadas - mesmo que a maioria dos fornecedores afirme isso!


Outros veículos na rua: comparação de ofertas compatíveis com Kafka e não Kafka


Na rua, não vemos apenas uma marca ou modelo de carro. Existem muitos diferentes. No entanto, eles têm que dirigir nas mesmas ruas. A concorrência cria inovação e aborda diferentes mercados e interesses pessoais. Isso é ótimo. O mesmo vale para Kafka!

Concentrei-me nos “fornecedores tradicionais de Kafka” nas seções acima. Ou seja, Confluent, Cloudera, Red Hat, Amazon MSK. Obviamente, existem mais ofertas de Kafka no mercado. Alguns são realmente bons para alguns casos de uso. Outros são mais como uma piada de primeiro de abril, na minha opinião. Vamos percorrer rapidamente algumas outras ofertas.


Ofertas relacionadas a Kafka

  • Mais algumas marcas de carros: Kafka do Azure HD Insight, Aiven, cloudkarafka, Instaclustr. Esses fornecedores de PaaS nativos do Kafka fornecem clusters Kafka para você. Semelhante ao Amazon MSK. Essas ofertas diferem ligeiramente umas das outras. Em resumo, eles normalmente pedem que você faça o gerenciamento de armazenamento, configuração de escalabilidade, ajuste de desempenho etc., por conta própria. Isso definitivamente não é auto-condução!

  • Um carro autônomo: os Hubs de Eventos do Azure são uma oferta SaaS da Microsoft que oferece suporte ao protocolo Kafka. Possui várias limitações em relação ao suporte da API e infraestrutura do Kafka. Um produto sólido. Ao contrário do Confluent Cloud, você não obtém recursos adicionais, como conectores totalmente gerenciados, registro de esquema, RBAC, logs de auditoria e muito mais. E, obviamente, este produto está disponível apenas na nuvem do Azure.

  • Um carro antigo: a TIBCO se concentra em suas soluções de mensagens herdadas, como o TIBCO EMS. Eles (tentam) fornecer suporte para Kafka (e Pulsar) vender suas tecnologias proprietárias. Zero experiência ou interesse em Kafka. Eles até fornecem o Kafka como arquivo .exe do Windows, embora isso não funcione bem na realidade. Se você precisar executar agentes Kafka no Windows (por exemplo, para desenvolvimento), use apenas contêineres Kafka Docker e o Windows Subsystem for Linux 2 (WSL 2) .

Ofertas não Kafka

  • Scooters autônomos: AWS Kinesis, GCP Pub/Sub, etc., são ofertas SaaS sólidas que funcionam bem se você não precisar ser independente de fornecedor e se o conjunto de recursos, escalabilidade e preços funcionarem para você.

  • Algumas bicicletas, motos e carros: soluções não-Kafka, incluindo enfileiramento de mensagens (IBM MQ, RabbitMQ, NATS), processamento de fluxo (Flink, Spark Streaming), streaming de eventos (Pulsar, Pravega), middleware de integração (muitos de código aberto /proprietário e autogerenciado/SaaS). São estruturas e produtos sólidos que você pode comparar com o Kafka. Não há bala de prata! Certifique-se de entender as diferenças entre MQ/ETL/ESB e Kafka ao fazer sua avaliação.

Frota de carros conectados: vários clusters Kafka e integração híbrida


A transformação digital em torno dos veículos conectados é um verdadeiro divisor de águas. Os veículos conversam entre si (V2V), sua infraestrutura como semáforos (V2I) e muitos outros sistemas de back-end (V2X).

Como uma nota lateral: Se você estiver interessado na relação do Kafka e veículos conectados/serviços de mobilidade, abordei casos de uso para veículos conectados e V2X em minha série de blogs sobre Kafka e MQTT com mais detalhes.

Hoje, geralmente temos que dirigir sozinhos. Espera-se que isso mude nos próximos cinco a dez anos. No entanto, mesmo que Waymo, Telsa e similares implementem com sucesso carros de nível 4 e 5 nas ruas (incluindo permissão legal), ainda veremos apenas uma fração de todos os carros dirigindo sozinhos. Será uma frota conectada com carros regulares e carros autônomos por pelo menos algumas décadas . Nem tenho certeza se carros autônomos podem ir para a Índia

O mesmo vale para Kafka. O Kafka de código aberto autogerenciado ainda é popular hoje . Muitas empresas migram para Kubernetes e infraestrutura de nuvem pública ou privada. Paralelamente, a maioria dos novos clusters Kafka na nuvem são consumidos por fornecedores que fornecem serviços parcialmente ou totalmente gerenciados para que a empresa possa se concentrar em seus problemas de negócios.

O Kafka é implantado em todas as infraestruturas. Muitas vezes, novos projetos têm uma estratégia que prioriza a nuvem. Mas ainda existem muitos data centers por aí. Não apenas por razões de legado. Por exemplo, na Rússia, não há nenhum provedor de nuvem pública. O Kafka precisa ser implantado no local. E há a tendência de implantação do Kafka na borda (ou seja, fora de um data center) .


Arquiteturas para Kafka Híbrido (SaaS + PaaS + Autogerenciado)


Por isso, é necessária uma frota de carros conectados com várias marcas e tipos de operação. A maioria das empresas usa diferentes fornecedores e provedores de nuvem. A maioria das empresas tem seus próprios data centers e uma estratégia multinuvem. O Kafka híbrido inclui várias arquiteturas . Isso inclui:

  • Kafka em uma ou várias nuvens . Não há Azure ou GCP na China, apenas Alibaba e Tencent Cloud. É por isso que a Audi construiu sua infraestrutura de carros conectados na nuvem, mas com Kafka em vez de serviços de nuvem proprietários . Eles precisam implantar globalmente.

  • Kafka na borda fora do data center , por exemplo, em uma fábrica inteligente, plataformas de petróleo, navios, lojas de varejo etc. Geralmente implantado como um único corretor em hardware muito leve, sem alta disponibilidade.

  • Kafka se estendeu por regiões , ou seja, um único cluster operando no oeste, leste e centro dos EUA. O Multi-Region Clusters (MRC) da Confluent é usado principalmente para essa arquitetura.

  • Replicação entre diferentes clusters Kafka . Os casos de uso incluem agregação, recuperação de desastres, implantações globais e muito mais. As tecnologias nativas do Kafka, como MirrorMaker 2, Confluent Replicator ou Confluent Cluster Linking, permitem essas arquiteturas.


Concentre-se no problema do negócio ao fazer sua comparação Kafka!


Esta postagem de blog explorou as diferentes opções de implantação do Kafka. Existem várias opções de código aberto e comerciais.

Se você quiser se lembrar de uma coisa deste post: Um serviço Kafka totalmente gerenciado (= SaaS real) assume toda a complexidade e risco das operações para você, da mesma forma que um carro autônomo lida com todas as ações na rua . No entanto, a maioria dos serviços disponíveis hoje fornece apenas clusters Kafka autogerenciados. Totalmente gerenciado geralmente é apenas um termo de marketing.

Uma arquitetura híbrida é a norma na maioria das empresas . Uma combinação de Kafka totalmente gerenciado na nuvem pública com Kafka autogerenciado no local ou na borda funciona muito bem e é o caminho a seguir para a maioria das empresas de todos os setores.


Que carro Kafka você dirige hoje? Qual é o seu plano para o futuro? Talvez você já esteja planejando migrar para um carro autônomo para se concentrar em seus problemas de negócios – e, consequentemente, reduzir custos e riscos dessa maneira também? Conecte comigo e com o Kai no LinkedIn e vamos discutir isso! Mantenha-se informado sobre as novas postagens do blog assinando a newsletter.

154 visualizações0 comentário

Comments


bottom of page