Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device...

26
EclipseCon Europe 2017 Dejan Bosanac, Red Hat Kai Hudalla, Bosch Software Innovations GmbH Scaling out Eclipse Hono

Transcript of Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device...

Page 1: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

EclipseCon Europe 2017

Dejan Bosanac, Red HatKai Hudalla, Bosch Software Innovations GmbH

Scaling out Eclipse Hono

Page 2: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Who we are

Dejan Bosanac

Chief Software Architect @ Bosch SI

● IoT Hub Team

Lead/Committer @ Eclipse

● Hono● Californium● Leshan

Kai Hudalla

Senior Software Engineer @ Red Hat

● Messaging and IoT

Open source committer

● Eclipse Hono● Eclipse Kapua● Apache ActiveMQ

Page 3: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Eclipse Hono provides a uniform APIfor interacting with millions of devices connected to the cloud viaarbitrary protocols.

Page 4: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Things CloudCommand & Control

Telemetry

optimized for throughputscale-out with #messages

optimized for reliabilityscale-out with #devices

many existing protocolsHTTP, MQTT, CoAP

etc

arbitrary providers &deployment options

Page 5: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Building Blocks

API Endpoints &SecurityProtocol Adapters

Business Applications

Devices

AMQP 1.0

Hono

AMQP messaging network

end to end flow control

AMQP 1.0

AMQP 1.0

HTTPMQTTetc.

Page 6: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Monolithic Design≤ 0.5-M6

Hono Server

MQTT Adapter

Telemetry

Event

Telemetry

Event

MQTTDevices

BusinessApplications

ActiveMQ Artemis Broker

Telemetry Event

Messaging Qpid Dispatch Router

Authentication

DeviceRegistration

Page 7: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Micro-Service Design≥ 0.5-M7

AuthServer

Authentication

MQTT Adapter

Device Registration

Telemetry

Event

Telemetry

Event

Credentials

MQTTDevices

BusinessApplications

ActiveMQ Artemis Broker

Telemetry Event

Authentication

Hono Messaging

Qpid Dispatch Router

DeviceRegistry

Provided by 3rd Party/Demo Implementation

Page 8: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Registration Assertion

MQTT Adapter Hono Messaging

DeviceRegistry

1. publish telemetry

2. assert (tenant-id, device-id)

6. forward message

5. create message (incl. token) 7. validate token

8. forward message

Device

4. Json Web Token

3. check if device is registered and enabled

<<public key>>

Page 9: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Features Hono 0.5

● Uniform APIs for consuming telemetry data and events

● MQTT, HTTP protocol adapters

● Device-level Authentication

● Tenant based Security Model

● Horizontal Scalability

Page 10: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

AMQP 1.0

10

Simple deployment

Protocol AdaptersAMQP 1.0

AMQP 1.0

HTTP, MQTT

Qpid Dispatch Router

ActiveMQ Artemis Broker

AMQP 1.0

BusinessApplicationsDevices API Endpoints &

Security

Page 11: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

11

Routing vs Brokering

Broker

Producer Broker Consumer

Send message

Accepted

Send message

Accepted

Page 12: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

12

Routing vs Brokering

Router

Producer Router Consumer

Send message

Accepted

Send message

Accepted

Page 13: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

13

● Store and Forward○ Queue ○ Topic

● Direct○ Anycast○ Multicast (Broadcast)

Addressing semantics

Page 14: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

AMQP 1.0

14

Scalable deployment

Protocol AdaptersAMQP 1.0

AMQP 1.0

HTTP, MQTT

● EnMasse … ○ a messaging-as-a-service platform○ elastic scaling○ multiple communication patterns○ more info : enmasse.io○ … and more and more …

BusinessApplicationsDevices API Endpoints &

Security

Page 15: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

15

Basic idea

R

R

R

P C

B

B

Page 16: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

16

● Open source cloud messaging running on Kubernetes and OpenShift

● enmasse.io

EnMasse

Messaging-as-a-Service

Page 17: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

17

● Multiple communication patterns: request/response, publish/subscribe and competing consumers

● Support for “store and forward” and direct messaging mechanisms

● Scale and elasticity of message brokers

● AMQP 1.0 and MQTT support

● Simple setup, management and monitoring● Multitenancy: manage multiple independent instances

● Deploy “on premise” or in the cloud

EnMasse

Features

Page 18: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

18

Page 19: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

19

● Queue ○ store-and-forward = true○ multicast = false

● Topic ○ store-and-forward = true○ multicast = true

● Anycast○ store-and-forward = false

○ multicast = false● Broadcast

○ store-and-forward = false○ multicast = true

Address types

Page 20: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

20

● Persistence

○ In memory

○ Persisted

● Scaling

○ Single broker

○ Pooled

● HA

Flavor examples

Page 21: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

21

Page 22: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

22

Page 23: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

23

● Authentication and authorization

● Service broker API

● HTTP(S)

● Broker address space○ Message grouping○ Distributed transactions○ Message ordering

● Multiple flavors○ Apache Kafka?

● ...

FutureIn progress/TODO

Page 24: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Resources

● Eclipse Hono - https://www.eclipse.org/hono

● EnMasse - http://enmasse.io

● ActiveMQ Artemis - https://activemq.apache.org/artemis/

● Qpid Dispatch Router - http://qpid.apache.org/components/dispatch-router/

Page 25: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Thank you ! Questions ?

Page 26: Scaling out Eclipse Hono - eclipsecon.org out Eclipse Hono. Who we are ... MQTT Adapter Device Registration Telemetry ... Apache Kafka? ... Future In progress/TODO.

Evaluate the SessionsSign in and vote at eclipsecon.org

- 1 + 10