Singularity is an API and web application for running and scheduling Apache Mesos tasks — including long running processes, scheduled jobs, and one-off tasks.
It focuses on a batteries-included approach: Singularity and its components provide an entire Platform as a Service (PaaS) to end-users. It has many features which have been introduced to reduce developer friction and ensure proper operation and reliable deployment of tasks. Users may even be unfamiliar with and shielded from the details of Mesos.
For a more thorough explanation of the concepts behind Singularity and Mesos click here.
- Native Docker Support
- JSON REST API and Java Client
- Fully featured web application (replaces and improves Mesos Master UI)
- Rich load balancer integration with Baragon
- Deployments, automatic rollbacks, and healthchecks
- Webhooks for third party integrations
- Configurable email alerts to service owners
- Historical deployment and task data
- Custom executor with extended log features
Try It Out!
docker-compose pull first to get all of the needed images. Note: This may take a few minutes
Then simply run
docker-compose up and it will start containers for...
- mesos master
- mesos slave (docker/mesos containerizers enabled)
- Baragon Service for load balancer management
- Baragon Agent + Nginx as a load balancer
...and the following UIs will be available:
- Singularity UI => http://localhost:7099/singularity
- Baragon UI => http://localhost:8080/baragon/v2/ui
if using boot2docker or another vm, replace localhost with the ip of your vm
- Local Development with Docker
- Hacking on the UI
- Understanding the basepom / Maven structure
- Third-party load balancer API design requirements
Singularity is built and used by a number of different companies. Check out the list of adopters here.