benchflow / benchflow

An open-source expert system for automated end-to-end objective-driven performance testing and performance insights.
Other
25 stars 4 forks source link

Improve/Extend the SUT Deployment Manager Service #61

Open VincenzoFerme opened 7 years ago

VincenzoFerme commented 7 years ago

We need to move the service to the single repo, improve it, and make the deployment-manager, to be renamed in sut-deployment-manager, more stable and expositing new APIs to be ready for future development.

APIs:

Among the other things to consider we hare:

Storing Infrastructure Knowledge:

We need also to expose APIs to obtain list of available servers, so it can be used to validate the request obtained from the user (initially every time, then with caching). For this we probably need at least: alias (maybe hostname), local_network_ip/privateip, public (we need something similar to the following but in Java: http://stackoverflow.com/questions/691045/how-do-you-determine-if-an-ip-address-is-private-in-python)

Manage Dynamically Added Machines:

Docker machine if we need to be dynamic in adding machines. Since there is no Java library for Docker machine we can create a wrapper for the command line taking inspiration from the Python wrapper to Docker Machine, and by following the following reference: http://alvinalexander.com/java/java-exec-processbuilder-process-1

Deployment:

Docker and Docker Swarm mode store data on volumes, so I need to add named volumes so that information can survive to service restart.

Current (Accepted) Limitations:

For now still fine behind the firewall, then not work with docker hosts having certificates to connect to the API, or if swarm mode does it, then do it and init the swarm in the service.

VincenzoFerme commented 7 years ago

We should also handle virtual machines.

Extention of the Automation: