Osmotic Computing
May 2022
Description
The aim of my third-year dissertation was "To evaluate the effectiveness of different methods to deal with backpressure in an osmotic computing pipeline”. Osmotic computing “enables the automatic deployment of microservices that are composed and interconnected over both edge and cloud infrastructures”. I created an IoT-Edge-Cloud pipeline by using the Urban Observatory API, my PC, three Raspberry Pis and an AWS EC2 instance. I used one of the Raspberry Pis to balance the data to the other two where it is processed and then sent to the cloud.
I performed experiments comparing the least connections, round robin, and weighted round robin load balancing algorithms and hypothesised that the least connection algorithm would be the most efficient. I compared metrics such as the time taken from when the data was sent from the load balancer until it was received in the cloud, and Grafana graphs showing data such as CPU usage to compare the different experiments.
Upon evaluation, I disproved my hypothesis and the least connections algorithm only generally performed better in pipelines where different CPU constraints were applied to containers and the respective weights were not applied to in the weighted round-robin algorithm to compensate for this. I was able to conclude that although the least connections did not always perform the best, it was the best algorithm to deploy easily if you did not know the processing power of the different edge devices.
Technologies Used
- Python
- AWS
- Mosquitto MQTT Broker
- cAdvisor
- Prometheus
- Grafana