$30 off During Our Annual Pro Sale. View Details »

Jak postavit IoT datovou pipeline a nezbláznit se z toho

David Majda
November 01, 2018

Jak postavit IoT datovou pipeline a nezbláznit se z toho

V Energomonitoru přijímáme v reálném čase data z tisíců různorodých zařízení po celém světě a zpracováváme je. Klíčovým prvkem přitom je naše datová pipeline. V přednášce popíšu, jak jsme ji během let postupně vystavěli, jak dnes funguje a kam ji chceme ještě posunout. Představím přitom technologie a nástroje, které používáme, a především ukážu, jak přemýšlet nad streamovým zpracováním dat, které dnes nabývá na stále větší důležitosti i v jiných oblastech než IoT.

Předneseno na TechMeetup Ostrava Konference 2018.

Video: https://www.youtube.com/watch?v=2n_CC-75MZg

David Majda

November 01, 2018
Tweet

More Decks by David Majda

Other Decks in Programming

Transcript

  1. Jak postavit
    IoT datovou pipeline
    a nezbláznit se z toho
    David Majda
    @dmajda
    TechMeetup Ostrava Konference 2018 · Ostrava · 1. listopadu 2018

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. Datová pipeline

    View Slide

  6. Proč o ní povídám?

    View Slide

  7. Streamové zpracování dat

    View Slide

  8. View Slide

  9. imp → kWh → €

    View Slide

  10. 2013–2019

    View Slide

  11. Zjednodušuju!

    View Slide

  12. Aplikace
    Processing
    Redis
    S3
    SQL
    Zařízení

    View Slide

  13. Aplikace
    Processing
    Redis
    S3
    SQL
    Zařízení
    Real-time data

    View Slide

  14. View Slide

  15. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    SQL
    Redis
    Zařízení
    Zařízení
    Reader

    View Slide

  16. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    SQL
    Redis
    Zařízení
    Zařízení
    Reader

    View Slide

  17. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    SQL
    Redis
    Zařízení
    Zařízení
    Reader
    Lepší ukládání dat

    View Slide

  18. View Slide

  19. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Redis
    Zařízení
    Zařízení
    Reader

    View Slide

  20. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Redis
    Zařízení
    Zařízení
    Reader

    View Slide

  21. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Redis
    Zařízení
    Zařízení
    Reader
    Více formátů dat na MQTT

    View Slide

  22. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Redis
    Zařízení
    Zařízení
    Reader

    View Slide

  23. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Redis
    Zařízení
    Zařízení
    Reader

    View Slide

  24. MQTT Normalizer
    Redis
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Redis
    Zařízení
    Zařízení
    Reader
    Flexibilita architektury
    Robustnost systému front

    View Slide

  25. View Slide

  26. MQTT Normalizer Bridge
    Kafka
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Kafka
    Redis
    Zařízení
    Zařízení
    Reader

    View Slide

  27. MQTT Normalizer Bridge
    Kafka
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Kafka
    Redis
    Zařízení
    Zařízení
    Reader

    View Slide

  28. MQTT Normalizer Bridge
    Kafka
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Kafka
    Redis
    Zařízení
    Zařízení
    Reader
    Více vstupů a výstupů dat

    View Slide

  29. MQTT Normalizer Bridge
    DGI
    Kafka
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Kafka
    Redis
    Zařízení
    Zařízení

    View Slide

  30. MQTT Normalizer Bridge
    DGI
    Kafka
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Kafka
    Redis
    Zařízení
    Zařízení

    View Slide

  31. MQTT Normalizer Bridge
    DGI
    Kafka
    Aplikace
    Bridge
    Processing
    Redis
    S3
    Influx
    SQL
    Kafka
    Redis
    Zařízení
    Zařízení
    Možnosti a flexibilita processingu
    Výkon a stabilita processingu, technický dluh

    View Slide

  32. MQTT Normalizer
    DGI
    Kafka
    Aplikace
    Influx
    SQL
    Kafka
    Zařízení
    Nový processing
    Writer
    Kafka

    View Slide

  33. MQTT Normalizer
    DGI
    Kafka
    Aplikace
    Influx
    SQL
    Kafka
    Zařízení
    Nový processing
    Writer
    Kafka

    View Slide

  34. CoAP
    Kafka
    Energomonitor
    Kafka
    Processing
    HTTP
    MQTT

    Zařízení
    Zařízení
    Zařízení
    Zařízení
    DGI
    DGI
    DGI
    DGI
    Streaming API
    Partner

    View Slide

  35. Poučení

    View Slide

  36. Požadavky se mění
    a přibývají

    View Slide

  37. Nejdůležitější vlastností
    designu je flexibilita.

    View Slide

  38. Hodně malých, volně
    propojených komponent

    View Slide

  39. Inkrementální vývoj

    View Slide

  40. Streamové zpracování
    dat chce jiný mind-set

    View Slide

  41. Fakt real-time!

    View Slide

  42. Blokující operace
    jsou anti-pattern

    View Slide

  43. Ladění se počítá

    View Slide

  44. Lidsky čitelné
    datové formáty

    View Slide

  45. Minimum speciálních
    nástrojů

    View Slide

  46. Konec
    David Majda
    @dmajda

    View Slide