Ladder is a simple and flexible general purpose autoscaler.
The idea behind Ladder is to autoscale anything configuring and combining reusable blocks of different types in a yaml file. These blocks are flexible and easy to extend, so anyone can use or develop any kind of scaling targets, policies or inputs.
Some examples that Ladder can do at this moment:
- Get number of messages in a SQS queue, apply a constant factor to this input, then use this quantity to upscale or downscale the EC2 machines of an AWS AutoscalingGroup
- Get the latency of a service from a Prometheus metric, if this latency is greater than 800ms, add one more instance to the actual number of instances of that service running on ECS, if is less than 200ms remove one instance to the running ones instead.
We want to add more blocks to the ones that Ladder provides by default (ECS & EC2 ASG), for example:
- Inputs:
- Get metrics from Datadog
- Get number of messages from Rabbitmq queue
- Filters:
- Apply statistic prediction based on a metric, previous autoscaling result, etc
- Scalers:
- Kubernetes replicas
- Instance VMs on GCE
- Azure virtual machines
- Very flexible and configurable
- Simple, light and fast
- Reliable
- Easy to configure and extend
- Metrics ready (Prometheus)
- Easy to deploy and set up running
- Tons of third party blocks ready to use (AWS, Prometheus...)
- Inputter: Gets data and returns an scaling quantity result
- Solver: Takes one of the multiple results the inputters return.
- Filter: Applies logic and changes(or not) the result of the Solver
- Scaler: Scales on a target the desired quantity received from the last filter applied, or from the solver if no filters where applied.
Ladder has been autoscaling TheMotion platform in production for more than 6 months. Is stable and production ready although it needs more blocks like scalers or gatherers.
Check out the online documentation at https://themotion.github.io/ladder or offline:
$ make serve_docs
Go to http://127.0.0.1:1313 on the browser
See changelog
- For Ladder project license see license
- Ladder logo is propery of Maite (maitea) Antolín and licensed under Attribution 4.0 International (CC BY 4.0)
See authors & contributors
See maintainers to know who is/are the person/people you need to contact.