mado is: Marathon Autoscaling Docker Oneshot, an attempt to autoscale your marathon apps
The vision is to have a Docker image that will run once to autoscale marathon applications.
I envision multiple backends that will be used. The actual scale up and down is a stable interface that should only change if upstream changes API spec.
|Backend||Status||Environment Token Name|
It should be very easy to run this wherever
marathon.mesos resolves to the correct address (requires mesos-dns somewhere). Docker is used to provide a simple interface to run (though, it isn't too complicated if you choose to decompose it)
There are many environment variables in lieu of a config file or parameters to make this as re-usable as possible. They get passed to the Docker runtime. Backend specific variables have a common prefix and can be omitted it not used.
|BACKEND_SERVICE||Supporting Services for polling. See key above for support|
|THRESHOLD||Threshold to take action|
|SCALE_UP_PERCENT||(int) Percentage to scale the MARATHON_APP_GROUP|
|SCALE_DOWN_PERCENT||(int) Percentage to scale the MARATHON_APP_GROUP|
|SCALE_FLOOR||(int) (Optional) Lowest desired number of instances in a group|
|SCALE_CEILING||(int) (Optional) Highest desired number of instances in a group|
|MARATHON_APP_GROUP||Group of apps to scale|
|LM_HOST||LogicMonitor Host where datasource is applied|
|CW_NAMESPACE||Namespace, allowed values here|
|CW_AGGREGATION_TYPE||Aggregation Type, Supported: "Maximum" or "Average"|
Contibutors and Contributions
Standard, fork, PR, merge
Feedback welcome and desired!