enmasse : open sourcing the messaging & iot

18
EnMasse : open sourcing the messaging & IoT The messaging as a service platform Paolo Patierno Senior Software Engineer Luca Bigotta Solution Architect 9/11/2017

Upload: paolo-patierno

Post on 22-Jan-2018

337 views

Category:

Software


7 download

TRANSCRIPT

EnMasse : open sourcing the messaging & IoT

The messaging as a service platform

Paolo PatiernoSenior Software Engineer

Luca BigottaSolution Architect

9/11/2017

EnMasse

2

Messaging-as-a-Service

● Open source cloud messaging running on Kubernetes and OpenShift● enmasse.io● github.com/enmasseproject/enmasse

EnMasse

3

Features

● 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

Basic idea

4

Routers and brokers

R

R

R

P C

B

B

Routing vs Brokering

5

Broker

Producer Broker Consumer

Send message

Accepted

Send message

Accepted

Routing vs Brokering

6

Router

Producer Router Consumer

Send message

Accepted

Send message

Accepted

Address model

7

Address space● Type● Plan

Address● Type● Plan● Properties

1 N 1 M

● Address space : group of addresses accessible through a single connection (per protocol)

● Address : a destination used for sending and receiving messages

Spaces and Addresses

EnMasse

8

Architecture - “Standard” address space

Qpid Dispatch Routernetwork

ActiveMQ Artemisbrokers

Admin

MQTT gatewayMQTT clients

AMQP & JMS clients

EnMasse

9

“Brokered” address space

ActiveMQ Artemisbrokers

Admin

AMQP & JMS clients

EnMasse

10

Security

Qpid Dispatch Routernetwork

ActiveMQ Artemisbrokers

Admin

MQTT gatewayMQTT clients

AMQP & JMS clients

With AMQP SASL plugin

Scaling

11

Routers

R

R

R

R

A

Scaling

12

Routers

R

R

R

R

A

Scaling

13

Brokers

a a b b

Router network

a

Scaling

14

Brokers

a a b b

Router network

a

MQTT over AMQP

15

● MQTT gateway○ Handles connections with remote MQTT clients○ Bridges MQTT - AMQP protocols

● MQTT lwt○ Provides the “will testament” feature○ In charge to recover & send the “will” if client dies

● It brings MQTT features over AMQP so …○ … it’s not just about translating and bridging protocols … ○ … “will testament” works for AMQP clients as well

EnMasse

16

Future work

● HTTP(S) support● Bridging address spaces● Kafka integration

○ as part of the “standard” address space (i.e. one AMQP connection for multiple destinations, even a Kafka topic)

○ as “kafka” address space (accessible through native Kafka clients)● Improve Kubernetes support

○ RBAC○ CI (only for OpenShift at present)○ ingress (with better support for TLS SNI)

● Integrate better with Eclipse Hono○ provides interface and API (telemetry, event, …) for connecting IoT devices