top of page
pedrobusko

O cenário de streaming de dados 2024

Este é um artigo traduzido originalmente publicado no blog do Kai Waehner: "The Data Streaming Landscape 2024". Assine a newsletter do Kai para se manter atualizado com novas publicações.


A empresa de pesquisa Forrester define plataformas de streaming de dados como uma nova categoria de software em um novo Forrester Wave. Apache Kafka é o padrão de fato usado por mais de 100.000 organizações. Muitos fornecedores oferecem plataformas Kafka e serviços em nuvem. Surgiram muitas estruturas complementares de processamento de fluxo de código aberto, como Apache Flink e ofertas de nuvem relacionadas. E tecnologias competitivas como Pulsar, Redpanda ou WarpStream tentam obter participação de mercado aproveitando o protocolo Kafka. Esta postagem do blog explora o cenário de streaming de dados de 2024 para resumir as soluções existentes e as tendências do mercado. O final do artigo dá uma perspectiva para potenciais novos participantes em 2025.


 

A empresa de pesquisa Forrester define plataformas de streaming de dados como uma nova categoria de software em um novo Forrester Wave. Apache Kafka é o padrão de fato usado por mais de 100.000 organizações. Muitos fornecedores oferecem plataformas Kafka e serviços em nuvem. Surgiram muitas estruturas complementares de processamento de fluxo de código aberto, como Apache Flink e ofertas de nuvem relacionadas. E tecnologias competitivas como Pulsar, Redpanda ou WarpStream tentam obter participação de mercado aproveitando o protocolo Kafka. Esta postagem do blog explora o cenário de streaming de dados de 2024 para resumir as soluções existentes e as tendências do mercado. O final do artigo dá uma perspectiva para potenciais novos participantes em 2025.



Streaming de dados é uma nova categoria de software


Os dados em tempo real superam os dados lentos. Isso se aplica a quase todos os casos de uso em qualquer setor. Aplicativos orientados a eventos alimentados por streaming de dados são a nova moda. Essa abordagem aumenta o valor do negócio como meta geral, aumentando a receita, reduzindo custos, reduzindo riscos ou melhorando a experiência do cliente.

Existem muitas categorias de software e plataformas de dados relacionadas para processar e analisar dados:

  • Banco de dados : armazene e execute cargas de trabalho transacionais.

  • Data Warehouse : Processamento de dados históricos estruturados para criar relatórios recorrentes e insights exclusivos.

  • Data Lake : Processamento de conjuntos de big data estruturados e semi ou não estruturados com processamento em lote para criar relatórios recorrentes e insights exclusivos.

  • Lakehouse : uma combinação de data warehouse e data lake para processar todos os dados em uma plataforma.

  • Streaming de dados : Processe continuamente dados em movimento e forneça consistência de dados em paradigmas de comunicação (como tempo real, lote, solicitação-resposta) em vez de armazenar e analisar dados apenas em repouso.


É claro que essas plataformas de dados muitas vezes se sobrepõem um pouco. Fiz uma série completa de blogs explorando os casos de uso e como eles se complementam.


The Forrester Wave™: plataformas de streaming de dados, quarto trimestre de 2023


A Forrester é uma empresa líder em pesquisa e consultoria que fornece insights e análises sobre vários aspectos de tecnologia, negócios e tendências de mercado .


A empresa é conhecida por suas análises aprofundadas, relatórios de pesquisa de mercado e estruturas que ajudam as organizações a navegar no cenário de tecnologia e negócios em rápida mudança. As empresas e os líderes de TI costumam usar a pesquisa da Forrester para compreender tendências de mercado, avaliar soluções tecnológicas e desenvolver estratégias para permanecerem competitivos em seus respectivos setores.

Em dezembro de 2013, a empresa de pesquisa publicou “ The Forrester Wave™: Streaming Data Platforms, Q4 2023 ”. Obtenha acesso gratuito ao relatório aqui . Os líderes são Microsoft, Google e Confluent , seguidos por Oracle, Amazon, Cloudera e alguns outros.

Você pode concordar ou discordar das posições de um fornecedor específico em relação à sua oferta ou força estratégica. Mas o surgimento desta nova onda é uma prova de que o streaming de dados é uma nova categoria de software ; não apenas mais um hype ou ferramenta ETL/ESB/iPaaS de próxima geração.


Casos de uso de streaming de dados por valor comercial


Uma nova categoria de software abre casos de uso e agrega valor comercial em todos os setores:



Agregar valor comercial é crucial para qualquer empresa. Com tantos casos de uso potenciais, não é surpresa que cada vez mais fornecedores de software adicionem suporte Kafka aos seus produtos. Pesquise em meu blog seu setor favorito para encontrar muitos estudos de caso e arquiteturas. Ou leia sobre os casos de uso do Apache Kafka em todos os setores  para começar.


O cenário de streaming de dados de 2024


Data Streaming é uma categoria de software separada de plataformas de dados. Muitos fornecedores de software construíram seus negócios inteiros em torno dessa categoria. O cenário de streaming de dados mostra que a maioria dos fornecedores usa Kafka ou implementa seu protocolo porque o Apache Kafka se tornou o padrão de fato para streaming de dados .

Novas empresas de software surgiram nesta categoria nos últimos anos. E vários players maduros no mercado de dados adicionaram suporte para streaming de dados em suas plataformas ou ecossistema de serviços em nuvem. A maioria dos fornecedores de software usa Kafka para suas plataformas de streaming de dados. No entanto, há mais do que Kafka . Alguns fornecedores usam apenas o protocolo Kafka (Azure Event Hubs) ou APIs totalmente diferentes (como Amazon Kinesis).

cenário de streaming de dados 2024 a seguir resume o status atual de produtos e serviços em nuvem relevantes.



Observação: intencionalmente, esta não é uma lista completa de estruturas, serviços em nuvem ou fornecedores . Não é um cenário oficial de pesquisa. Não há evidências estatísticas. Se a sua tecnologia favorita não estiver neste diagrama, então não a vi em minhas conversas com clientes, clientes potenciais, parceiros, analistas ou com a comunidade mais ampla de streaming de dados.


Além disso, observe que me concentro na infraestrutura geral de streaming de dados . Existem soluções brilhantes para usar e analisar dados de streaming para cenários específicos, como bancos de dados de séries temporais, mecanismos de aprendizado de máquina ou plataformas de observabilidade. Eles são complementares e geralmente conectados imediatamente a um cluster de streaming.


Modelos de implantação: autogerenciados versus totalmente gerenciados

Existem diferentes categorias de streaming de dados em relação ao modelo de implantação:

  • Autogerenciado : opere nós como corretor Kafka, Kafka Connect, Schema Registry sozinho com seus scripts e ferramentas favoritos. Isso pode ser local ou na nuvem pública da sua VPC.

  • Parcialmente gerenciado : reduza a carga de operações por meio de uma plataforma nativa da nuvem (geralmente Kubernetes) e ferramentas de operação relacionadas que automatizam tarefas operacionais, como atualizações contínuas ou rebalanceamento de partições Kafka. Isso pode ser no local ou na nuvem pública, na sua VPC ou na VPC do fornecedor.

  • Totalmente gerenciado : aproveite ofertas de SaaS (verdadeiramente) totalmente gerenciadas que realizam 100% das operações e fornecem SLAs críticos e suporte para focar na integração e na lógica de negócios.


E quanto ao Traga sua própria nuvem (BYOC)?


Alguns fornecedores oferecem um quarto modelo de implantação: Traga sua própria nuvem (BYOC) , uma abordagem em que o fornecedor de software opera um cluster para você em seu ambiente. BYOC é um modelo de implantação que fica entre um serviço de nuvem SaaS e uma implantação autogerenciada.

NÃO acredito nessa abordagem, pois existem muitas dúvidas e desafios com o BYOC em relação à segurança, suporte e SLAs no caso de tickets e interrupções P1 e P2. Por isso, coloquei isso na categoria de autogestão. É isso que acontece, mesmo que o fornecedor mexa na sua infraestrutura. No final das contas, o risco é seu porque você precisa e deseja controlar seu ambiente.

Jack Vanlightly escreveu um excelente artigo “ Sobre o futuro dos serviços em nuvem e BYOC ”. Jack explora os seguintes mitos:

  • Mito 1: BYOC permite melhor segurança ao manter os dados em sua conta.

  • Mito 2: BYOC é mais barato, com um custo total de propriedade (TCO) menor.


Eu resumo a história com esses dois desenhos e recomendo fortemente a leitura do artigo detalhado de Jack sobre BYOC e suas vantagens e desvantagens:




Aqui está a conclusão de Jack: “ Assim como os clientes deixaram de armazenar seu próprio hardware para migrar para a nuvem, aqueles que experimentarem o BYOC também migrarão para o SaaS por sua simplicidade, confiabilidade, escalabilidade e economia. “Eu concordo plenamente.


Categorias de streaming: Kafka nativo vs. compatibilidade de protocolo vs. processamento de streaming

Apache Kafka se tornou o padrão de fato para streaming de dados , assim como o Amazon S3 é o padrão de fato para armazenamento de objetos:


Leia a postagem detalhada do blog para saber mais sobre as diferenças entre um padrão de código aberto como o Kafka e um protocolo proprietário como o S3 . Ao explorar o mundo do streaming de dados, não há como não olhar para o ecossistema Apache Kafka .


O cenário de streaming de dados abrange três categorias de streaming:

  • Apache Kafka nativo : o produto ou serviço em nuvem aproveita a estrutura de código aberto para mensagens em tempo real e armazenamento de eventos. A API Kafka é 100% compatível. Não estão incluídos Kafka Streams e Kafka Connect; muitos fornecedores excluem esses recursos do Kafka.

  • Protocolo Kafka : o produto ou serviço em nuvem implementa seu próprio código, mas oferece suporte à API Kafka. Essas ofertas geralmente NÃO são 100% compatíveis. Normalmente, Kafka Connect e Kafka Streams geralmente não fazem parte das ofertas.

  • Processamento de fluxo : estruturas e serviços em nuvem correlacionam dados de maneira sem estado ou com estado. As soluções são nativas do Kafka, funcionam em conjunto com o protocolo Kafka ou são executadas de forma totalmente independente.


É realmente difícil definir essas categorias. Por exemplo, eu poderia adicionar outra seção para Kafka Connect ou, de forma mais geral, integração de dados. Outro debate é como esclarecer se um fornecedor oferece suporte à API Kafka completa (com ou sem Kafka Connect ou Kafka Streams). Mas não quero ter uma lista interminável de soluções. Portanto, o foco está no protocolo Kafka (sendo o padrão de fato para mensagens e armazenamento) e no processamento de fluxo relacionado com tecnologias Kafka e não-Kafka.


Mudanças no cenário de streaming de dados de 2023 a 2024


Meu objetivo NÃO é um cenário crescente com dezenas ou mesmo centenas de fornecedores e serviços em nuvem. Existem muitas dessas fotos. Em vez disso, concentro-me em algumas tecnologias, fornecedores e ofertas sem servidor que realmente vejo no campo usadas na prática, com entusiasmo pela comunidade mais ampla de código aberto e nuvem. Portanto, as seguintes alterações foram feitas em comparação com o cenário de streaming de dados de 2023 publicado há um ano:


Substituído


  • Categoria : mudei “ Non-Kafka ” para “ Stream Processing ” para obter o foco certo no streaming de dados, sem incluir soluções básicas de mensagens como Google Pub/Sub ou Amazon Kinesis.

  • Red Hat : mudança de estratégia na IBM (de novo). A Red Hat não oferece mais o Kafka como produto em seu site. Substituí o logotipo pela IBM , que ainda oferece produtos Kafka.


Adicionado


  • WarpStream : Um novo participante em serviços de nuvem totalmente gerenciados usando o protocolo Kafka.

  • Confluent : adicionado à categoria de processamento de fluxo com Kafka Streams, ksqlDB e Apache Flink (por meio da aquisição da Immerok).

  • Ververica : Fornece uma plataforma Flink por muitos anos. Honestamente, não sei por que senti falta deles no ano passado.

  • Serviço gerenciado da Amazon para Apache Flink (MSF). Anteriormente conhecido como Amazon Kinesis Data Analytics (KDA). Adicionado ao processamento de fluxo parcialmente gerenciado.

  • Google DataFlow : adicionado ao processamento de fluxo totalmente gerenciado.


Removido


Esta é uma seção controversa. Por isso, mais uma vez enfatizo que isso é apenas o que vejo no campo, e não como uma pesquisa ou levantamento estatístico.

  • Google Pub/Sub : foco em streaming de dados, não em corretores de mensagens.

  • TIBCO : Não usado para streaming de dados (além do TIBCO StreamBase no mercado de serviços financeiros para negociação de baixa latência).

  • DataStax : Não vejo muito o Apache Pulsar de código aberto. E eu não vi o Pulsar da DataStax oferecendo Luna Streaming para obter qualquer tração no mercado. Além disso, parece que o fornecedor fez outra mudança estratégica e agora se concentra muito mais em bancos de dados vetoriais e IA generativa (GenAI).

  • Lenses + Conduktor : A razão pela qual as removi não é porque não são usadas. Estas são ótimas ferramentas. Mas este panorama centra-se em plataformas de streaming de dados e não em ferramentas complementares de gestão, monitorização ou proxy. Enquanto isso, existem tantas ferramentas em torno de Kafka – isso merece seu próprio cenário ou artigo de comparação.

  • Pravega : Não vi essa tecnologia em campo nenhuma vez em 2023.

  • Immerok : Adquirida pela Confluent.

  • Hazelcast : Eu não vi isso no mundo real para cenários de streaming de dados. A tecnologia é conhecida como grade de dados na memória, mas não para processamento de fluxo.


Como mencionei o Forrester Wave acima, você deve perceber que não incluí todos os “forte desempenho” do relatório. Por exemplo, TIBCO, SAS ou Hazelcast. Porque não vejo nenhuma atração entre esses fornecedores em minhas conversas sobre arquiteturas orientadas a eventos e processamento de fluxo. Isso não é evidência estatística ou tentativa de tornar outras ferramentas ruins.


Critérios de avaliação para plataformas de streaming de dados


Costumo recomendar o uso dos quatro aspectos a seguir para observar diferentes estruturas, plataformas e serviços em nuvem para avaliar uma tecnologia para seu projeto de negócios ou estratégia de arquitetura corporativa:


  • Nativa da nuvem : a solução é elástica para aumentar ou diminuir? É totalmente gerenciado/sem servidor ou apenas um monte de instâncias de servidor hospedadas na nuvem? Você pode automatizar o processo de desenvolvimento, operações e testes usando DevOps, GitOps, desenvolvimento orientado a testes e princípios semelhantes?

  • Completo : A solução oferece todos os recursos necessários? O streaming de dados requer mais do que apenas mensagens ou ingestão de dados. Portanto, fornece conectores, processamento de dados, governança, segurança, autoatendimento, APIs abertas e assim por diante?

  • Em todos os lugares : onde você pode usar a solução? Somente nuvem? Todos os provedores de serviços em nuvem necessários são suportados? Existe uma opção de implantação em um data center ou mesmo na borda (ou seja, fora do data center), como uma fábrica, torre de celular ou loja de varejo? Como você pode compartilhar dados entre regiões, nuvens ou data centers? Que casos de uso são suportados (por exemplo, agregação, recuperação de desastres, integração híbrida, migração, etc.)?

  • Suportado : A solução está madura e testada em batalha? Os estudos de caso públicos estão disponíveis para seu caso de uso ou setor? O fornecedor oferece suporte total ao produto? Quais são os SLAs? Os recursos específicos estão excluídos do suporte empresarial comercial? Alguns fornecedores oferecem serviços de streaming de dados em nuvem (como um serviço gerenciado Kafka) e excluem suporte nos termos e condições (que muitas pessoas não leem em serviços de nuvem pública, infelizmente).


Vamos dar uma olhada mais profunda nas diferentes categorias de streaming de dados e começar com a tecnologia líder: Native Apache Kafka…


Apache Kafka nativo para streaming de dados


Começando com a tecnologia líder de streaming de dados, Apache Kafka, e fornecedores relacionados e ofertas de SaaS .

O crescimento da comunidade Apache Kafka nos últimos anos é impressionante . Aqui estão algumas estatísticas que Jay Kreps apresentou no ano passado na conferência de streaming de dados “Current – ​​The Next Generation of Kafka Summit” em Austin, Texas:

  • >100.000 organizações usando Apache Kafka

  • >41.000 participantes do encontro Kafka

  • >32.000 perguntas sobre Stack Overflow

  • >12.000 Jiras para Apache Kafka

  • Mais de 31.000 listas de empregos abertas solicitam habilidades Kafka

E observe o aumento do número de usuários únicos mensais ativos baixando a biblioteca cliente Kafka Java com Maven:


Fornecedores do Apache Kafka: ofertas autogerenciadas versus ofertas em nuvem

Novas empresas de software concentram-se no streaming de dados. E mesmo empresas de longa data como a IBM e a Oracle seguiram a tendência nos últimos anos. Em um nível superior – para simplificar – existem três tipos de ofertas para Apache Kafka:



Fiz uma comparação detalhada de fornecedores locais de Kafka e serviços em nuvem usando esta analogia de carro . Somente o Amazon MSK Serverless (ou seja, o serviço totalmente gerenciado, não o MSK parcialmente gerenciado) não estava disponível ao escrever esta comparação. Portanto, leia também Confluent Cloud versus Amazon MSK Serverless.


Aqui estão algumas notas sobre cada tecnologia como um resumo.

  • Apache Kafka : O padrão de fato para streaming de dados. Código aberto com uma vasta comunidade. Todos os fornecedores nesta lista dependem de (partes deste) projeto.

  • Confluent : fornece streaming de dados em qualquer lugar com Confluent Platform (autogerenciado) e Confluent Cloud (totalmente gerenciado e disponível em todos os principais provedores de nuvem).

  • Cloudera : fornece Kafka como uma oferta autogerenciada. Concentra-se na combinação de muitas tecnologias de dados como Kafka, Hadoop, Spark, Flink, NiFi e muito mais.

  • IBM : Fornece Kafka como uma oferta de nuvem parcialmente gerenciada e Kafka autogerenciado no Kubernetes via OpenShift (por meio do Red Hat). Kafka faz parte do portfólio de integração que inclui outras estruturas de código aberto como Apache Camel.

  • AWS : fornece dois produtos separados com Amazon MSK (parcialmente gerenciado) e Amazon MSK Serverless (totalmente gerenciado). Ambos os produtos possuem funcionalidades e limitações muito diferentes. Ambas as ofertas MSK excluem o suporte Kafka (leia os termos e condições). A AWS tem centenas de serviços em nuvem e o Kafka faz parte desse amplo espectro. Disponível apenas em regiões públicas de nuvem AWS; não em postos avançados, zonas locais, comprimento de onda, etc.

  • Instaclustr e Aiven : ofertas de nuvem Kafka parcialmente gerenciadas em provedores de nuvem. Os portfólios de produtos oferecem diversos serviços hospedados de tecnologias de código aberto. Instaclustr também oferece uma oferta (semi)gerenciada para infraestrutura local.

  • Microsoft Azure HDInsight . Uma parte da infraestrutura Hadoop do Azure. Não se destina a outros casos de uso. Disponível apenas em regiões públicas de nuvem do Azure.

Isto não é comparação. Apenas uma lista com algumas notas. Faça sua própria avaliação de seus fornecedores favoritos . Verifique o que você precisa: Nativo da nuvem? Completo? Em todos os lugares? Suportado?

E tenha em mente que muitos fornecedores excluem ou não se concentram em Kafka Streams e Kafka Connect e oferecem apenas Kafka incompleto ; eles querem vender seus próprios produtos de integração e processamento. Não compare maçãs e laranjas!


Frameworks de código aberto e SaaS usando o protocolo Kafka


Alguns fornecedores não dependem do Apache Kafka de código aberto, mas criaram suas próprias implementações com base no protocolo Kafka  por diferentes motivos.

O marketing não lhe dirá, mas a compatibilidade do protocolo Kafka é limitada. Isso pode criar riscos na operação de cargas de trabalho Kafka existentes no cluster e difere nas operações e na execução (que podem ser boas ou ruins).



Aqui estão algumas notas sobre cada tecnologia como um resumo:

  • Apache Pulsar : Um concorrente do Apache Kafka. História e casos de uso semelhantes, mas arquitetura diferente. Kafka é um cluster distribuído único – após a remoção da dependência do ZooKeeper em 2022. Pulsar é composto por três (!) clusters distribuídos: corretores Pulsar, ZooKeeper e BookKeeper. Escrevi sobre Pulsar vs. Kafka há dois anos, e o status ainda é mais ou menos o mesmo: agora é tarde demais para obter mais tração no mercado. E o Kafka atualiza alguns recursos ausentes, como Filas para Kafka.

  • StreamNative : o principal fornecedor por trás do Apache Pulsar. Oferece soluções autogerenciadas e totalmente gerenciadas. StreamNative Cloud for Kafka ainda está em um estágio inicial de maturidade, não tenho certeza se algum dia será fortalecido. Não é surpresa que agora você também possa escolher BYOC.

  • Redpanda : um participante relativamente novo no mercado de streaming de dados que oferece produtos autogerenciados e totalmente gerenciados. Abordagem interessante para implementar o protocolo Kafka com C++. Pode ser necessária alguma participação de mercado se eles conseguirem encontrar os casos de uso e diferenciadores adequados. Hoje, não vejo o Redpanda como uma alternativa a uma oferta nativa do Kafka devido ao seu estágio inicial na curva de maturidade e nenhum valor agregado para resolver problemas de negócios versus o risco adicional em comparação com o Apache Kafka.

  • Azure Event Hubs : um serviço de nuvem maduro e totalmente gerenciado. O serviço faz uma coisa, e isso é muito bem feito: ingestão de dados por meio do protocolo Kafka. Portanto, não é uma plataforma de streaming completa, mas é mais comparável ao Amazon Kinesis ou ao Google Cloud PubSub. Disponível apenas em regiões públicas de nuvem do Azure. A compatibilidade limitada com o protocolo Kafka e o alto custo do serviço são os dois bloqueadores que ouço regularmente.

  • WarpStream : Um novo participante no mercado de streaming de dados. O serviço em nuvem é uma plataforma de streaming de dados compatível com Kafka construída diretamente sobre o S3. A pior latência provavelmente é adequada para alguns casos de uso do Kafka. Mas só o futuro mostrará se esta arquitetura diferenciadora desempenhará um papel fundamental depois que outros serviços em nuvem Kafka adotarem o KIP-405 para armazenamento em camadas do Kafka (que está disponível em acesso antecipado desde o Kafka 3.6).


Tenha cuidado com declarações de fornecedores que reimplementam o protocolo Kafka. A maioria desses fornecedores exagera na compatibilidade do protocolo Kafka. Além disso, “ benchmarking ” (ou seja, escolher um ponto ideal ou cenário de nicho onde você tenha um desempenho melhor que seu concorrente) é a técnica de marketing favorita para “provar” diferenciais do verdadeiro Apache Kafka .


Tecnologias de stream processing


Embora o Apache Kafka seja o padrão de fato para armazenamento de mensagens e eventos, existem muitas tecnologias complementares e competitivas para processamento de fluxo:



Ainda mais tecnologias surgem hoje em dia devido ao crescimento desta categoria de software em todo o mundo e em todos os setores. Isso é uma excelente notícia. O streaming de dados veio para ficar e crescer .

A situação é difícil de explorar como parte do cenário de streaming de dados, já que alguns produtos são complementares e competitivos em relação ao ecossistema Apache Kafka .



Curiosidade: a conferência principal de Kafka foi renomeada de “Kafka Summit” para “Atual – A Próxima Geração de Kafka Summit” em 2022. Por quê? Porque o streaming de dados é mais do que Kafka . Muitas tecnologias complementares e competitivas estiveram presentes, incluindo fornecedores, estandes, demonstrações e estudos de caso de clientes. Esta é uma evolução notável do streaming de dados para a comunidade e empresas em todo o mundo!

Apache Flink está se tornando o padrão de fato para processamento de stream . A ascensão de Flink é muito semelhante à adoção de Kafka há alguns anos:



Mas não subestime o poder e os casos de uso do processamento de fluxo nativo do Kafka com Kafka Streams . A taxa de adoção é enorme, pois o Kafka Streams é fácil de usar. E faz parte do Apache Kafka. Escrevi uma comparação dos benefícios do Apache Flink e das diferenças entre Flink e Kafka Streams .


Alguns produtos de processamento de fluxo são complementares ao Kafka


Cada estrutura de processamento de fluxo ou serviço em nuvem tem vantagens e desvantagens. Embora Flink ganhe muita força, há outros também. Não existe um tamanho único que sirva para todos os casos de uso . Aqui estão algumas tecnologias maduras e emergentes que complementam o Apache Kafka.


Estruturas de processamento de fluxo de código aberto


  • Kafka Streams: Parte do Apache Kafka de código aberto. Portanto, se você baixar o Kafka do site do Apache, ele sempre incluirá a biblioteca. Você deve sempre se perguntar se precisa de outra estrutura além do Kafka Streams para processamento de stream. O benefício significativo: Uma tecnologia, um fornecedor, uma infraestrutura.

  • ksqlDB (geralmente chamado de KSQL, mesmo após a reformulação da marca) : Uma camada de abstração sobre Kafka Streams para fornecer processamento de fluxo com streaming SQL. Portanto, também nativo de Kafka. Ele vem com uma licença comunitária Confluent e é de uso gratuito. Ponto ideal: streaming ETL.

  • Apache Flink : estrutura líder de processamento de fluxo de código aberto. Os recursos avançados incluem um poderoso mecanismo de computação escalonável (separado do Kafka), liberdade de escolha para desenvolvedores entre ANSI SQL, Java e Python, APIs para processamento de eventos complexos (CEP) e APIs unificadas para cargas de trabalho de fluxo e lote.

  • Spark Streaming : a parte de streaming da estrutura de processamento de big data de código aberto Apache Spark. Ainda não estou 100% convencido. Kafka Streams e Apache Flink são as melhores opções para processamento de stream. No entanto, a enorme base instalada de clusters Spark nas empresas amplia a adoção.


Fornecedores de processamento de stream e serviços em nuvem


  • Ververica : conhecida empresa Flink. Adquirida pela gigante chinesa Alibaba em 2019. Não tem muita força na Europa e nos EUA, mas é definitivamente uma jogadora especialista para Flink na Ásia. Pessoalmente, nunca vi o fornecedor ser usado fora da Ásia.

  • Decodificável : um novo serviço em nuvem. Estágio muito inicial. Eu ainda adicionei, pois acho que é uma excelente jogada estratégica construir um serviço de streaming de dados em nuvem sobre o Apache Flink. Enorme potencial se for combinado com as infraestruturas Kafka existentes nas empresas. Mas também fornece conectores pré-construídos para sistemas não Kafka.

  • Amazon Managed Service for Apache Flink (MSF) : um serviço (quase) totalmente gerenciado pela AWS que permite aos clientes transformar e analisar dados de streaming em tempo real com Apache Flink. Ele ainda oferece algumas lacunas (caras) para escalonamento automático e não é verdadeiramente sem servidor. Suporta todas as interfaces Flink, ou seja, SQL, Java e Python. E conectores não Kafka também. Disponível apenas na AWS.

  • Confluent Cloud : uma oferta Flink verdadeiramente serverless que é elástica e pode ser reduzida a zero se não for usada. Suporta apenas SQL no início. Suporte para Java e Python chegando em 2024. Começa na AWS, mas deverá estar disponível no GCP e Azure no início de 2024. Profundamente integrado com Kafka totalmente gerenciado, registro de esquema, conectores, governança de dados e outros recursos do Confluent. Fornece uma experiência de desenvolvedor completa e perfeita para pipelines de streaming de dados.

  • Databricks : foi o fornecedor líder por trás do Apache Spark. Hoje, ninguém fala mais sobre Spark (mesmo que seja uma peça tecnológica chave da plataforma de nuvem da Databricks). Tentando entrar muito mais no negócio de dados em tempo real. Gosto da plataforma para análises, relatórios e IA/aprendizado de máquina. Mas não estou convencido pela história do data lakehouse sobre “fazer tudo dentro de um big data lake”. Confira minha série de blog “ Data Warehouse vs. Data Lake vs. Data Streaming – Amigos, Inimigos, Inimigos? “.


A maioria desses serviços funciona bem com soluções de outros fornecedores . Por exemplo, o Databricks se integra facilmente a qualquer ambiente Kafka, ou o Amazon MSF se conecta diretamente ao Kafka do Confluent.



A maioria das tecnologias de processamento de stream complementa o Apache Kafka. Mas estruturas de processamento de fluxo como Flink ou serviços em nuvem como Databricks NÃO precisam do Kafka como camada de ingestão. Existem outras opções…

Flink, Spark, et al. pode consumir dados de outras plataformas de streaming ou diretamente de armazenamentos de dados, como um arquivo ou banco de dados. Tenha cuidado com o último: se você usar Flink ou Spark Streaming para processamento de stream, tudo bem. Mas se a primeira coisa a fazer for ler os dados de um armazenamento de objetos S3, bem, isso são dados em repouso.

MAS: Uma tendência comum no mercado de streaming de dados é o armazenamento de longo prazo de (alguns) eventos dentro da plataforma de streaming de eventos . Especialmente, a introdução do Tiered Storage para Kafka mudou os recursos e os casos de uso . O suporte para armazenamento de objetos por alguns fornecedores por meio da interface S3 pode ser uma virada de jogo completa para armazenamento e processamento de eventos em tempo real com o protocolo Kafka ou com outros mecanismos de análise e bancos de dados quase em tempo real ou em lote. E o Apache Iceberg pode ser a próxima tendência da qual falamos para o cenário de streaming de 2025 .




E entenda que os aplicativos de processamento de fluxo também podem manter o estado : o back-end do seu aplicativo Kafka Streams ou Flink pode armazenar o estado para suas tarefas, como fins de enriquecimento. Um aplicativo de processamento de fluxo não trata apenas de feeds de dados em tempo real. Ele também correlaciona esses feeds em tempo real com dados históricos (já ingeridos) . Esta é uma abordagem comum para metadados ou dados de negócios que são atualizados com menos frequência (como em um sistema SAP ERP).


Alguns produtos de processamento de fluxo são competitivos com Kafka


Em algumas situações, você deve avaliar se o Apache Kafka ou outra tecnologia é a escolha certa. Aqui estão alguns concorrentes de código aberto e nuvem:

  • Amazon Kinesis : ingestão de dados em armazenamentos de dados AWS. Produto maduro para um problema específico. Disponível apenas na AWS.

  • Google Cloud DataFlow : serviço totalmente gerenciado para execução de pipelines Apache Beam no ecossistema Google Cloud Platform. Produto maduro para um problema específico. Disponível apenas no GCP.

  • Muitas startups competitivas surgem em torno do processamento de stream fora do mundo Kafka e Flink. Vamos ver se alguns ganham força em 2024.

Amazon Kinesis e Google Cloud DataFlow são excelentes serviços em nuvem se você “apenas” deseja ingerir dados em um armazenamento em nuvem específico. Se não houver outros casos de uso, essas ferramentas podem ser a escolha certa (se o preço em escala e outras limitações funcionarem para você).

Apache Kafka é uma plataforma de streaming de dados muito mais flexível e estratégica . Muitos projetos ainda começam com a ingestão de dados e constroem o primeiro pipeline. Mas fornecer acesso ao mesmo fluxo de eventos a qualquer outro coletor de dados ou para processamento de fluxo poderoso com ferramentas como Kafka Streams ou Apache Flink é uma vantagem significativa.


Potencial para o cenário de streaming de dados em 2025


O streaming de dados é uma jornada . O mesmo ocorre com o desenvolvimento de plataformas de streaming de eventos e serviços em nuvem. Vários fornecedores estabelecidos de software e nuvem podem obter mais tração com suas ofertas de streaming de dados. E algumas startups podem crescer significativamente. A seguir mostramos algumas tecnologias que podem evoluir e ter uma adoção crescente em 2024:

  • Serviços adicionais de nuvem Kafka, como Digital Ocean ou Oracle Cloud Infrastructure (OCI) Streaming, podem ganhar mais força. Ainda não vi isso em campo. Mas, por exemplo, combinar o Oracle GoldenGate com o OCI Streaming pode ser interessante para algumas organizações em alguns casos de uso.

  • Hazelcast  muda significativamente a marca e faz parte do Streaming Data Wave da Forrester. Com uma oferta de nuvem local e sem servidor, a tecnologia pode ganhar força para streaming de dados e voltar ao meu cenário no próximo ano.

  • Bancos de dados de streaming como Materialize ou RisingWave podem se tornar sua própria categoria. Minha sensação: estágio super inicial do ciclo de hype. Veremos em 2024 se e onde esta tecnologia será adotada de forma mais ampla e quais são os casos de uso. É difícil responder como eles competirão com bancos de dados analíticos emergentes em tempo real, como Apache Druid, Apache Pinot, ClickHouse, Rockset, Timeplus, et al. Eu sei que existem diferenças, mas a comunidade e as empresas em geral precisam a) compreender essas diferenças eb) encontrar problemas de negócios para isso.

  • Surgem startups de SaaS como Quix  e Bytewax (ambas com processamento de stream com Python), DeltaStream (desenvolvida por Apache Flink) e muitas outras. Vamos ver qual deles ganha força no mercado com um produto e modelo de negócio inovadores.

  • As empresas multiprodutos existentes ampliam suas ofertas em torno de Kafka com serviço Flink separado. Por exemplo, Aiven já tem um produto Flink que pode ganhar força como sua oferta Kafka.

  • Fornecedores tradicionais de gerenciamento de dados, como MongoDB ou Snowflake, tentam se aprofundar no negócio de streaming de dados. Ainda sou fã da separação de preocupações; então acho que eles deveriam manter seu ponto ideal e (apenas) fornecer ingestão de streaming e CDC como casos de uso, mas não (tentar) competir com fornecedores de streaming de dados.

Curiosidade: o modelo de negócios de quase todas as startups emergentes consiste em serviços em nuvem totalmente gerenciados , e não na venda de licenças para implantações locais. Muitos são baseados em código aberto ou núcleo aberto, outros fornecem apenas uma implementação proprietária.


A jornada do streaming de dados é longa…


O Data Streaming não é uma corrida, é uma jornada! Arquiteturas e tecnologias orientadas a eventos, como Apache Kafka ou Apache Flink, exigem uma mudança de mentalidade na arquitetura, desenvolvimento, implantação e monitoramento de aplicativos . Integração legada, microsserviços nativos da nuvem e compartilhamento de dados em configurações híbridas e multinuvem são a norma, não uma exceção.

O cenário de streaming de dados de 2024 mostra como uma nova categoria de software está emergindo. Ainda estamos numa fase inicial. Uma nova categoria de software leva tempo para ser criada.  Na maioria das conversas com clientes, parceiros e a comunidade, ouço declarações como: “Vemos o valor, mas ainda não chegamos lá – agora começamos a construir os primeiros pipelines de streaming de dados e temos um roteiro para os próximos anos para adicionar mais processamento avançado de fluxo”.

The Forrester Wave: Streaming Data Platforms, Q4 2023 é a primeira prova de que a categoria está avançando no ciclo de hype.

Olhando para o competitivo mercado de streaming de dados, um dos meus exemplos favoritos do mundo real para escolher as tecnologias certas de processamento de stream vem do DoorDash : Por que as empresas migram do Amazon SQS e Kinesis para Apache Kafka e Flink . O artigo explora as vantagens e desvantagens entre soluções específicas de nuvem, como Kinesis, e um ecossistema aberto em torno de tecnologias de código aberto, como Kafka e Flink.

Por último, mas não menos importante, confira minhas 5 principais tendências de streaming de dados para 2024 para entender como o cenário de streaming de dados se encaixa nas tendências emergentes: compartilhamento de dados, contratos de dados, processamento de fluxo sem servidor, arquiteturas multinuvem e GenAI .


Quais são as tendências mais relevantes e interessantes para streaming de dados com Apache Kafka e Flink em 2024 para colocar os dados em movimento? Como é o cenário da sua empresa para streaming de dados? Conecte comigo e com o Kai no LinkedIn e vamos discutir isso! Mantenha-se informado sobre as novas postagens do blog assinando a newsletter.

184 visualizações0 comentário

Comments


bottom of page