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/beethoven
to yourDockerfile
add your template, config options and deploy!