SlideShare a Scribd company logo
1 of 28
Download to read offline
› Customer: Rational AG
› Target: iot Platform with
Web & App Clients for Rational combi oven
› Remote Configuration, Monitoring,
Remote Control
› Statistics, Reports,
FW-Management
› ...
2
› Requirements:
› Proxy support/Firewall friendly
› embedded client libraries
› fast, scalable & lightweight
› Candidates:
› WebSocket / Stomp
› AMQP / JMS
› Cloud Push Provider (Parse)
› MQTT
3
› initially developed by IBM
› OASIS Standard
› lightweight (binary, tcp or websocket tunnel)
› fault tolerant (multiple QoS Level support, …)
› PubSub
4
https://goo.gl/JTUaS2
5
Disclaimer: evaluation 2,5 years ago
› HiveMQ
› Apache Apollo
› ApacheMQ, RabbitMQ
› VerneMQ
› EMQ (emqtt)
6
› fuse source
› auto reconnect, fluent API
› but: concurrency issues (especially after some runtime)
› in the meantime: repo is dead
› eclipse paho
› supports many languages
› API could be more lightweight
› but: no concurrency issues
› main eclipse project (part of iot eclipse ecosystem)
7
› pros:
› HW & platform dev team: common API (MQTT, HTTP)
› cons:
› device firmware delay: many dry runs for Sprint reviews of
iot platform
› no automated integration tests
› some problems only occur on production with real live traffic
8
› manual integration tests
› getting debug infos easier/faster
› check specification of
export/import formats
› fun with colleagues
9
https://imgflip.com/i/2bm169
10
› current/previous solution:
› complex desktop sw / single host
› can manage intranet devices only
› first wish: on-promise systems
› very expensive & high operating costs
› complex version/upgrade management
› migration from current system to the new iot cloud
11
› few new technologies and blackbox devices
› mqtt as protocol, mqtt broker
› handling thousands of concurrent connections
› device firmware developed by another team which is
not integrated in the same development workflow
12
https://goo.gl/5p7HKh
13
14
› CI-CD Pipeline
› Enhanced monitoring probes
› Health checks, API statistics, Log statistics
› Monitoring Dashboards
› Alarming via Slack Messenger
› Log Analysis
› currently a lot of manually work
› Elastic Stack planned (Kibana, …)
15
› monitor & analyse API usage
› sometimes APIs are not used as intended in all use cases
› get more understanding for client requirements and
special use cases
› If APIs does not cover each use case, the client developer
will find a way
› discussed many improvements, but...
16
https://imgflip.com/i/2bl74a
17
› embedded development not agile and very conservative
› iot platform team & firmware dev team are seperated:
e.g. different roadmaps
› devices with different firmwares must be handled like
supporting different mobile app versions
› workarounds on backend side
› Restriction: forcing fw updates not possible
18
› Breaking changes (monitoring API, config files)
› Long unresolved issues (emq-auth-http)
› problem due to permanent connections: broker restarts
› client reconnects to the first node back online
19
› (Pre-)Sharding device TOPICs
› /<shard>/<device-uuid>/<device-topic>
› message processing can be distributed
› Combine MQTT messages for same device in a short
timeframe
› only update database once, ignore duplicates
› Using (mqtt) sessions
20
https://goo.gl/LjraKf
21
› “Last will” often used for connection status updates
› server send “offline” on client connection loss
› but what if server or node died
› e.g. operating team have to clear device online state
› bulk updates are dangerous
› self-healing if device reconnects successfully
22
› Remote display & slow connections: Great wall of china
› AWS China
› Handling auth server problems
› by default: bad username or password (Code 4)
› better solution: server unavailable (Code 3)
23
› Shared subscriptions
› load balancing of message processing possible
› scalable subscriber
› TTL for messages
› Alternate auth mechanisms (challenge/response)
› error handling improvements
› more flexibility (topic alias, custom header, user
properties)
24
› EMQ current state: only usable together with local
subscriptions
› subscription client must know all cluster nodes any time
› other brokers already support cluster wide subscriptions
(HiveMQ, VerneMQ)
› but: concrete implementation very unclear
› e.g. will online clients be preferred, will node local clients
be preferred
25
› no official EMQ roadmap available
› GitHub ticket comments from devs:
› EMQ version 3.0 with MQTT 5 support is coming soon
(probably beta phase)
› monitoring: Prometheus support announced (already exists
in paid version EMQ X/Plus)
26
27
Gerrit Brehmer
Developer / Architect
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe
gbrehmer@inovex.de
0173 3181 007

More Related Content

Similar to Connected Cooking powered by MQTT

DACHSview++features
DACHSview++featuresDACHSview++features
DACHSview++features
A. Steinhoff
 
Enterprise(d) Tomcat & httpd
Enterprise(d) Tomcat & httpdEnterprise(d) Tomcat & httpd
Enterprise(d) Tomcat & httpd
Vaclav Tunka
 

Similar to Connected Cooking powered by MQTT (20)

Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
Microservices on a budget meetup
Microservices on a budget   meetupMicroservices on a budget   meetup
Microservices on a budget meetup
 
Pulsar - Distributed pub/sub platform
Pulsar - Distributed pub/sub platformPulsar - Distributed pub/sub platform
Pulsar - Distributed pub/sub platform
 
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
Strata Singapore: GearpumpReal time DAG-Processing with Akka at ScaleStrata Singapore: GearpumpReal time DAG-Processing with Akka at Scale
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
 
Openshift 3.10 & Container solutions for Blockchain, IoT and Data Science
Openshift 3.10 & Container solutions for Blockchain, IoT and Data ScienceOpenshift 3.10 & Container solutions for Blockchain, IoT and Data Science
Openshift 3.10 & Container solutions for Blockchain, IoT and Data Science
 
Microservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing MicroservicesMicroservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing Microservices
 
JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...
 
Monitoring federation open stack infrastructure
Monitoring federation open stack infrastructureMonitoring federation open stack infrastructure
Monitoring federation open stack infrastructure
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoT
 
Flexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache FlinkFlexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache Flink
 
Monitoring klassisch oder Cloud
Monitoring klassisch oder CloudMonitoring klassisch oder Cloud
Monitoring klassisch oder Cloud
 
DACHSview++features
DACHSview++featuresDACHSview++features
DACHSview++features
 
Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of Things
 
101 mistakes FINN.no has made with Kafka (Baksida meetup)
101 mistakes FINN.no has made with Kafka (Baksida meetup)101 mistakes FINN.no has made with Kafka (Baksida meetup)
101 mistakes FINN.no has made with Kafka (Baksida meetup)
 
Spring_Boot_Microservices-5_Day_Session.pptx
Spring_Boot_Microservices-5_Day_Session.pptxSpring_Boot_Microservices-5_Day_Session.pptx
Spring_Boot_Microservices-5_Day_Session.pptx
 
PGConf.ASIA 2019 Bali - PostgreSQL on K8S at Zalando - Alexander Kukushkin
PGConf.ASIA 2019 Bali - PostgreSQL on K8S at Zalando - Alexander KukushkinPGConf.ASIA 2019 Bali - PostgreSQL on K8S at Zalando - Alexander Kukushkin
PGConf.ASIA 2019 Bali - PostgreSQL on K8S at Zalando - Alexander Kukushkin
 
Enterprise(d) Tomcat & httpd
Enterprise(d) Tomcat & httpdEnterprise(d) Tomcat & httpd
Enterprise(d) Tomcat & httpd
 
Microcontainers, Microservices, Microservers? Less [Linux] is more!
Microcontainers, Microservices, Microservers? Less [Linux] is more!Microcontainers, Microservices, Microservers? Less [Linux] is more!
Microcontainers, Microservices, Microservers? Less [Linux] is more!
 
WUG Days 2022 Brno - Networking in .NET 7.0 and YARP -- Karel Zikmund
WUG Days 2022 Brno - Networking in .NET 7.0 and YARP -- Karel ZikmundWUG Days 2022 Brno - Networking in .NET 7.0 and YARP -- Karel Zikmund
WUG Days 2022 Brno - Networking in .NET 7.0 and YARP -- Karel Zikmund
 

More from inovex GmbH

Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
inovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
inovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
inovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
inovex GmbH
 

More from inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Recently uploaded

Recently uploaded (20)

Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 

Connected Cooking powered by MQTT

  • 1.
  • 2. › Customer: Rational AG › Target: iot Platform with Web & App Clients for Rational combi oven › Remote Configuration, Monitoring, Remote Control › Statistics, Reports, FW-Management › ... 2
  • 3. › Requirements: › Proxy support/Firewall friendly › embedded client libraries › fast, scalable & lightweight › Candidates: › WebSocket / Stomp › AMQP / JMS › Cloud Push Provider (Parse) › MQTT 3
  • 4. › initially developed by IBM › OASIS Standard › lightweight (binary, tcp or websocket tunnel) › fault tolerant (multiple QoS Level support, …) › PubSub 4
  • 6. Disclaimer: evaluation 2,5 years ago › HiveMQ › Apache Apollo › ApacheMQ, RabbitMQ › VerneMQ › EMQ (emqtt) 6
  • 7. › fuse source › auto reconnect, fluent API › but: concurrency issues (especially after some runtime) › in the meantime: repo is dead › eclipse paho › supports many languages › API could be more lightweight › but: no concurrency issues › main eclipse project (part of iot eclipse ecosystem) 7
  • 8. › pros: › HW & platform dev team: common API (MQTT, HTTP) › cons: › device firmware delay: many dry runs for Sprint reviews of iot platform › no automated integration tests › some problems only occur on production with real live traffic 8
  • 9. › manual integration tests › getting debug infos easier/faster › check specification of export/import formats › fun with colleagues 9
  • 11. › current/previous solution: › complex desktop sw / single host › can manage intranet devices only › first wish: on-promise systems › very expensive & high operating costs › complex version/upgrade management › migration from current system to the new iot cloud 11
  • 12. › few new technologies and blackbox devices › mqtt as protocol, mqtt broker › handling thousands of concurrent connections › device firmware developed by another team which is not integrated in the same development workflow 12
  • 14. 14
  • 15. › CI-CD Pipeline › Enhanced monitoring probes › Health checks, API statistics, Log statistics › Monitoring Dashboards › Alarming via Slack Messenger › Log Analysis › currently a lot of manually work › Elastic Stack planned (Kibana, …) 15
  • 16. › monitor & analyse API usage › sometimes APIs are not used as intended in all use cases › get more understanding for client requirements and special use cases › If APIs does not cover each use case, the client developer will find a way › discussed many improvements, but... 16
  • 18. › embedded development not agile and very conservative › iot platform team & firmware dev team are seperated: e.g. different roadmaps › devices with different firmwares must be handled like supporting different mobile app versions › workarounds on backend side › Restriction: forcing fw updates not possible 18
  • 19. › Breaking changes (monitoring API, config files) › Long unresolved issues (emq-auth-http) › problem due to permanent connections: broker restarts › client reconnects to the first node back online 19
  • 20. › (Pre-)Sharding device TOPICs › /<shard>/<device-uuid>/<device-topic> › message processing can be distributed › Combine MQTT messages for same device in a short timeframe › only update database once, ignore duplicates › Using (mqtt) sessions 20
  • 22. › “Last will” often used for connection status updates › server send “offline” on client connection loss › but what if server or node died › e.g. operating team have to clear device online state › bulk updates are dangerous › self-healing if device reconnects successfully 22
  • 23. › Remote display & slow connections: Great wall of china › AWS China › Handling auth server problems › by default: bad username or password (Code 4) › better solution: server unavailable (Code 3) 23
  • 24. › Shared subscriptions › load balancing of message processing possible › scalable subscriber › TTL for messages › Alternate auth mechanisms (challenge/response) › error handling improvements › more flexibility (topic alias, custom header, user properties) 24
  • 25. › EMQ current state: only usable together with local subscriptions › subscription client must know all cluster nodes any time › other brokers already support cluster wide subscriptions (HiveMQ, VerneMQ) › but: concrete implementation very unclear › e.g. will online clients be preferred, will node local clients be preferred 25
  • 26. › no official EMQ roadmap available › GitHub ticket comments from devs: › EMQ version 3.0 with MQTT 5 support is coming soon (probably beta phase) › monitoring: Prometheus support announced (already exists in paid version EMQ X/Plus) 26
  • 27. 27
  • 28. Gerrit Brehmer Developer / Architect inovex GmbH Ludwig-Erhard-Allee 6 76131 Karlsruhe gbrehmer@inovex.de 0173 3181 007