Analysis and Implementation of Simulation Tools for Fog Computing with Microservice Support
Fog/Edge computing is the prevalent technology to bring a Cloud-like environments as close as possible to the end user. It provides high bandwidth and low latency connectivity due to its close proximity to the location of the end user. Hence, a wide variety of IoT applications such as health monitoring, smart and driverless vehicles, home safety, industrial automation, and robotics can leverage Fog computing benefits.
Microservice is a new architectural approach for any type of application that structures an application as a collection of small and single-task services which communicate with each other using APIs. This new paradigm improves scalability, fault tolerance, program language independency, data security, and hardware resource utilization. In recent years, monolithic IoT applications have moved towards a microservice-based architecture implemented in a Fog environment.
Over the years, various simulation tools have been proposed to evaluate cloud and fog environments. Hence, in this project, we plan to evaluate and compare different Fog simulators that support microservices. This project will be divided according to the following phases.
- Phase 1 – Getting familiar with the various concepts (cloud, fog, microservice, simulator, etc.) and identifying potential fog simulators supporting microservices from the literature.
- Phase 2 – Installing and getting familiar with various fog simulators while paying special attention at how microservices are supported.
- Phase 3 – Deploying a microservice-based application in the selected simulators and perform a detailed comparison of various features. More specifically, we are interested to analyze mobility support, placement support, resource utilization support, etc.
- Phase 4 – Select one of the fog simulators and propose new features that can be added to improve the simulation results for microservice scenarios. Different options are available ranging from the addition of new evaluation parameters to new options during the initial configuration of the scenario. Time permitting, the suggested features can also be implemented. However, this will require a customization of the simulator source code to support new features.
Phases 3 and 4 will be the most challenging as you will have to learn different simulation environments and brainstorm to propose new features. To successfully complete this project, you will require the following skills:
- Linux (Ubuntu distro)
- Bash script – automate the process, run simulation, etc.
- Java/python – most simulation tools are developed using java or python
Students are expected to take ownership of this project and contribute ideas to its development (especially in phases 3 & 4) as the year progresses. Motivated, curious, and resourceful students are expected.