Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Auto-scaling capabilities #76

Open
fkorotkov opened this issue Apr 11, 2023 · 0 comments
Open

Auto-scaling capabilities #76

fkorotkov opened this issue Apr 11, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@fkorotkov
Copy link
Contributor

With platforms like Scaleway that has an API and provide not only macOS infrastructure but a more generic one. We can add builtin functionality that will scale Orchard workers up and down based on the demand.

There are couple things to consider:

  • Orchard Auto-Scaler can configure workers automatically via SSH. Our Ansible roles are not that hard to replicate in scripts.
  • Auto-scaler should be aware of the 24 hours minimum limit of that we can rent hosts for.

I think the initial algorithm version should be super simple. There should be just couple configurations:

  • maximumWorkers/minimumWorkers - range to scale workers within.
  • upscaleSpeed - percentage to which upscale in one iteration. For example, if there are 10 unschedulable VMs in the queue and speed in 50% then the auto-scaler will create 3 nodes to fit 5 VMs.
  • upscaleInterval - duration to wait before the next upscale attempt.
  • Similar downscaleSpeed / downscaleInterval
  • Something else?

In case of auto-scaling we should also consider changing scheduling algorithm for maximum utilization -- prefer to schedule as many VMs on the same host as possible before going to the next one.

@edigaryev edigaryev added the enhancement New feature or request label Jun 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants