https://github.com/cloudslab/microfog
A Framework for Scalable Placement of Microservices-based IoT Applications in Federated Fog Environments
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 2 DOI reference(s) in README -
✓Academic publication links
Links to: sciencedirect.com -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.6%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
A Framework for Scalable Placement of Microservices-based IoT Applications in Federated Fog Environments
Basic Info
- Host: GitHub
- Owner: Cloudslab
- License: gpl-3.0
- Language: HTML
- Default Branch: main
- Size: 2.31 MB
Statistics
- Stars: 4
- Watchers: 13
- Forks: 0
- Open Issues: 0
- Releases: 0
Created over 3 years ago
· Last pushed over 2 years ago
Metadata Files
Readme
License
README.md
MicroFog : A Framework for Scalable Placement of Microservices-based IoT Applications in Federated Fog Environments
MicroFog is a scalable and extensible framework that enables Microservices-based IoT Applications placement within multi-fog multi-cloud environments using Kubernetes (as container orchestrator) and Istio (as Service Mesh)
Features :
- Multi-fog Multi-cloud microservice placement and deployment
- Seamless microservice composition across hybrid environments through automated deployment of Kubernetes and Istio resources to ensure cross-cluster service discovery and load balancing.
- Ability to integrate novel placement algorithms and load balancing policies easily.
- Support for heterogeneous cloud-native application deployment without any application-level changes.
- Compatibility with cutting-edge cloud-native technologies.
- A configurable control engine to support different approaches for application placements
- operation modes like centralised or distributed operation
- application placement modes such as event-driven or periodic placement request processing and batch or sequential placement request processing
- Distributed storage solutions to store the data required for application placement and deployment
- Rapid prototyping support
- Flexible and scalable for distributed deployment across fog and cloud clusters.
Main Components of the framework:
- MicrFog-CE : Control Engine of the framework, responsible for executing placement algorithms and deploying the microservices-based application using Kubernetes and Istio resources
- Data Stores : Contains data required for application placement. Consists of 3 main data sores
- MinIO YAML Store
- Redis Meta Data Store
- Docker Image Registry
- Monitoring components (Prometheus, Grafana, Kiali)
- Logging component (Grafana Loki)
Technologies used:

This repository contains three resources for running and configuring MicroFog Framework.
- ControlEngine : Contains the code for the MicroFog-Control Engine developed as a microservice. Can be extended adn containerised to add novel placement policies, load balancing policies, etc.
- Prototype_Setup : Contains resources required for deploying MicroFog framework (Example setup containes resources for setting up two Fog clusters and One Cloud cluster)
- cluster_setup : Resources required for Fog-Cloud infrastructure setup as Kubernetes and Istio installed clusters
- redis_setup : Resources required for setting up Redis Meta Data Store
- minio_setup : Resources required for setting up MinIO YAML Store
- control-engine-setup : Resources required for setting up MicroFog-CE
- kiali_setup : Resources required for setting Kiali for microservice observerbility
- grafana-loki-setup : Resources required for configuring Loki for log aggregation and Grafana for visualisation of logs
- docs : Contains guidelines explaining each setup
- Workload_Generator : A tool for creating dummy microservices-based application workloads for evaluating novel placement polcies.
- dummy-micro-java : A template microservice using JAVA. It's a configurable microservice which can be as the buidling block for heterogeneous applications with diverse interaction patterns among microservices.
- sample-deployment-resources : We provide 5 example applications to demonstrate how to use the workload generator
- docs : Explains the design, architecture of the workload generator.
References :
- Samodha Pallewatta, Vassilis Kostakos, Rajkumar Buyya, MicroFog: A framework for scalable placement of microservices-based IoT applications in federated Fog environments, Journal of Systems and Software, Volume 209, 2024, 111910, ISSN 0164-1212, https://doi.org/10.1016/j.jss.2023.111910
Owner
- Name: The Cloud Computing and Distributed Systems (CLOUDS) Laboratory
- Login: Cloudslab
- Kind: organization
- Website: http://www.cloudbus.org/
- Repositories: 23
- Profile: https://github.com/Cloudslab