All Projects → themotion → Ladder

themotion / Ladder

Licence: other
A general purpose extensible autoscaler for the cloud

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Ladder

Aws Workflows On Github
Workflows for automation of AWS services setup from Github CI/CD
Stars: ✭ 95 (-33.57%)
Mutual labels:  automation, aws, cloud, ecs
Touchdown
Cloud service orchestration framework for python
Stars: ✭ 10 (-93.01%)
Mutual labels:  automation, aws, cloud
Ecs Deploy
Powerful CLI tool to simplify Amazon ECS deployments, rollbacks & scaling
Stars: ✭ 541 (+278.32%)
Mutual labels:  aws, ecs, containers
Docker Swarm
🐳🐳🐳 This repository is part of a blog series on Docker Swarm example using VirtualBox, OVH Openstack, Azure and Amazon Web Services AWS
Stars: ✭ 43 (-69.93%)
Mutual labels:  automation, aws, cloud
Ecs Formation
Tool to build Docker cluster composition for Amazon EC2 Container Service(ECS)
Stars: ✭ 114 (-20.28%)
Mutual labels:  aws, ecs, autoscaling
Howtheyaws
A curated collection of publicly available resources on how technology and tech-savvy organizations around the world use Amazon Web Services (AWS)
Stars: ✭ 389 (+172.03%)
Mutual labels:  automation, aws, cloud
Roboconf Platform
The core modules and the platform
Stars: ✭ 30 (-79.02%)
Mutual labels:  automation, cloud, containers
Terraform Ecs Fargate
A Terraform template used for provisioning web application stacks on AWS ECS Fargate
Stars: ✭ 293 (+104.9%)
Mutual labels:  aws, ecs, containers
Manageiq
ManageIQ Open-Source Management Platform
Stars: ✭ 1,089 (+661.54%)
Mutual labels:  aws, cloud, containers
Pulumi
Pulumi - Developer-First Infrastructure as Code. Your Cloud, Your Language, Your Way 🚀
Stars: ✭ 10,887 (+7513.29%)
Mutual labels:  aws, cloud, containers
Terraform Ecs Autoscale Alb
ECS cluster with instance and service autoscaling configured and running behind an ALB with path based routing set up
Stars: ✭ 60 (-58.04%)
Mutual labels:  aws, ecs, autoscaling
Containers Roadmap
This is the public roadmap for AWS container services (ECS, ECR, Fargate, and EKS).
Stars: ✭ 4,132 (+2789.51%)
Mutual labels:  aws, ecs, containers
Adapt
ReactJS for your infrastructure. Create and deploy full-stack apps to any infrastructure using the power of React.
Stars: ✭ 317 (+121.68%)
Mutual labels:  aws, cloud, containers
Escalator
Escalator is a batch or job optimized horizontal autoscaler for Kubernetes
Stars: ✭ 539 (+276.92%)
Mutual labels:  aws, scale, autoscaling
My Links
Knowledge seeks no man
Stars: ✭ 311 (+117.48%)
Mutual labels:  aws, cloud, containers
Aws Scalable Big Blue Button Example
Demonstration of how to deploy a scalable video conference solution based on Big Blue Button
Stars: ✭ 29 (-79.72%)
Mutual labels:  aws, ecs, autoscaling
Sherpa
Sherpa is a highly available, fast, and flexible horizontal job scaling for HashiCorp Nomad. It is capable of running in a number of different modes to suit different requirements, and can scale based on Nomad resource metrics or external sources.
Stars: ✭ 165 (+15.38%)
Mutual labels:  automation, autoscaling, containers
Kubestriker
A Blazing fast Security Auditing tool for Kubernetes
Stars: ✭ 213 (+48.95%)
Mutual labels:  automation, aws, containers
Infra Personal
Terraform for setting up my personal infrastructure
Stars: ✭ 45 (-68.53%)
Mutual labels:  automation, aws, cloud
Awesome Aws
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.
Stars: ✭ 9,895 (+6819.58%)
Mutual labels:  aws, cloud, ecs

Ladder Build Status Go Report Card codecov


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

Features

  • 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...)

Architecture

  • Inputter: Gets data and returns an scaling quantity result
    • Gatherer: Gets the data from any resource
    • Arranger: Applies logic to convert the input to 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.

Status

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.

Documentation

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

Prometheus metrics

Contributing

You can ask or expose any kind of information/question regarding Ladder on the mailing list

Changelog

See changelog

License

Authors

See authors & contributors

Maintainers

See maintainers to know who is/are the person/people you need to contact.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].