Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EnMasse : open sourcing the messaging & IoT

328 views

Published on

Out there there are a lot of "closed" source products for developing messaging and IoT based solutions.
What if you want to have more control on your platform ? EnMasse is the answer !
It's a totally "open" source messaging-as-a-service platform which can be deployed on-premise, in the cloud or even in an hybrid scenario.
At same time it's highly scalable, based on standard protocols like AMQP 1.0 and MQTT and provides different patterns for messages exchange.
Its nature makes EnMasse a great solution for IoT deployments in order to handle millions of connected devices for ingesting telemetry data and controlling them.
This slides are from the JavaSI conference 2017

Published in: Software
  • Be the first to comment

  • Be the first to like this

EnMasse : open sourcing the messaging & IoT

  1. 1. EnMasse : Open sourcing the messaging & IoT A messaging-as-a-service platform Ulf Lilleengen Senior Software Engineer @ Red Hat Paolo Patierno Senior Software Engineer @ Red Hat 16/10/2017
  2. 2. 2 Who are we ? @ppatierno ● Senior Software Engineer @ Red Hat ○ Messaging & IoT team ● Lead/Committer @ Eclipse Foundation ○ Hono, Paho and Vert.x projects ● Microsoft MVP Azure/IoT ● Enjoys finding bugs that Ulf can fix later @lulf ● Senior Software Engineer @ Red Hat ○ Messaging & IoT team ● Working on enmasse.io ● Enjoys creating bugs that I can fix later
  3. 3. INSERT DESIGNATOR, IF NEEDED IoT Core Services 3 What makes an IoT platform ? Messaging infrastructure Device Provisioning Business Services Monitoring Real time streaming Machine Learning … Authentication & Authorization Device Registration
  4. 4. 4 IoT Communication Patterns Telemetry Inquiries Commands Notifications Cloud
  5. 5. 5 IoT Communication Patterns Messaging patterns & protocols ● Telemetry & Notifications are about … ○ …. messaging publish/subscribe ● Commands & Inquiries are about … ○ … messaging request/response ● Different protocols (AMQP, MQTT, HTTP, …) implement them in different way ○ As built-in support … ○ … or on top of it at application level ○ Read more on “Strengths And Weaknesses Of IoT Communication Patterns” * * DZone IoT Guide : https://dzone.com/guides/iot-applications-protocols-and-best-practices
  6. 6. 6 ● Microsoft Azure ○ IoT Hub ● Amazon Web Services ○ AWS IoT ● Google ○ IoT Core ● IBM ○ Watson IoT IoT in the Cloud Existing Offerings
  7. 7. 7 Messaging in the cloud
  8. 8. 8 ● Freedom of choice ○ On-premise or in the cloud ○ Ability to choose which cloud ○ Open Standards protocols allows users to choose client freely ● Migrating from one to the other can be complex Cloud provider limitations
  9. 9. 9 ● Open source cloud messaging running on Kubernetes and OpenShift ● enmasse.io ● github.com/enmasseproject/enmasse EnMasse Messaging-as-a-Service
  10. 10. 10 Address model Address Space - Type - Plan Address - Type - Plan - Properties N M 1 1
  11. 11. 11 Standard address space type
  12. 12. 12 Brokered address space type ActiveMQ Artemis Admin Clients
  13. 13. INSERT DESIGNATOR, IF NEEDED13 Routing vs “Broking” Broker Producer Broker Consumer Send message Accepted Send message Accepted
  14. 14. INSERT DESIGNATOR, IF NEEDED14 Routing vs “Broking” Router Producer Router Consumer Send message Accepted Send message Accepted
  15. 15. 15 Security With AMQP SASL plugin
  16. 16. 16 MQTT over AMQP ● 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 … ○ … “will testament” works for AMQP clients as well
  17. 17. 17 ● Integrate better with Eclipse Hono ○ It provides an interface for connecting devices even in terms of exposed and well defined API (telemetry, event, …) ● HTTP(S) ● Kafka address space type ? ○ With only one connection you can R/W on a queue, a topic, a direct address and a Kafka topic ! Using AMQP 1.0 ... ● Improve Kubernetes support ○ RBAC ○ CI (only for OpenShift at present) ○ Ingress (with better support for TLS SNI) Future work
  18. 18. 18 Demo
  19. 19. 19 Building an IoT solution with EnMasse Room E 9:05 - 11:50
  20. 20. 20 Thanks ! Questions ? @ppatierno @lulf
  21. 21. 21 Scaling (routers and brokers)
  22. 22. 22 Scaling routers R R R R A
  23. 23. 23 Scaling routers (#2) R R R R A
  24. 24. Scaling brokers 24 a a b b Router network
  25. 25. Adding brokers 25 a a b b Router network a
  26. 26. Removing brokers 26 a a b b Router network a
  27. 27. 27 User interface
  28. 28. OpenShift console 28
  29. 29. Messaging console 29 ●
  30. 30. 30 Monitoring

×