Beethoven is an application written in Go that automatically configures Nginx for applications deployed on Marathon/Mesos. Beethoven runs in Docker and can be managed by Marathon to provide HTTP load balancing.
Feature Highlights
- Uses NGINX for HTTP based load balancing
- Handlebars for powerful template parsing
- Zero downtime load balancing when changes occur
- Allows stream filtering so NGINX re-configuration is only triggered by RegEx patterns
- Listens to the realtime SSE from Marathon to quickly change upstreams based on application/tasks state changes
- RESTful endpoints for current status
- Flexible configuration options (local config, spring-cloud configuration remote configuration fetching and ENV variables)
- Easy to get started add a
FROM containx/beethovento yourDockerfileadd your template, config options and deploy!
Recently I had a project where I was dealing with large file systems that had to be spanned and preserved against 100’s of Docker services for computation. I decided to use Amazons EFS which was recently announced at re:Invent 2015.