Zoe version 0.10 has been released, bringing a number of improvements to its architecture. The front end (API and web interface) is now decoupled from the back end (scheduling and monitoring), using ZeroMQ to communicate. Moreover we switched from a custom internal state library to an external PostgresQL database. Finally, the scheduler has been revamped to fix some long-standing issues.
These changes bring a lot of robustness to Zoe and pave the way for more features that we are planning and developing.
To stress-test this new version of Zoe, and also Docker Swarm, we run several experiments trying to overload the system in various configurations. But instead of wasting resources running fake jobs, we implemented a ZApp for the Berkley BOINC client.
This ZApp is very simple to use, it takes only the URL and the key for one of the many projects participating to BOINC and runs exactly one task. We submitted thousands of these applications at the same time to Zoe, testing our software and at the same time fighting AIDS, Ebola, Zika and helping several other humanitarian causes through the World Community Grid Project.
After the experiments we left a small script running that starts more BOINC ZApps when our systems are unused, giving us a good long-running test of Zoe without resources going to waste.