https://github.com/amirhnajafiz/cloud-provider
Implementing a cloud computing provider system.
https://github.com/amirhnajafiz/cloud-provider
cloud cloud-computing cloud-platform python python3 qemu rabbitmq
Last synced: 7 months ago
JSON representation
Implementing a cloud computing provider system.
- Host: GitHub
- URL: https://github.com/amirhnajafiz/cloud-provider
- Owner: amirhnajafiz
- Created: 2023-09-17T19:19:16.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-10-14T08:15:38.000Z (about 2 years ago)
- Last Synced: 2025-01-23T17:34:35.685Z (9 months ago)
- Topics: cloud, cloud-computing, cloud-platform, python, python3, qemu, rabbitmq
- Language: Python
- Homepage:
- Size: 20.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cloud Provider

Implementing a bare metal cloud computing provider system with ```python```, ```rabbitmq```, and ```qemu```.
My goal is to create an on-demand computing platform like EC2 (aka Amazon Elastic Compute Cloud).
This provider is capable of:- Spin up ```VM```s on-demand
- Take down ```VM```s on-demand
- Allow to use or not use a public IP on a ```VM```
- Be scalable in the background, i.e. possibly ```VM```s are on different servers## Schema
In the following textbox we are displaying our cloud provider schema. As the image states,
first the user sends a request into rabbitMQ cluster to perform an operation. On the other side,
the consumer is bound to listen for user requests. After receiving each request, consumer
checks the input request and calls fallback functions.```
| make publish | -> | consume by consumer | -> | callback function based on request |
```## Setup
Create an ```env``` variable for your rabbitMQ address:
```shell
export RABBIT_HOST=localhost
```Now start the consumer by ```python consumer/main.py```. You can work with
provider as ```CLI``` for sending your requests.### commands
In the following list you can see ```CLI``` commands:
- ```python provider/main.py start-vm --image [image name]```
- ```python provider/main.py list-vm```
- ```python provider/main.py stop-vm --vm-id [id returned in list-vm]```