Preconditions
In order to repeat our experiments, you need the following infrastructure.
- linux machine with Vagrant installed
- accounts for the different cloud providers. Especially AWS for hosting the CWB framework
- Cloud Workbench (CWB)
Data Gathering and Analysis Scripts
Cookbooks
In the following, the required chef cookbooks are briefly introduced
Cookbooks which were used in the case study
- acmeair_mongodb - sets up the mongodb
- acmeair_wlp_morphia_distributed - sets up acmeair with wlp and mongodb driver but without a mongodb instance
- acmeair-single/ - this is the cwb-jmeter benchmark (works like an adapter for jmeter-cwb)
- jm-acmeair-api/ - this is the effective jmeter test plan which was used for the benchmarks
- jm-acmeair-default-assets/ - this are the files needed to run the test plan
- fileserver/ - this is a convenience cookbook which provides a fileserver based on spring-boot
- cwb-jmeter/ - this is a cookbook which sets up jmeter and its dependencies (is used for both, master and slave instances)
Other cookbooks
All the other cookbooks in this repository were used in development or for POCs and were not used in the case study.
Example of CWB-Vagrantconfigurations
Examples of complete CWB configurations can be found in the "sample_configurations" subfolder of this repository: Sample Configurations
Data Analysis Script
The script used to evaluate the data and produce the metrics discussed in the paper is available in the scripts subfolder of this repository:Scripts. The same script was also used to generate the plots. Data retrieval is done via Python 3.4.4 and using the SciPy library.
How To Get Started
- download vagrant
- setup CWB following the CWB instructions
- run a first, simple benchmark on CWB
- upload the cookbooks to the chef server
- copy paste the AWS sample configuration and update the instance sizes you want to use
- make sure to use the same AWS security group and other configurations as needed
- setup a fileserver
- configure the POST IP as needed
- run the benchmark