Logo

reproducible evaluation and fault injection of large-scale distributed systems.

Publications

Open Positions

Prototype

A very early alpha prototype is available to try here.

Only the orchestration part is avaliable. Network emulation is still not supported and the fault injection capabilites are limited.

Any feedback on features, availability, and general comments is welcome.

Requirements

Locally

  1. Have a Docker client/daemon up and running on your machine. Check the Docker documentation for instructions.

  2. Build the Docker images and push them to a local registry
    make all push
    
  3. Check config.yaml and adjust it accordingly to your system. The provide defaults provided should work in most cases.

  4. Initialize a cluster with only the local node.
    ./bin/lsds cluster init
    

    If bash is not your default shell, prefix all commands with bash as in

    bash bin/lsds cluster init
    
  5. Start the cluster
    ./bin/lsds cluster up
    
  6. Check the status of the cluster with
    ./bin/lsds cluster status
    
  7. Let’s run a simple deployment with a nginx server and a siege client.
    ./bin/lsds benchmark --app examples/nginx/nginx.yaml --name hello-world --run-time 120
    

    which will run the experiment for 120 seconds.

  8. To run a more interesting scenario with churn
    ./bin/lsds benchmark --app examples/nginx/nginx.yaml --name hello-churn --churn examples/nginx/churn.yaml
    
  9. Results will become available at <data>-<experiment-name>

  10. To shutdown the cluster run
    ./bin/lsds cluster down
    

In a cluster

  1. Have a cluster ready with Docker running on every host and make sure that every host is accessible though ssh.
  2. Adjust config.yaml to match your cluster settings, with one entry per each cluster machine
  3. To run an experiment in the cluster follow steps 4-9 of the local deployment.

Contribute

If you find any issue or would like to contribute with new features open a new issue and we will get in touch as soon as possible.

back