Intergrated Testing - SimonZsx/clipper GitHub Wiki

The json file

File name

in form of: appname.json

e.g. imagequery.json

Fields

appname

The identifiers for the APP to be deployed, not necessary to be the same as the file name

num_containers

supportSwarm

Either True or False

images

Lists of the name of the images; each system should have a separate list

build_path

Path of the scripts to build the images; each system should have one sub-entry

  • Note that in the scripts, it is recommended to use the absolute path, so that these scripts can be run both with the launcher or manually

frontendServerPath

The path to the executable files to deploy the applications; each system should have one sub-entry

frontendServerArgs

What arguments should be appended to the command to start the application; each system should have on sub-entry although some of them may not need any arguments

e.g. To start the imagequery, the entire commands is

python3 /clipper/clipper_admin/imagequery.py --dag /clipper/applications/imagequery_w_proxy/dag_formatted

Thus, one may add the entry

"withProxy": "/clipper/clipper_admin/imagequery.py"

with in the frontendServerPath field, and add

"withProxy": "--dag /clipper/applications/imagequery_w_proxy/dag_formatted"

with in the frontendServerArgs field.

frontendClientPath

Path to the client; each system should have one sub-entry although some may not need it

frontendClientParams

Arguments following the command to start the client and the enquire; each system should have one sub-entry

We recommend you that for each system, the four entries("ip", "port", "system" and "worker") may be specified, though for certain systems, the values of all the four entries are left as empty

arguments

--appName or -n

Specifying the name; this should correspond to the name of the json files

--mode or -m

Specifying in which system the app is going to run.

Note that the system (or to say, the mode) here should have one sub-entry in each field in the json file except for the appName, num_containers and supportSwarm ones

--network or --net

Specifying which network to run the APPs. It should be either localhost or swarm

--refresh or -r

A flag to determine whether the launcher should re-build the images to be deployed.

Program procedure

Flow chart for the program procedures

Storing testing results

After the above procedure is done, the performance will be analysed. The data will be printed and stored in the /clipper/process_log/ directory, as a *.log file. The output is encoded with the ASCII standard.

You may also specify the containers which you would like to see the output from when the procedure is about to finish and asking you enter the container names. You will expect to find them all in /clipper/process_log/

Note that in usual cases, the python scripts to stop the applications will be executed automatically after the log is retrieved, analysed and stored. If you want to bypass it, you may have to change the source code in clipper/launcher.py