SlideShare a Scribd company logo
1 of 52
Download to read offline
BUILDING OPEN SOURCE IOT CLOUD
Dejan Bosanac
WHO AM I?
Dejan Bosanac
•  Senior Software Engineer at Red Hat
•  Messaging and Integration background (ActiveMQ, Camel, Fabric8)
•  Focused more on messaging and backend for IoT lately
AGENDA
•  Describe typical IoT application
•  Describe all the components and common pitfalls
•  Introduce Eclipse IoT projects to the rescue
•  Kura
•  Hono
•  Kapua
•  Future
IOT APPLICATIONS
Devices
Cloud
Applications
IOT APPLICATIONS
Device	
Device	
Applica+on	
Device	 Applica+on	
Applica+on	IOT	Cloud
DEVICES
•  Everything from simple sensors to small computers
•  Connectivity
•  Some are IP enabled
•  Some have just near-range connectivity, like Bluetooth
•  Variety of network protocols used (MQTT, LWM2M,…)
•  Functions
•  Sensors – send data – temperature sensor
•  Actuators – control environment – A/C Unit
APPLICATIONS
•  Enterprise applications, micro-services and everything in between
•  Want to use data generated by devices
•  Want to control devices
•  Want to control the cloud environment … more about that in a minute
CLOUD
•  Connects devices and applications
•  Provides connectivity layer
•  Provides security layer
•  Provides device state
•  Handle device data
PITFALLS
•  Create a silo application
•  Hard to upgrade and maintain
•  Solution don't scale
•  Security is an afterthought
SOLUTION
•  Build well maintained open source stack
•  Scalable, secure and maintainable
•  Developers should focus on devices and applications
STACK
•  Device Gateway - Eclipse Kura - https://www.eclipse.org/kura/
•  IoT Connector – Eclipse Hono - https://projects.eclipse.org/projects/iot.hono
•  IoT Cloud – Eclipse Kapua - https://projects.eclipse.org/projects/iot.kapua
GATEWAY
DEVICE GATEWAY
•  Device IP onboarding
•  Data pre-processing
•  Control devices
•  Operational management
GATEWAY ARCHITECTURE
Data Center
Gateway
Application
Sensors
INSERT DESIGNATOR, IF NEEDED15
KURA ARCHITECTURE
KURA SERVICES
•  I/O Services – serial, Bluetooth, GPS, …
•  Data services - Store and forward data using MQTT, Apache Camel
•  Cloud services – request/reply
•  Configuration service – OSGi configuration
•  Web administration interface
KURA APPLICATION
•  OSGi Bundle
•  Deployed and managed by Kura
•  Using Kura APIs to communicate with devices and cloud
•  Apache Camel Integration
KURA APPLICATION
public void setCloudService(CloudService cloudService) {
cloudService = cloudService;
}
protected void activate(ComponentContext componentContext, Map<String, Object> properties) {
...
// Acquire a Cloud Application Client for this Application
cloudClient = cloudService.newCloudClient("greenhouse");
cloudClient.addCloudClientListener(this);
...
}
protected void doPublish() {
...
KuraPayload kuraPayload = new KuraPayload();
kuraPayload.addMetric("temperature", temperature);
cloudClient.publish("sensors", kuraPayload, DFLT_QOS, DFLT_RETAIN,DFLT_PRIORITY);
...
}
KURA CAMEL
public class MyKuraRouter extends KuraRouter {
@Override
public void configure() throws Exception {
from("timer://heartbeat").
setBody(constant("Hello")).
to("kura-cloud:myApplication/myTopic");
}
}
CONNECTOR
CONNECTOR
•  Messaging infrastructure that connects gateways and applications
•  Eclipse Kura uses MQTT
•  Usually combined with message brokers like Apache ActiveMQ or Eclipse Paho
MQTT
•  OASIS standard (v3.1.1)
•  Created by IBM and Eurotech
•  Lightweight
•  Small network message
•  Simple protocol
•  Pub / Sub
•  Quality of Service
•  Connection failures
•  Very popular in IoT scenarios
LIMITATIONS
•  Scalability
•  Connections
•  Destinations
•  Security based on broker addresses
•  General purpose messaging
•  No message format
ECLIPSE HONO – GOALS
•  Tailored general messaging for IoT solutions
•  Solve recurring problems
•  Provide messaging APIs for common operations
•  Support multiple IoT protocols (MQTT, AMQP, LWM2M,…)
•  Support any underlying messaging infrastructure
•  JMS
•  Kafka
ECLIPSE HONO – FEATURES
•  Scalability
•  Multi-tenancy
•  Device-based security
•  Multi-protocol support
ECLIPSE HONO – APIS
•  AMPQ 1.0 based
•  Defines message formats coming in and out of Hono
•  Defines message exchange patterns
INSERT DESIGNATOR, IF NEEDED27
AMQP
•  International Standard (ISO/IEC ISO 19464)
•  Binary Protocol
•  Rich feature set:
•  conversation multiplexing
•  advanced flow control
•  Type system
•  QoS Guarantees
•  Symmetrical message exchange
•  No Broker required
INSERT DESIGNATOR, IF NEEDED28
AMQP
Message(
properties: {
correlation-id: 1,
to: "$management",
reply-to: "/myaddress"
},
application-properties: {
"name" -> "newQueue",
"operation" -> "CREATE",
"type" -> "org.example.queue"
},
application-data: AmqpValue(
Map(
"max_size" -> "2000Mb"
)
)
)
•  It is not a broker
•  It never owns a message
•  It propagates AMQP transfer, settlement and disposition frames between endpoints
•  Message based or link based routing
AMQP ROUTER
Router	
	
/device1	
/device2
INSERT DESIGNATOR, IF NEEDED30
AMQP ROUTER
•  It can be deployed in multiple router-broker-endpoint topology
•  Redundant paths
•  Benefits
•  Better scaling due to more focused tasks
•  Smart routing can be used to partition the traffic
•  Ideal candidate for gateway into the system
INSERT DESIGNATOR, IF NEEDED31
SCALABLE MESSAGING
•  Combination of brokers and routers provides powerful tool box
•  Brokers should focus on storing messages
•  Routers should do the rest
•  Allows for horizontal scaling topologies that can solve IoT challenges
ECLIPSE HONO- APIS
•  Telemetry
•  Command and Control
•  Device Registration
•  Device Lifecycle
ECLIPSE HONO – ARCHITECTURE
MQTT	
Device	
LWM2M
Device
AMQP
Device
HONO
Protocol	
Adapter	
Protocol	
Adapter	
Device
Management
Data	
Collec+on	
AMQP	
AMQP	
AMQP	
AMQP	AMQP
ECLIPSE HONO – ARCHITECTURE
•  Protocol Adapters
•  Stateless
•  Provide conversion to common protocols used in IoT
•  MQTT
•  LWM2M
•  HTTP/Rest
•  Clients – devices and Cloud services
•  Connects using AMQP using well defined APIs
ECLIPSE HONO – ARCHITECTURE
Client	
Client
Client
Router
Network
Hono	
Server	
Hono	
Server	
App
App	
Hono	
Server	
Brokers
ECLIPSE HONO – ARCHITECTURE
•  Hono server
•  Stateless – can be scaled
•  Validates message format
•  Does device-based authentication
ECLIPSE HONO – ARCHITECTURE
•  Router Network
•  Provide connection scalability
•  Routes AMQP messages through the system
•  Brokers
•  Any AMQP 1.0 compatible system
•  Used to save persistent messages
ECLIPSE HONO – TECHNOLOGY
•  Hono server
•  Vert.x + Qpid Proton
•  Spring Boot
•  Docker
• Scalable and Cloud Ready!
ECLIPSE HONO – TECHNOLOGY
•  Scalable messaging
•  Apache Qpid Dispatch Router
•  Apache ActiveMQ Artemis
• Scalable and Cloud Ready!
ECLIPSE KAPUA
ECLIPSE KAPUA – GOALS
•  Provide complete IoT Cloud solution
•  Define and Implement needed services
•  Ready to run
ECLIPSE KAPUA – ARCHITECTURE
ECLIPSE KAPUA – BACKHAND SERVICES
•  Data Management
•  Device Registry
•  Device Management
ECLIPSE KAPUA – FRONTEND SERVICES
•  Management Console
•  API Gateway
ECLIPSE KAPUA - IMPLEMENTATION
•  Micro-services oriented
•  Pluggable service locator
•  Single JVM
•  OSGi
•  Cloud Deployment
ECLIPSE KAPUA – 1.0
•  MQTT based
•  Apache ActiveMQ in the messaging layer
•  JDBC store for services
•  Elasticsearch for data store
•  Single VM deployment
FUTURE
INSERT DESIGNATOR, IF NEEDED47
INSERT DESIGNATOR, IF NEEDED48
FUTURE - KURA
•  More data pre-processing
•  BPM integration
•  AMQP support
•  Gateway support proxy
INSERT DESIGNATOR, IF NEEDED49
KAPUA
•  Micorservice implementation
•  Docker images
•  REST/AMQP APIs
•  Hono support
KAPUA + HONO
CONCLUSION
•  Together Kura, Hono and Kapua will be able to answer even the most challenging IOT demands
•  Lots of work ahead
•  Everything open source
•  Backed by big companies, like Red Hat, Eurotech, Bosch, …
•  Join the effort
THANK YOU
•  https://www.eclipse.org/kura/
•  https://projects.eclipse.org/projects/iot.hono
•  https://projects.eclipse.org/projects/iot.kapua

More Related Content

What's hot

Eclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura
 
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 IoTBenjamin Cabé
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Benjamin Cabé
 
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Open Mobile Alliance
 
Web API Management meets the Internet of Things
Web API Management meets the Internet of ThingsWeb API Management meets the Internet of Things
Web API Management meets the Internet of ThingsPaul Fremantle
 
Gateway Design with Eclipse Kura - Taking Kura to heights
Gateway Design with Eclipse Kura - Taking Kura to heightsGateway Design with Eclipse Kura - Taking Kura to heights
Gateway Design with Eclipse Kura - Taking Kura to heightsRajesh Sola
 
Advanced MQTT and Kura - EclipseCON 2014
Advanced MQTT and Kura - EclipseCON 2014Advanced MQTT and Kura - EclipseCON 2014
Advanced MQTT and Kura - EclipseCON 2014Eurotech
 
Creator IoT Framework
Creator IoT FrameworkCreator IoT Framework
Creator IoT FrameworkPaul Evans
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoTIan Skerrett
 
How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...mfrancis
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Benjamin Cabé
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT GatewayLF Events
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Benjamin Cabé
 
FIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT AgentsFIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT AgentsFIWARE
 
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse FoundationOMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse FoundationOpen Mobile Alliance
 
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...FIWARE
 

What's hot (18)

Eclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura Shoot a-pi
Eclipse Kura Shoot a-pi
 
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
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
 
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
 
Web API Management meets the Internet of Things
Web API Management meets the Internet of ThingsWeb API Management meets the Internet of Things
Web API Management meets the Internet of Things
 
Gateway Design with Eclipse Kura - Taking Kura to heights
Gateway Design with Eclipse Kura - Taking Kura to heightsGateway Design with Eclipse Kura - Taking Kura to heights
Gateway Design with Eclipse Kura - Taking Kura to heights
 
Advanced MQTT and Kura - EclipseCON 2014
Advanced MQTT and Kura - EclipseCON 2014Advanced MQTT and Kura - EclipseCON 2014
Advanced MQTT and Kura - EclipseCON 2014
 
Creator IoT Framework
Creator IoT FrameworkCreator IoT Framework
Creator IoT Framework
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoT
 
How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...
 
Fiware, the future internet
Fiware, the future internetFiware, the future internet
Fiware, the future internet
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT Gateway
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
 
Internet of Things - Advantech IoT Gateway Starter Kit
Internet of Things - Advantech IoT Gateway Starter KitInternet of Things - Advantech IoT Gateway Starter Kit
Internet of Things - Advantech IoT Gateway Starter Kit
 
FIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT AgentsFIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT Agents
 
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse FoundationOMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
 
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...
 

Similar to Building Open Source IoT Cloud

CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overviewsedukull
 
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingVTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingSachin Gowda
 
Kickstarting IOT using NodeRED
Kickstarting IOT using NodeREDKickstarting IOT using NodeRED
Kickstarting IOT using NodeREDRajesh Sola
 
Flying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native ApplicationsFlying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native ApplicationsJacek Bukowski
 
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?PROIDEA
 
Banv meetup-contrail
Banv meetup-contrailBanv meetup-contrail
Banv meetup-contrailnvirters
 
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3Adam Dunkels
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Stephen Gordon
 
Kubernetes Infra 2.0
Kubernetes Infra 2.0Kubernetes Infra 2.0
Kubernetes Infra 2.0Deepak Sood
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittalbuildacloud
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with NeutronKwonSun Bae
 
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Lucas Jellema
 
Interconnect 2017: 6885 Deploying IBM MQ in the cloud
Interconnect 2017: 6885 Deploying IBM MQ in the cloudInterconnect 2017: 6885 Deploying IBM MQ in the cloud
Interconnect 2017: 6885 Deploying IBM MQ in the cloudRobert Parker
 
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...VMware Tanzu
 
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Tanya Denisyuk
 
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxIBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxGeorg Ember
 
IBM Messaging in the Cloud
IBM Messaging in the CloudIBM Messaging in the Cloud
IBM Messaging in the Cloudmatthew1001
 
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud WorldHHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud Worldmatthew1001
 
Deploying and managing IBM MQ in the Cloud
Deploying and managing IBM MQ in the CloudDeploying and managing IBM MQ in the Cloud
Deploying and managing IBM MQ in the CloudRobert Parker
 

Similar to Building Open Source IoT Cloud (20)

CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overview
 
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingVTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
 
Kickstarting IOT using NodeRED
Kickstarting IOT using NodeREDKickstarting IOT using NodeRED
Kickstarting IOT using NodeRED
 
Flying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native ApplicationsFlying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native Applications
 
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
 
Banv meetup-contrail
Banv meetup-contrailBanv meetup-contrail
Banv meetup-contrail
 
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
 
Kubernetes Infra 2.0
Kubernetes Infra 2.0Kubernetes Infra 2.0
Kubernetes Infra 2.0
 
Oow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctoberOow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctober
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with Neutron
 
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
 
Interconnect 2017: 6885 Deploying IBM MQ in the cloud
Interconnect 2017: 6885 Deploying IBM MQ in the cloudInterconnect 2017: 6885 Deploying IBM MQ in the cloud
Interconnect 2017: 6885 Deploying IBM MQ in the cloud
 
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...
 
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
 
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxIBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
 
IBM Messaging in the Cloud
IBM Messaging in the CloudIBM Messaging in the Cloud
IBM Messaging in the Cloud
 
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud WorldHHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
 
Deploying and managing IBM MQ in the Cloud
Deploying and managing IBM MQ in the CloudDeploying and managing IBM MQ in the Cloud
Deploying and managing IBM MQ in the Cloud
 

More from dejanb

How is this sausage made
How is this sausage madeHow is this sausage made
How is this sausage madedejanb
 
Messaging for the cloud
Messaging for the cloudMessaging for the cloud
Messaging for the clouddejanb
 
Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse honodejanb
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoTdejanb
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQdejanb
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollodejanb
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabricdejanb
 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQdejanb
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actiondejanb
 

More from dejanb (9)

How is this sausage made
How is this sausage madeHow is this sausage made
How is this sausage made
 
Messaging for the cloud
Messaging for the cloudMessaging for the cloud
Messaging for the cloud
 
Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse hono
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabric
 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQ
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Building Open Source IoT Cloud

  • 1. BUILDING OPEN SOURCE IOT CLOUD Dejan Bosanac
  • 2. WHO AM I? Dejan Bosanac •  Senior Software Engineer at Red Hat •  Messaging and Integration background (ActiveMQ, Camel, Fabric8) •  Focused more on messaging and backend for IoT lately
  • 3. AGENDA •  Describe typical IoT application •  Describe all the components and common pitfalls •  Introduce Eclipse IoT projects to the rescue •  Kura •  Hono •  Kapua •  Future
  • 6. DEVICES •  Everything from simple sensors to small computers •  Connectivity •  Some are IP enabled •  Some have just near-range connectivity, like Bluetooth •  Variety of network protocols used (MQTT, LWM2M,…) •  Functions •  Sensors – send data – temperature sensor •  Actuators – control environment – A/C Unit
  • 7. APPLICATIONS •  Enterprise applications, micro-services and everything in between •  Want to use data generated by devices •  Want to control devices •  Want to control the cloud environment … more about that in a minute
  • 8. CLOUD •  Connects devices and applications •  Provides connectivity layer •  Provides security layer •  Provides device state •  Handle device data
  • 9. PITFALLS •  Create a silo application •  Hard to upgrade and maintain •  Solution don't scale •  Security is an afterthought
  • 10. SOLUTION •  Build well maintained open source stack •  Scalable, secure and maintainable •  Developers should focus on devices and applications
  • 11. STACK •  Device Gateway - Eclipse Kura - https://www.eclipse.org/kura/ •  IoT Connector – Eclipse Hono - https://projects.eclipse.org/projects/iot.hono •  IoT Cloud – Eclipse Kapua - https://projects.eclipse.org/projects/iot.kapua
  • 13. DEVICE GATEWAY •  Device IP onboarding •  Data pre-processing •  Control devices •  Operational management
  • 15. INSERT DESIGNATOR, IF NEEDED15 KURA ARCHITECTURE
  • 16. KURA SERVICES •  I/O Services – serial, Bluetooth, GPS, … •  Data services - Store and forward data using MQTT, Apache Camel •  Cloud services – request/reply •  Configuration service – OSGi configuration •  Web administration interface
  • 17. KURA APPLICATION •  OSGi Bundle •  Deployed and managed by Kura •  Using Kura APIs to communicate with devices and cloud •  Apache Camel Integration
  • 18. KURA APPLICATION public void setCloudService(CloudService cloudService) { cloudService = cloudService; } protected void activate(ComponentContext componentContext, Map<String, Object> properties) { ... // Acquire a Cloud Application Client for this Application cloudClient = cloudService.newCloudClient("greenhouse"); cloudClient.addCloudClientListener(this); ... } protected void doPublish() { ... KuraPayload kuraPayload = new KuraPayload(); kuraPayload.addMetric("temperature", temperature); cloudClient.publish("sensors", kuraPayload, DFLT_QOS, DFLT_RETAIN,DFLT_PRIORITY); ... }
  • 19. KURA CAMEL public class MyKuraRouter extends KuraRouter { @Override public void configure() throws Exception { from("timer://heartbeat"). setBody(constant("Hello")). to("kura-cloud:myApplication/myTopic"); } }
  • 21. CONNECTOR •  Messaging infrastructure that connects gateways and applications •  Eclipse Kura uses MQTT •  Usually combined with message brokers like Apache ActiveMQ or Eclipse Paho
  • 22. MQTT •  OASIS standard (v3.1.1) •  Created by IBM and Eurotech •  Lightweight •  Small network message •  Simple protocol •  Pub / Sub •  Quality of Service •  Connection failures •  Very popular in IoT scenarios
  • 23. LIMITATIONS •  Scalability •  Connections •  Destinations •  Security based on broker addresses •  General purpose messaging •  No message format
  • 24. ECLIPSE HONO – GOALS •  Tailored general messaging for IoT solutions •  Solve recurring problems •  Provide messaging APIs for common operations •  Support multiple IoT protocols (MQTT, AMQP, LWM2M,…) •  Support any underlying messaging infrastructure •  JMS •  Kafka
  • 25. ECLIPSE HONO – FEATURES •  Scalability •  Multi-tenancy •  Device-based security •  Multi-protocol support
  • 26. ECLIPSE HONO – APIS •  AMPQ 1.0 based •  Defines message formats coming in and out of Hono •  Defines message exchange patterns
  • 27. INSERT DESIGNATOR, IF NEEDED27 AMQP •  International Standard (ISO/IEC ISO 19464) •  Binary Protocol •  Rich feature set: •  conversation multiplexing •  advanced flow control •  Type system •  QoS Guarantees •  Symmetrical message exchange •  No Broker required
  • 28. INSERT DESIGNATOR, IF NEEDED28 AMQP Message( properties: { correlation-id: 1, to: "$management", reply-to: "/myaddress" }, application-properties: { "name" -> "newQueue", "operation" -> "CREATE", "type" -> "org.example.queue" }, application-data: AmqpValue( Map( "max_size" -> "2000Mb" ) ) )
  • 29. •  It is not a broker •  It never owns a message •  It propagates AMQP transfer, settlement and disposition frames between endpoints •  Message based or link based routing AMQP ROUTER Router /device1 /device2
  • 30. INSERT DESIGNATOR, IF NEEDED30 AMQP ROUTER •  It can be deployed in multiple router-broker-endpoint topology •  Redundant paths •  Benefits •  Better scaling due to more focused tasks •  Smart routing can be used to partition the traffic •  Ideal candidate for gateway into the system
  • 31. INSERT DESIGNATOR, IF NEEDED31 SCALABLE MESSAGING •  Combination of brokers and routers provides powerful tool box •  Brokers should focus on storing messages •  Routers should do the rest •  Allows for horizontal scaling topologies that can solve IoT challenges
  • 32. ECLIPSE HONO- APIS •  Telemetry •  Command and Control •  Device Registration •  Device Lifecycle
  • 33. ECLIPSE HONO – ARCHITECTURE MQTT Device LWM2M Device AMQP Device HONO Protocol Adapter Protocol Adapter Device Management Data Collec+on AMQP AMQP AMQP AMQP AMQP
  • 34. ECLIPSE HONO – ARCHITECTURE •  Protocol Adapters •  Stateless •  Provide conversion to common protocols used in IoT •  MQTT •  LWM2M •  HTTP/Rest •  Clients – devices and Cloud services •  Connects using AMQP using well defined APIs
  • 35. ECLIPSE HONO – ARCHITECTURE Client Client Client Router Network Hono Server Hono Server App App Hono Server Brokers
  • 36. ECLIPSE HONO – ARCHITECTURE •  Hono server •  Stateless – can be scaled •  Validates message format •  Does device-based authentication
  • 37. ECLIPSE HONO – ARCHITECTURE •  Router Network •  Provide connection scalability •  Routes AMQP messages through the system •  Brokers •  Any AMQP 1.0 compatible system •  Used to save persistent messages
  • 38. ECLIPSE HONO – TECHNOLOGY •  Hono server •  Vert.x + Qpid Proton •  Spring Boot •  Docker • Scalable and Cloud Ready!
  • 39. ECLIPSE HONO – TECHNOLOGY •  Scalable messaging •  Apache Qpid Dispatch Router •  Apache ActiveMQ Artemis • Scalable and Cloud Ready!
  • 41. ECLIPSE KAPUA – GOALS •  Provide complete IoT Cloud solution •  Define and Implement needed services •  Ready to run
  • 42. ECLIPSE KAPUA – ARCHITECTURE
  • 43. ECLIPSE KAPUA – BACKHAND SERVICES •  Data Management •  Device Registry •  Device Management
  • 44. ECLIPSE KAPUA – FRONTEND SERVICES •  Management Console •  API Gateway
  • 45. ECLIPSE KAPUA - IMPLEMENTATION •  Micro-services oriented •  Pluggable service locator •  Single JVM •  OSGi •  Cloud Deployment
  • 46. ECLIPSE KAPUA – 1.0 •  MQTT based •  Apache ActiveMQ in the messaging layer •  JDBC store for services •  Elasticsearch for data store •  Single VM deployment
  • 48. INSERT DESIGNATOR, IF NEEDED48 FUTURE - KURA •  More data pre-processing •  BPM integration •  AMQP support •  Gateway support proxy
  • 49. INSERT DESIGNATOR, IF NEEDED49 KAPUA •  Micorservice implementation •  Docker images •  REST/AMQP APIs •  Hono support
  • 51. CONCLUSION •  Together Kura, Hono and Kapua will be able to answer even the most challenging IOT demands •  Lots of work ahead •  Everything open source •  Backed by big companies, like Red Hat, Eurotech, Bosch, … •  Join the effort
  • 52. THANK YOU •  https://www.eclipse.org/kura/ •  https://projects.eclipse.org/projects/iot.hono •  https://projects.eclipse.org/projects/iot.kapua