From the Edge to the Cloud: Enabling Reliable IoT Applications
This project focuses on the application of fault-tolerance techniques for IoT devices in mission-critical applications on a cloud-fog-edge architecture.
This project is described in this paper. If you find this repository useful for your research, please consider citing:
@inproceedings{martin2019,
author={Mart{\'\i}n, Cristian and Garrido, Daniel and D{\'\i}az, Manuel and Rubio, Bartolom{\'e}},
booktitle={2019 7th International Conference on Future Internet of Things and Cloud (FiCloud), August 26-28, Istanbul, Turkey},
title={From the Edge to the Cloud: Enabling Reliable IoT Applications},
year={2019},
pages={17-22},
keywords={Internet of Things, Fault Tolerance, Container Virtualisation, Edge, Fog, Apache Kafka},
doi={10.1109/FiCloud.2019.00011}
}
This project requires a Docker Swarm cluster to deploy the system. Plese visit the official page for more information.
Deploy the system
On a Raspberry Pi Cluster
docker stack deploy -c docker-raspberry.yml reliableiot
On AMD64
docker stack deploy -c docker-amd64.yml reliableiot
Once deployed, you will have access to the Reliable Web UI at http://localhost:8002/
Build and deploy the system on a Linux Cluster
Before deploying all modules on Docker Swarm, the following Docker images must be built: iotdatabase, iotregister, iotweb, iotshadowapplications, leshanondockers, leshanmonitor, iotrecovery. The other images: mongo, zookeeper, kafka, are directly pulled from Docker hub.
Building commands:
docker build --tag=iotdatabase .
docker build --tag=iotregister .
docker build --tag=iotweb .
docker build --tag=iotshadowapp .
docker build --tag=leshanondockers .
docker build --tag=leshanmonitor .
docker build --tag=iotrecovery .
Then, deploy the cluster:
docker stack deploy -c docker-compose-all.yml reliableiot
Docker Hub dependencies for Linux:
Docker Hub dependencies for Raspberry:
Supported OSs:
- ARMv7 -- Raspberry Pi
- AMD64 --Linux