top of page
pedrobusko

O cenário de streaming de dados em 2023

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


O fluxo de dados é uma nova categoria de software para processar dados em movimento. O 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. Muitos mecanismos complementares de processamento de fluxo, como Apache Flink e SaaS, surgiram. E tecnologias competitivas como Pulsar e Redpanda tentam obter participação de mercado. Esta postagem explora o cenário de streaming de dados de 2023 para resumir as soluções existentes e as tendências do mercado.

O cenário de streaming de dados em 2023

O streaming de dados é uma nova categoria de software


Aplicativos orientados a dados são o novo preto. Essa abordagem aumenta o valor comercial 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 mistura de data warehouse e data lake para processar todos os dados em uma plataforma.

  • Transmissão de dados : processe continuamente dados em movimento e forneça consistência de dados em paradigmas de comunicação, em vez de armazenar e analisar dados em repouso.

Claro, essas plataformas de dados geralmente se sobrepõem um pouco. Fiz uma série completa de blogs explorando os casos de uso e como eles se complementam.

Casos de uso de streaming de dados por valor comercial

Existem casos de uso para streaming de dados em todos os setores:


Agregar valor comercial é crucial para qualquer empresa. Com tantos casos de uso em potencial, não é surpresa que cada vez mais fornecedores de software adicionem suporte Kafka a 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 2023


O Data Streaming é uma categoria separada de software 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 se tornou o padrão de fato.

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.

O Apache Kafka é o padrão de fato para streaming de dados, assim como o Amazon S3 é o padrão de fato para armazenamento de objetos S3 . 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 o Amazon Kinesis).

O seguinte Data Streaming Landscape 2023 resume o status atual de produtos e serviços de nuvem relevantes:

Data Streaming Landscape 2023

Observação: esta não é uma lista completa de estruturas, serviços de nuvem ou fornecedores . Não é um cenário de pesquisa oficial. Se sua tecnologia favorita não estiver neste diagrama, não a vi em minhas conversas com clientes, clientes potenciais, parceiros, analistas ou a comunidade mais ampla de streaming de dados. Provavelmente veremos muito mais logotipos neste diagrama em um ou dois anos, pois este ainda é o começo da era do streaming de dados.

Além disso, observe que eu 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 muitas vezes conectados imediatamente a um cluster de streaming.


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


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

  • Nativo da nuvem : a solução é elástica para escalar para cima e para baixo? É 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, ele fornece conectores, processamento de dados, governança, segurança, autoatendimento e assim por diante?

  • Em todos os lugares : onde você pode usar a solução? Somente nuvem? Todos os provedores de serviços de nuvem necessários são suportados? Existe uma opção de implantação em um datacenter ou até mesmo na borda (ou seja, fora de um datacenter)? Como você pode compartilhar dados entre regiões, nuvens ou data centers? Quais casos de uso são compatíveis (por exemplo, agregação, recuperação de desastres, integração híbrida 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? É uma pena que esse aspecto precise ser avaliado. Ainda assim, alguns fornecedores oferecem serviços de nuvem de streaming de dados e excluem o suporte nos termos e condições (que muitas pessoas não leem em serviços de nuvem, infelizmente).

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


Apache Kafka é o padrão de fato para streaming de dados


Começando com o líder e padrão de fato Apache Kafka e fornecedores relacionados e ofertas de SaaS. O Apache Kafka tornou-se o padrão de fato para streaming de dados, assim como o Amazon S3 é o padrão de fato para armazenamento de objetos:

Apache Kafka é o padrão de fato para streaming de dados

Quando você explora o mundo do streaming de dados, não tem como não olhar para o ecossistema Apache Kafka.


Adoção e crescimento do Apache Kafka


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

  • >100.000 organizações usando o Apache Kafka

  • >41.000 participantes do encontro Kafka

  • >32.000 perguntas sobre estouro de pilha

  • >12.000 Jiras para Apache Kafka

  • >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:

Curiosidade: a principal conferência de Kafka foi rebatizada de “Kafka Summit” para “Current 2022 – The Next Generation of Kafka Summit”. Por que? 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. Essa é uma evolução notável do streaming de dados para a comunidade e empresas em todo o mundo!


Fornecedores do Apache Kafka: ofertas autogerenciadas versus ofertas de nuvem


As novas empresas de software se concentram no streaming de dados. E players tradicionais como IBM e Amazon entraram na onda nos últimos anos. Em um nível superior – para simplificar – existem três tipos de ofertas para o Apache Kafka:

três tipos de ofertas para o Apache Kafka

Fiz uma comparação detalhada de fornecedores Kafka locais e serviços em nuvem usando essa 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 Confluent Cloud versus Amazon MSK Serverless.

Aqui estão algumas notas sobre cada fornecedor 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 contam com (partes de) este projeto.

  • Confluent : Fornece streaming de dados em qualquer lugar com a plataforma Confluent (autogerenciada) e a nuvem Confluent (totalmente gerenciada e disponível em 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.

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

  • TIBCO : Oferece Kafka para Linux e Windows. Produto estranho (como os especialistas em Kafka sabem, Kafka não funciona bem no Windows) e documentação mínima.

  • AWS : Fornece dois produtos separados com Amazon MSK (parcialmente gerenciado) e Amazon MSK Serverless (totalmente gerenciado). O suporte Kafka está excluído nas ofertas do MSK. A AWS possui centenas de serviços em nuvem e o Kafka faz parte desse amplo espectro. Disponível apenas nas nuvens AWS.

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

  • Microsoft Azure HDInsight . Uma parte da infraestrutura Hadoop do Azure. Não destinado a outros casos de uso. Disponível apenas nas nuvens do Azure.

  • Lentes e Conduktor : Ferramentas para gerenciar e monitorar clusters Kafka. Complementar aos demais fornecedores.

Isso 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: Cloud-native? Completo? Em todos os lugares? Suportado?


Estruturas de código aberto compatíveis com Kafka e SaaS


Alguns fornecedores não dependem do Apache Kafka de código aberto, mas criaram suas próprias implementações por diferentes motivos. A compatibilidade do protocolo Kafka é limitada (embora o marketing não lhe diga). Isso pode criar riscos na operação de cargas de trabalho Kafka existentes no cluster e difere em operações e execução (que podem ser boas ou ruins).

Estruturas de código aberto compatíveis com Kafka e SaaS

Aqui estão algumas notas sobre cada fornecedor 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 – depois de remover a dependência do ZooKeeper em 2022), Pulsar é três clusters distribuídos (corretores Pulsar, ZooKeeper, BookKeeper). Escrevi sobre Pulsar vs. Kafka há dois anos e acho que o status ainda é o mesmo (e agora é tarde demais para obter mais tração no mercado).

  • StreamNative : O principal fornecedor por trás do Apache Pulsar. Oferece soluções autogerenciadas e totalmente gerenciadas. O StreamNative Cloud for Kafka está em versão beta e não está pronto para produção.

  • DataStax : uma oferta da Pulsar integrada ao portfólio de produtos com foco em banco de dados. Não tenho certeza se o produto de streaming é apenas marketing ou não. Se você quiser experimentar o serviço de nuvem Astra Streaming desenvolvido pela Pulsar, ele o encaminhará para o DBaaS multinuvem construído no Apache Cassandra.

  • Redpanda : Um novo participante no mercado de streaming de dados que oferece produtos autogerenciados e totalmente gerenciados. Abordagem interessante para implementar o protocolo Kafka com C++. Pode levar alguma participação de mercado se eles puderem encontrar os casos de uso e diferenciadores adequados. Hoje, não vejo o Redpanda como uma alternativa à oferta nativa do Kafka por causa de 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.

  • Hubs de eventos do Azure : um serviço de nuvem maduro e totalmente gerenciado. O serviço faz uma coisa, e muito bem feito: Ingestão de dados via protocolo Kafka (com compatibilidade limitada). Portanto, não é uma plataforma de streaming completa, mas é mais comparável ao Amazon Kinesis ou ao Google Cloud PubSub. Disponível apenas na nuvem do Azure.

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, o “ benchmarkmarketing ” (ou seja, escolher um ponto ideal ou um cenário de nicho em que você tenha um desempenho melhor do que seu concorrente) é a técnica de marketing favorita para “provar” os diferenciais para o verdadeiro Apache Kafka .


O streaming de dados é mais do que o Apache Kafka…


Embora o Apache Kafka seja o padrão de fato para streaming de dados, existem muitas tecnologias complementares e competitivas.

streaming de dados é mais do que o Apache Kafka

Ainda mais tecnologias surgem hoje em dia devido ao crescimento dessa 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 é desafiadora para explorar como parte do cenário de streaming de dados, pois alguns produtos são complementares e competitivos para o ecossistema Apache Kafka .


Algumas tecnologias de streaming de dados são concorrentes do 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 da AWS. Produto maduro para um problema específico. Disponível apenas na AWS.

  • Google Cloud PubSub : ingestão de dados em armazenamentos de dados do GCP. Produto maduro para um problema específico. Disponível apenas no GCP.

  • Pravega e Hazelcast Jet : Estruturas de código aberto para processamento de fluxo. Eu os adicionei para mostrar que há mais do que Kafka e Flink no mundo do código aberto. No entanto, vejo pouca tração no mercado.

O Amazon Kinesis e o Google Cloud PubSub 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ê).

O 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 criam o primeiro pipeline. Mas fornecer acesso ao mesmo fluxo de eventos para qualquer outro coletor de dados ou para processamento de fluxo poderoso com ferramentas como Kafka Streams ou Apache Flink é uma vantagem significativa.


Algumas tecnologias de streaming de dados são complementares ao Kafka


Cada estrutura de processamento de fluxo ou serviço de nuvem tem compensações. 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:

  • Apache Flink : Juntamente com o Kafka Streams (parte do Apache Kafka), a principal estrutura de processamento de fluxo de código aberto. Os recursos avançados incluem suporte ANSI SQL e APIs para cargas de trabalho de fluxo e lote.

  • Decodable e Immerok : Dois novos serviços em nuvem. Estágio muito inicial. Eu ainda os adicionei, pois acho que é uma excelente jogada estratégica construir um serviço de nuvem de streaming de dados sobre o Apache Flink. Enorme potencial se for combinado com as infraestruturas Kafka existentes nas empresas.

  • Spark Streaming : A parte de streaming do 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.

  • Databricks : O fornecedor líder por trás do Apache Spark. Obtendo ou pelo menos tentando obter muito mais no negócio de dados em tempo real. Gosto da plataforma, mas não estou convencido da história da lakehouse em torno de “fazer tudo dentro de um big data lake”. Confira minha série de blogs “ Data Warehouse vs. Data Lake vs. Data Streaming – Friends, Enemies, Frenemies? “.

Apache Flink e Spark Streaming SEM Kafka?


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

Flink, Spark, e outros. pode consumir dados de outras plataformas de streaming ou diretamente de armazenamentos de dados. No entanto, tenha cuidado com o último: se você usar Flink ou Spark Streaming para processamento de fluxo, tudo bem. Mas se a primeira coisa a fazer é ler os dados de um armazenamento de objetos do S3, bem, isso são dados em repouso. Não faça processamento de stream com dados em repouso.

Ou, em outras palavras, não armazene dados no banco de dados ou no data lake apenas para revertê-los posteriormente . Quase todos os exemplos e estudos de caso do Spark Streaming que vi no ano passado em conferências e reuniões com clientes eram assim. Isso é um antipadrão para processamento de fluxo !

Para ser claro: não há problema em ingerir dados do S3 ou outro armazenamento de dados para um aplicativo de processamento de fluxo criado com Kafka Streams, Flink e outros. Esses dados podem ser usados ​​no back-end com estado para suas tarefas, como fins de enriquecimento. Um aplicativo de processamento de fluxo não é apenas sobre feeds de dados em tempo real. Ele também correlaciona esses feeds em tempo real com dados históricos (já ingeridos) . Essa é uma abordagem comum para metadados ou dados de negócios que são atualizados com menos frequência (como em um sistema SAP ERP).


Por que Kafka Streams e KSQL estão ausentes no cenário de streaming de dados?


Eu intencionalmente não coloquei Kafka Streams e KSQL no cenário de streaming de dados. Ambas são tecnologias de processamento de fluxo nativas do Kafka.

O Kafka Streams, como o Kafka Connect, faz parte do Apache Kafka de código aberto . Portanto, a biblioteca Java está incluída se você baixar o Kafka no site da Apache. Ele já está incluído no cenário de streaming de dados com o logotipo Kafka . Você deve sempre se perguntar se precisa de outra estrutura além do Kafka Streams para processamento de fluxo. O benefício significativo: uma tecnologia, um fornecedor, uma infraestrutura.

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.

KSQL é uma camada de abstração sobre Kafka Streams para fornecer processamento de fluxo com SQL de fluxo . Uma ótima ferramenta, também nativa do Kafka. Ele vem com uma licença da comunidade Confluent e é de uso gratuito. Portanto, como o Kafka Streams, eu o vejo como parte do Kafka e não o coloquei explicitamente no cenário de streaming de dados como um produto separado. Mas você precisa avaliá-lo em relação ao Flink, Decodable e outros, para o seu caso de uso, é claro.


A era do streaming de dados está apenas começando…


O cenário de streaming de dados 2023 mostra como uma nova categoria de software está surgindo. Ainda estamos em um estágio muito inicial . Na maioria das conversas com clientes, parceiros e comunidade, ouço afirmaçõ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 processamento de stream mais avançado”.

O streaming de dados é uma longa jornada, pois é uma mudança de paradigma . Esperamos ver um Quadrante Mágico do Gartner para Streaming de Eventos e um Forrester Wave para Streaming de Dados no futuro também. Uma nova categoria leva tempo para ser criada . Mas você já percebeu o quanto mais os analistas do Gartner, Forrester e outros já escrevem sobre streaming de dados e os vários fornecedores? Também escrevi um blog dedicado explicando por que o streaming de dados é sua própria categoria de software .

Olhando para o mercado competitivo de streaming de dados, um dos meus exemplos favoritos do mundo real para escolher as tecnologias de processamento de stream certas vem de DoorDash : Por que as empresas migram do Amazon SQS e Kinesis para Apache Kafka e Flink . O artigo explora as compensações entre soluções específicas de nuvem, como Kinesis ou PubSub, 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 2023 para entender como o cenário de streaming de dados se encaixa em tendências emergentes, como malha de dados, compartilhamento de dados e governança de dados.


Quais são suas tendências mais relevantes e empolgantes para streaming de dados e Apache Kafka em 2023 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.


73 visualizações0 comentário

Comentários


bottom of page