The cloud carbon emission monitor is an under development prototype project to calculate the carbon emission of resource in the cloud and classify the carbon emission as low, medium or high.
- Python 3.10 or higher
- Pip3 for python.
- RabbitMQ running service.
The system can be easily run by executing ./start_carbon_emission_service
The script blocks while the system is running and prints out a URL that can be used to access the web app. The printed message might look so - "Running on http://127.0.0.1:5000"
The List VMs button prints out the list of VMs for which the carbon emissions have been computed. The list returned by this button continues to grow. The Get Carbon Emission button can be used to retrieve the carbon emission report for the provided VM.
Note that at the moment the data is artificially generated but a real source of data could be integrated to this system.
Unit test can be run by executing ./run_unit_test
Integration test can be run by executing ./run_integration_test
On every push a github action is triggered that runs the unit and the integration test. After that a docker image is created that is deployed to the heroku. The file .github/workflows/ci.yml can be changed to alter the deployment strategy accordingly. The docker file Dockerfile creates the heroku docker image.