Orchestration of Microservices for IoT Using Docker and Edge Computing - Alam, Muhammad (2020)
The world of connected devices has led to the rise of the Internet of Things paradigm, where applications rely on multiple devices, gathering and sharing data across highly heterogeneous networks. The variety of possible mechanisms, protocols, and hardware has become a hindrance in the development of architectures capable of addressing the most common IoT use cases, while abstracting services from the underlying communication subsystem. Moreover, the world is moving toward new strict requirements in terms of timeliness and low latency in combination with ultra-high availability and reliability. Thus, future IoT architectures will also have to support the requirements of these cyber-physical applications. In this regard, edge computing has been presented as one of the most promising solutions, relying on the cooperation of nodes by moving services directly to end devices and caching information locally. Therefore, in this article, we propose a modular and scalable architecture based on lightweight virtualization. The provided modularity, combined with the orchestration supplied by Docker, simplifies management and enables distributed deployments, creating a highly dynamic system. Moreover, characteristics such as fault tolerance and system availability are achieved by distributing the application logic across different layers, where failures of devices and micro-services can be masked by this natively redundant architecture, with minimal impact on the overall system performance. Experimental results have validated the implementation of the proposed architecture for on-demand services deployment across different architecture layers.