Automated cloud deployment
Project description
Automated cloud deployment
The tool is used to determine a deployment plan for a series of application using a given amount of Virtual Machine (VM) offers at its disposal. It was designed to be highly configurable and easy to use.
Setup
Install poetry:
pip3 install poetry
Install needed libraries:
poetry install
on Windows, you mya need to run this due to alias problem:
python3 -m poetry install
Furthermore, you need the Minzinc and CPLEX applications installed as their binaries are required to use the following solvers:
- Chuffed
- Google OR-Tools
- Gecode
- CPLEX
To install them, please use the following links:
- Minizinc [https://www.minizinc.org/]
- CPLEX [https://www.ibm.com/support/pages/downloading-ibm-ilog-cplex-optimization-studio-v1290]
- Google OR-Tools [https://developers.google.com/optimization/install/download]
Enter the shell:
poetry shell
Creating your own use-case
Although the tool comes with some model use-cases, you can also add your own by following these steps:
- Decide the format of the model (MiniZinc / JSON / Both)
- Create the model of the application (see guide below)
- (Optional) For MiniZinc models, create a surrogate model so the script can compute the maximum number of VMs to be used.
- Run the script add_useCase.py which will configure the application for your newly created model
- (Optional) provide a list of Virtual Machine offers, following the same format as those provided as model Note that the offer list must be in the same format as that of the model.
Running the tool
There are two simple steps in running the tool:
- Select the configuration you would like to run with (see the configuration options below)
- NOTE Make sure to disable the solvers that aren't compatible with the format of your sources.
- Run the script runTests.py
Configuration
The configuration of the tool can be found inside the config folder, and is split into several JSON files.
Config.json
This file stores general configuration: from paths to general options for running your tests.
-
Source-Config Stores the configuration regarding models
- Type : The type of solver the models work with
- Path : The path where the models are found
- Extension : The format of the models
- Formalization : The way the general constraints are represented.
-
Input-Config Stores data regarding the input fed to solvers when runnign the tests
- Type : The type of solver which accepts the input files
- Path : The path of the input files
- Extension : The format of the input files
- Offer Numbers : The amount of virtual machine offers found in an input file.
-
Test-Config Stores data regarding the way the tests are carried out
- Repetitions : How many times a specific use case is tested
- Symmetry Breaking : Denotes whether static symmetry breaking techniques should be employed when running the tests
- Symmetry Breakers : Denote all methods of static symmetry breaking which should be tested
- Output path : Denotes where the test results should be placed. The format is Output-Path/SymmetryBreaker/Solver/UseCase_Offers.csv
- Solver Config File : Points to where solver-related settings are stored
- Use Case Config File : Points where use-case specific settings are stored
Solvers.json
This file stores solver related configuration.
-
MiniZinc-Solvers Stores information regarding the different SAT solvers used for testing
- Name : The name of the solver
- Keywd : A unique identifier of the solver
- Enabled : Denotes whether tests should be run with this solver
-
JSON-Solvers Stores information regarding the different SMT solvers used for testing
- Name : The name of the solver
- Keywd : A unique identifier of the solver
- Enabled : Denotes whether tests should be run with this solver
SymmetryBreaking.json
This file stores information required for the usage of symmetry breaking methods with SAT Models.
- SB-Constraints
Stores information about what constraints should be added for different symmetry breakers.
- Tag : A unique identifier of the symmetry breaking technique
- Constraint : The constraint added to the model. A parameter between brackets will be replaced at runtime with an actual value.
UseCases.json
This file stores information about each use case.
- Use-Cases
Stores the configuration of each use-case
- Name : The name of the use-case
- Enabled : Denotes whether the use case should be tested.
- Model-Name : The name of the model used when testing the use case.
- Scaling-Components : Denotes whether the model has components which can be scaled regardless of other restrictions.
- Components
If the model supports scaling components, then here is stored a list of all components which can be scaled
- Name : The name of the component
- Lower Bound : The least amount of instances to be deployed
- Upper Bound : The maximum amount instances to be deployed
- Surrogate-Problem : Denotes whether the model has an associated surrogate problem which must be run first
- Surrogate-Model-Name : The name of the model for the surrogate problem
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sage-rec-engine-0.1.tar.gz.
File metadata
- Download URL: sage-rec-engine-0.1.tar.gz
- Upload date:
- Size: 49.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
326f07067b040e53abe19872bd2c890205c75aba6fd148535254158984898a1e
|
|
| MD5 |
b817510154e9f1288e3f9a92c50ce2cb
|
|
| BLAKE2b-256 |
be78b717a370f4e7ffa66256b9d25c9f828d7cc02df26e60f2c7239df36e381b
|
File details
Details for the file sage_rec_engine-0.1-py3-none-any.whl.
File metadata
- Download URL: sage_rec_engine-0.1-py3-none-any.whl
- Upload date:
- Size: 61.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c77c21e3be2b0835315c0df526eff189a048827a3bc9a058ef84e63f8cbc8d16
|
|
| MD5 |
831664938fa99f2bad476865920d16a8
|
|
| BLAKE2b-256 |
6c79d1597fd2637f7cc0e594c8483e25835e417c7d2cba5b22efd351f0be2fe5
|