Energy-aware service placement for Cloud, Fog, and Edge infrastructures. The repository contains a Python placement framework, GCP deployment helpers, and an Apache Storm integration layer.
- python_algo: placement algorithms, evaluators, properties files, and CSV exports.
- gcp_automations: GCP VM provisioning and Monitoring data collection.
- storm-scheduler: Apache Storm topologies and custom schedulers.
- scripts: helper scripts to build, start, stop, and submit Storm jobs.
- Python 3.12+
- Java 17+
- Maven 3.9+
- Apache Storm 2.8.3 for cluster execution
- Google Cloud SDK for GCP deployment
cd python_algo
pip install -r requirements.txt
python main.py --strategy CSP --verbosecd python_algo
python main.py --strategy GreedyFirstFit --infra properties/Infra_5nodes_GCP.properties --app properties/Appli_5comps_GCP.properties --placement-csv ..\results\placement.csv --metrics-csv ..\results\metrics_GreedyFirstFit.csvpip install -r gcp_automations/requirements.txt
python gcp_automations/deploy_gcp_from_properties.py python_algo/properties/Infra_5nodes_GCP.properties./scripts/launch_topology_from_properties.sh ./python_algo/properties/Appli_4comps.properties DemoTopology./scripts/launch_placement_and_topology.sh ./python_algo/properties/Infra_5nodes_GCP.properties ./python_algo/properties/Appli_5comps_GCP.properties ./python_algo/properties/Infra_5nodes_GCP_mapping.csv CSP- Define infrastructure and application inputs in python_algo/properties.
- Run a placement strategy with python_algo/main.py.
- Export placement and metrics CSV files to results or results_infra10.
- If needed, provision matching GCP VMs with gcp_automations/deploy_gcp_from_properties.py.
- Build and submit the Storm topology with the scripts in scripts.
- Placement mapping CSV:
results/placement.csvunless overridden. - Metrics CSV: appended to the path passed with
--metrics-csv. - Example benchmark outputs already exist in results and results_infra10.