From the Edge to the Cloud: Enabling Reliable IoT Applications This paper presents a reliable architecture for the IoT considering multiple levels: edge, fog and cloud. This architecture can help to reduce latency and improve resiliency of IoT applications. The platform is based on a set of containerised components replicated at different levels. Fault tolerance mechanisms are provided by means of replication, the Apache Kafka framework and shadow devices. Apache Kafka is used to distribute messages along the multiple levels. Shadow devices include device states, and they can be used to avoid device interruptions using physical replication and state restoration. The architecture is also protocolagnostic, allowing the use of different adaptors for the most common IoT protocols. A missioncritical use case is presented where this architecture can be applied. Finally, an evaluation has been carried out in order to test the feasibility of the fog infrastructure.

MQTTbased Middleware for Container Support in Fog Computing Environments Distributed architectures where the Internet of Things (IoT) and the cloud are efficiently integrated play an increasingly important role for IoT solutions. Among these architectures, there is a growing interest in the ones that support the opportunity of functionality offloading towards either intermediate fog nodes or IoT end devices. Relevant existing research work has mainly focused so far on virtual machine and container migration to intermediate fog nodes and on migration of very simple functions to IoT endpoints (to preserve their limited resources available). In this paper, we originally concentrate on the gap associated with benefitting from fog functionality at resourcepowerful IoT endpoints, to create a continuum deployment that glues IoT devices and the cloud. In particular, this paper originally presents a middleware that manages application deployment and lifecycle by simplifying and optimizing management operations such as device configuration and application constraint satisfaction. The proposed solution particularly fits highly articulated scenarios with large numbers of IoT devices and intermediate fog nodes, by supporting the opportunity to offload functionality in a split way between IoT endpoints and edge nodes. The reported experimental results confirm the feasibility of our approach in term of overhead, scalability, and application lifecycle management.