Escolher o serviço gerenciado do Cloud para Apache Kafka ou o Pub/Sub

Este documento ajuda você a escolher entre o Pub/Sub e o Serviço gerenciado do Google Cloud para Apache Kafka. O Pub/Sub e o Serviço Gerenciado para Apache Kafka são serviços de mensagens gerenciados e escalonáveis horizontalmente, capazes de lidar com cargas de trabalho de alto volume.

Este documento é destinado a desenvolvedores, arquitetos ou tomadores de decisão que buscam um serviço gerenciado para processar dados de streaming e cargas de trabalho de mensagens.

Há várias opções para executar o Apache Kafka, incluindo serviços de parceiros e software de código aberto autogerenciado. Este documento não aborda essas opções.

Para uma visão geral dos conceitos do Pub/Sub, consulte Visão geral do serviço do Pub/Sub.

Para uma visão geral dos conceitos do Serviço gerenciado para Apache Kafka, consulte Visão geral do Serviço gerenciado para Apache Kafka.

Facilidade operacional x portabilidade

A escolha entre o Pub/Sub e o Serviço Gerenciado para Apache Kafka é uma troca entre simplicidade operacional e portabilidade.

Simplicidade operacional do Pub/Sub

O Pub/Sub é um serviço totalmente gerenciado, sem servidor e distribuído globalmente que usa a infraestrutura do Google Cloud . Ele é escalonado automaticamente para processar sua carga de trabalho, então você não precisa se preocupar com o gerenciamento da infraestrutura. O Pub/Sub ajusta dinamicamente a capacidade de tópicos e assinaturas individuais. Editores e assinantes podem ser escalonados de forma independente, não apenas em diferentes tópicos e assinaturas, mas também nos mesmos.

O Pub/Sub também move dados entre várias regiões sem problemas. Isso significa que editores e assinantes podem se conectar à região mais próxima, e o serviço cuida do restante.

O Serviço Gerenciado para Apache Kafka também pode processar grandes volumes de dados. No entanto, é necessário gerenciar o tamanho do cluster e configurar várias outras propriedades com base nas necessidades de escalonamento dos seus tópicos. E o mais importante: considere o número de partições a serem atribuídas aos seus tópicos. Muitas partições podem desperdiçar recursos. Poucas partições podem sobrecarregar os agentes no cluster do Kafka. Também é preciso considerar o número de réplicas que você precisa configurar por partição, dependendo dos requisitos de latência e fan-out do consumidor.

Como uma implantação do Kafka está vinculada a uma região específica, se você mover dados entre regiões, essa movimentação precisará acontecer fora do serviço. Garantir a integridade contínua da movimentação de dados e atender às necessidades dos tópicos no cluster do Kafka aumenta seu trabalho operacional.

Portabilidade do Serviço gerenciado para Apache Kafka

Embora o escalonamento automático e a distribuição global de dados do Pub/Sub facilitem a operação, as APIs do Apache Kafka são muito mais amplamente adotadas.

Se você planeja usar sistemas de mensagens independentes em diferentes ambientes locais ou de provedores de nuvem, o Serviço Gerenciado para Apache Kafka pode oferecer uma experiência mais consistente em todos os seus aplicativos. Isso porque é possível padronizar o Kafka e usar a mesma API para se comunicar com o serviço em cada ambiente.

Embora seja possível usar o Pub/Sub como um sistema central de mensagens em todos os seus ambientes, é importante lembrar que ele é um serviço distinto com uma API própria. Se você precisar interagir com um sistema de mensagens para um ambiente específico, usar o Serviço Gerenciado para Apache Kafka pode oferecer uma experiência de desenvolvimento mais unificada.

Qual serviço é ideal para você

Se uma experiência consistente em diversos ambientes for fundamental, escolha o Serviço gerenciado para Apache Kafka. Se o foco for a configuração mínima para escalonamento de cargas de trabalho ou movimentação de dados entre regiões, o Pub/Sub oferece uma vantagem interessante.

Escolha o Pub/Sub se os seguintes fatores descreverem seus requisitos:

  • Você prioriza a simplicidade operacional no Google Cloud.

  • Você precisa de uma solução escalonável e sem servidor com gerenciamento de sobrecarga mínima.

  • Você tem tamanhos de carga de trabalho imprevisíveis ou variáveis. O Pub/Sub também funciona muito bem quando a taxa de transferência da carga de trabalho é estável.

  • Você precisa de um rastreamento de processamento por mensagem para minimizar os efeitos do pipeline devido a mensagens incorretas. O Pub/Sub, com as filas de mensagens mortas (DLQs) integradas e o suporte para processamento de mensagens fora de ordem, permite que seu sistema permaneça operacional mesmo ao encontrar mensagens problemáticas.

  • Você precisa de agregação de dados entre regiões.

  • Você precisa de escalonamento independente de editores e assinantes.

Escolha o Serviço gerenciado para Apache Kafka se os seguintes fatores descreverem seus requisitos:

  • A portabilidade entre vários provedores de nuvem ou ambientes locais é essencial.

  • Você tem cargas de trabalho do Kafka que quer migrar para o Google Cloud. Para mais informações, consulte Escolher com base na configuração atual do Kafka.

  • Você tem um volume de tráfego consistente sem muita variação.

  • Você quer gerenciar a capacidade.

  • Você precisa de ordenação de mensagens com alta capacidade de processamento por chave.

  • Você quer usar o padrão de origem de eventos com um registro de eventos como fonte da verdade.

Escolha com base na configuração atual do Kafka

Se você já usa o Kafka e busca uma solução gerenciada, segura e confiável no Google Cloud, o Managed Service para Apache Kafka é a opção recomendada.

Se você já estiver executando o Kafka e quiser reescrever seus aplicativos para aproveitar os benefícios de um serviço global altamente escalonável e com escalonamento automático, o Pub/Sub é uma boa recomendação. Para migrar do Kafka para o Pub/Sub, consulte Migrar do Kafka para o Pub/Sub.

Para novas cargas de trabalho ou usuários que não conhecem o streaming no Google Cloud, recomendamos o Pub/Sub devido à facilidade de uso. Se você quiser mover suas cargas de trabalho do Kafka para a nuvem com o mínimo de mudanças no código, o Serviço Gerenciado para Apache Kafka é a escolha ideal.

Integração com produtos do Cloud

O Serviço Gerenciado para Apache Kafka e o Pub/Sub do Google se integram a vários serviços do Google Cloud , como Dataflow, BigQuery, Cloud Storage e muito mais.

Se você precisa de uma estratégia multicloud e prioriza a portabilidade entre diferentes provedores de nuvem, o Managed Service para Apache Kafka oferece mais flexibilidade. Isso acontece porque o Kafka se integra a uma variedade maior de sistemas fora do Google Cloud em comparação com o Pub/Sub.

Comparação dos recursos

Se esses critérios de decisão de alto nível nas seções anteriores não ajudarem, você poderá fazer uma escolha com base no suporte a recursos específicos. Para uma comparação detalhada entre os dois produtos, consulte a tabela a seguir.

Recurso Pub/Sub Serviço gerenciado para Apache Kafka
Facilidade de uso Mais fácil de configurar e manter Exige mais esforço operacional
Modelo de custo Pagamento por uso Pagar pela capacidade de computação

Pague pelo uso de rede e armazenamento.

Processamento único Oferece suporte a uma única entrega simultânea e semântica de confirmação forte. Oferece suporte a efeitos colaterais exatamente uma vez ao ler de um tópico e gravar em outro.
Escalonamento Escalonamento automático sem interrupções de KBs a GBs por segundo por tópico que funciona até mesmo para cargas de trabalho imprevisíveis. Requer configuração manual
Entrega solicitada

É possível fazer a ordenação com chaves.

Capacidade de 1 MBps por chave de ordenação refinada

Oferece ordenação em partições.

Ordenação por partição até a capacidade de transmissão de uma partição.
Retenção de dados 31 dias Retenção indefinida
Latência de ponta a ponta Latência de ponta a ponta geralmente na ordem de 100 milissegundos Normalmente, da ordem de 10 milissegundos para assinantes que se comportam bem.
Compatibilidade com Kafka de código aberto para lift and shift Não Sim
Identity and Access Management e segurança Sim Sim
Configuração automática de rede Sim Sim
Multicloud: idêntico em todas as nuvens Não Sim
SLA de tempo de atividade Sim Sim
SLA do plano de dados Sim Não neste momento
Geração de registros e monitoramento Sim Sim
Reequilíbrio de partições entre agentes Não relevante Sim
Capacidade automática O Pub/Sub ajusta dinamicamente a capacidade com base na taxa de mensagens recebidas e na demanda dos assinantes. O serviço gerencia a infraestrutura subjacente, como VMs e armazenamento. Você controla aspectos como o número de partições e o fator de replicação.
Gerenciamento automático de armazenamento Sim Sim
Upgrades automáticos de software Sim Sim
Suporte ao cliente Sim Sim
Serviço do Kafka Connect Não relevante Com serviços do Connect fornecidos pelo usuário
Suporte a esquemas Sim Com um registro de esquema fornecido pelo usuário
Compatível com ks qIDB, KSQL Não Sim
Suporte para conectores OSS Sim, para conectores do Kafka e do Flink Não
Integração com data lake e data warehouse Sim Sim