Zoe - Container-based Analytics as a Service

Zoe provides a simple way to provision data analytics applications. It hides the complexities of managing resources, configuring and deploying complex distributed applications on private clouds. Zoe is focused on data analysis applications, such as Spark or Tensorflow. A generic, very flexible application description format lets you easily describe any kind of data analysis application.


Get Zoe from the GitHub repository. Stable releases are tagged on the master branch and can be downloaded from the releases page.

Zoe is written in Python 3.4+ and requires a number of third-party packages to function. Deployment scripts for the supported back-ends, install and setup instructions are available in the installation guide.

Quick tutorial

To use the Zoe command-line interface, first of all you have to create a configuration file called ~/.zoerc containing your login information:

url=http://localhost:5000  # address of the zoe-api instance
user=joe                   # User name
pass=joesecret             # Password

Now you can check if you are up and running with this command:

./zoe.py info

It will return some version information, by querying the zoe-api and zoe-master processes.

Zoe applications are passed as JSON files. A few sample ZApps are available in the contrib/zoeapps/ directory. To start a ZApp use the following command:

./zoe.py start joe-spark-notebook contrib/zoeapps/eurecom_aml_lab.json

ZApp execution status can be checked this way:

./zoe.py exec-ls                  # Lists all executions, past and present
./zoe.py exec-get <execution id>  # Inspects an execution

Where execution id is the ID of the ZApp execution to inspect, taken from the exec-ls command.