Architecturing and securing IoT platforms with microservices
IoT device management and multiprotocol messaging platforms demand specific architectural decisions and high-concurrency approaches due to the massive number of expected devices. Drasko Draskovic and Janko Isidorovic share an architecture, implementation, and testing procedures needed to create an industry-grade IoT platform based on microservices and Docker containers.
Talk Title | Architecturing and securing IoT platforms with microservices |
Speakers | Drasko Draskovic (Mainflux), Janko Isidorovic (Mainflux) |
Conference | O’Reilly Software Architecture Conference |
Conf Tag | Engineering the Future of Software |
Location | London, United Kingdom |
Date | October 16-18, 2017 |
URL | Talk Page |
Slides | Talk Slides |
Video | |
IoT device management and multiprotocol messaging platforms demand specific architectural decisions and high-concurrency approaches due to the massive number of expected devices. IoT platforms are most often used as a middleware, as a software server (a set of servers, in fact) that provides several functionalities and services that are usually needed in designing IoT applications. They often have following roles: Most often these platforms need to be multiprotocol in order to support the many networking protocols that proliferate in the IoT world (HTTP, WebSocket, MQTT, CoAP, etc.). Drasko Draskovic and Janko Isidorovic share an architecture, implementation, and testing procedures needed to create an industry-grade IoT platform based on microservices and Docker containers, using popular open source project Mainflux as an example. Mainflux provides a set of clean and open APIs to easily connect, monitor, manage, and provision any device or sensor, enabling IoT products and systems and simplifying the entire IoT development process. In order to enable the high scalability needed for IoT stampede of devices, Mainflux has been written in highly concurrent languages, notably Go (with some Erlang components). The system has been secured with access control policies and JWTs used for device API keys as well as OAuth 2.0 on the application side. There is ongoing development to introduce PKI Diffie-Hellman ECC device certificates for the highest security applications. Being device and protocol agnostic, Mainflux can be used for development of various IoT use cases. One particularly interesting scenario is using a Mainflux-based network as LoRaWAN LPWAN networking infrastructure—a low-power wide area network that supports low-cost, mobile, and secure bidirectional communication for internet of things (IoT), machine-to-machine (M2M), smart city, and industrial applications.