Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Abraçando a Anarquia: Design Patterns de Apache Kafka em Arquiteturas de Dados Modernas

Abraçando a Anarquia: Design Patterns de Apache Kafka em Arquiteturas de Dados Modernas

02ff2dde723b6e26f4ef03ee6b3f6eb9?s=128

Ricardo Ferreira

May 06, 2019
Tweet

Transcript

  1. 1 Design Patterns de Apache Kafka em Arquiteturas de Dados

    Modernas Abraçando a Anarquia:
  2. 2 Sobre Mim: • Ricardo Ferreira ◦ Developer Advocate na

    Confluent ◦ Ex-Oracle, Red Hat, IONA Tech ◦ https://riferrei.net • Curiosidades: ◦ Assisti “Avengers Endgame” em Ucraniano e entendi ~15% do filme @riferrei
  3. 3

  4. Apache Kafka é uma Plataforma de Streaming @riferrei @qconsp

  5. Quais são as Motivações para uma Plataforma de Streaming? @riferrei

    @qconsp
  6. OLTP / OLAP à 20 Anos… OLTP / OLAP Hoje…

    Cara, cê está me envergonhando na frente dos magos…
  7. Processamento de Dados usando OLTP e OLAP Não é Mais

    a Famosa Bala de Prata! @riferrei @qconsp
  8. Reflexão sobre como Fazemos Processamento de Dados Hoje @riferrei @qconsp

  9. Sales DWH Inventory Batching do Transacional pro OLAP

  10. Sales DWH Inventory Normalização via Transformações…

  11. Sales Inventory Data Lake DWH Viciado? Criando Data Lakes!

  12. 12 Sales Inventory Data Lake Novas Transformações em Cena…

  13. 13 #1 Problema: Latência Usar Batching é Introduzir Latência Built-in!

  14. None
  15. #2 Problema: Integração Integração de Dados não é Escalável!

  16. O Mundo já não é mais o mesmo... IoT Microservices

    APIs & Mobile Machine Learning
  17. #3 Problema: Volume de Dados Quando ter “Bases Gigantes” se

    Torna Comum!
  18. 18 O Nascimento da Plataforma de Streaming:

  19. 19 A Ascenção da Plataforma de Streaming:

  20. 20 O que a Comunidade está Construindo Assistentes para Bancos

    Digitais Pipelines de Publicação Aplicativos de Driver Matching Jogos 100% Dirigidos a Dados Aplicativos de Paquera Online
  21. 21 ETL / Integração de Dados Mensageria Batch Caro de

    Manter Lento (Muita Latência) Dificil de Escalar Sem Persistência após Consumo Sem Replay Escalável Durável Persistente Mantêm Ordem Rápido (Baixa Latência)
  22. 22 ETL / Integração de Dados Mensageria Batch Caro de

    Manter Lento (Muita Latência) Dificil de Escalar Sem Persistência após Consumo Sem Replay Escalável Durável Persistente Mantêm Ordem Rápido (Baixa Latência) O que está Acontecendo? (Presente) O que Aconteceu? (Passado) Plataforma de Streaming Escalável Durável Persistente Mantêm Orderm Rápido (Baixa Latência) Possui Replay Built-in
  23. Apache Kafka é uma Plataforma de Streaming @riferrei @qconsp

  24. Três Pilares 24

  25. 01 Mensageria Funcional 02 Pipelines de Dados Escalável 03 Fundação

    para Stream Processing 25 Apache Kafka
  26. Escalabilidade Armazenamento Suporte a Replay 26 Pilar 1: Mensageria Funcional

  27. 27 Pilar 2: Pipelines de Dados Escalável

  28. Pilar 3: Fundação para Stream Processing KSQL is the Streaming

    SQL Engine for Apache Kafka 28
  29. 29 Real-Time Inventory Real-Time Fraud Detection Real-Time Customer 360 Machine

    Learning Models Real-Time Data Transformatio n ... Aplicações Dirigidas a Eventos e Contexto Universal Event Pipeline Bases de Dados Logs Aplicativos APIs / Microservices STREAMS CONNECT CLIENTS
  30. 30 Advinhe qual é a Música 1. Escaneie o código

    de barras 2. Digite o seu palpite de música 3. Digite seu nome e clique “Enviar” @riferrei @qconsp
  31. 31

  32. Todos os seus Dados são em verdade… Eventos! @riferrei @qconsp

  33. 33 Interações com Clientes

  34. 34 Uma Venda

  35. 35 Leitura de Sensor

  36. 36 Entradas no Log

  37. 37 Registros em Bases de Dados

  38. 38 Você acha mesmo que você faz queries em tabelas?

  39. 39 “The truth is the log. The database is a

    cache of a subset of the log.” —Pat Helland Immutability Changes Everything http://cidrdb.org/cidr2015/Papers/CIDR15_Paper16.pdf
  40. Dualidade entre Streams e Tabelas alice 1 alice 1 pedro

    1 alice 2 pedro 1 alice 2 pedro 1 carlos 1 Tabela Stream Tabela (“alice”, 1) (“pedro”, 1) (“alice”, 2) (“carlos”, 1) alice 1 alice 1 pedro 1 alice 2 pedro 1 alice 2 pedro 1 carlos 1
  41. Problemas Técnicos que o Apache Kafka Resolve @riferrei @qconsp

  42. 42 Producer Consumer Disponibilidade de Sistemas, Buffer de Eventos

  43. 43 Producer Consumer A 24hr batch extract Near Realtime Consumer

    B Requisitos de Latência Distintos: Batch vs Stream
  44. 44 Mudanças de Tecnologia/Código/Lógica Producer Consumer (v1) Consumer (V2)

  45. 45 Mudanças de Tecnologia/Código/Lógica Producer Consumer (V2)

  46. Design Patterns usando Apache Kafka @riferrei @qconsp

  47. 47 HDFS / S3 / BigQuery etc RDBMS CDC Offload

    de Bases de Dados usando CDC
  48. 48 Stream Processing usando KSQL: Field Joins order events customer

    customer orders Stream Processing RDBMS CDC
  49. 49 order events customer Stream Processing customer orders RDBMS <y>

    Stream Processing usando KSQL: Enrichment
  50. 50 order events customer Stream Processing customer orders RDBMS <y>

    New App <x> Escreva uma Vez, Reutilize Várias Vezes
  51. 51 order events customer Stream Processing customer orders RDBMS <y>

    HDFS / S3 / etc New App <x> Escreva uma Vez, Reutilize Várias Vezes
  52. 53 Stream Processing RDBMS Existing App New App <x> Migração

    de Dados entre o Antigo e o Novo
  53. 54 Stream Processing RDBMS Existing App New App <x> New

    App <y> Migração de Dados entre o Antigo e o Novo
  54. 55 M L App <y> NoSQL Search Graph Stream Processing

    "One version of the truth" Única Fonte de Dados entre Sistemas Críticos
  55. 56 56 Livros sobre Kafka Grátis: https://www.confluent.io/apache-kafka-stream-processing-book-bundle

  56. 57 57 Contatos e Links: @riferrei riferrei riferrei ricardo@confluent.io https://riferrei.net

    https://cnfl.io/slack https://confluent.io/careers
  57. 58