-
-
Notifications
You must be signed in to change notification settings - Fork 432
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
Plugin Idea: Dynamic temporary virtual machine workers via DigitalOcean #675
Comments
Awesome idea! I would love to tackle this, since I use DO for my personal projects. |
@knownasilya If you want any help, let me know and I'd like to contribute. |
@garymcleanhall I'm limited on time right now, so feel free to start 👍. Submit your PR's here: https://github.com/Strider-CD/strider-do-runner If you plan on contributing, we can add you as a contributor there. |
Just something to think about (more general than just DO) is how to manage usage-based scaling (or auto-scaling) of worker boxes. This is basically a must-have for larger shops, where job load can spike during the day and then is fairly idle overnight. Any thoughts? |
Niall I was thinking that parallel jobs trigger parallel VM's like how the
|
Sure, I understand. This is great. But booting VMs has a much greater overhead compared with spinning Docker containers. It might take 5-15 minutes for them to be ready for jobs. Maybe on DO boxes come up a lot faster, but certainly AWS can easily take 15 minutes. And even if booting is super fast on DO, it's quite likely you'll have an expensive Puppet (or whatever) setup procedure. Therefore, you want to have a way to keep them around while load is high. Otherwise you keep taking the startup overhead. |
Actually, I see, since each run costs money, a shop may not find it worth
|
Yes, that's another issue - on some providers (EC2 being the big one) you pay a minimum of one hour per box. |
Right, forgot about that. DO is also 1 hour per box. Perhaps that should be
|
Atlassian Bamboo, which uses AWS, takes 15 mins to spin up a box and its JVM to run. It allows you to configure it to keep a box around for a while, so something similar to that makes sense. Provisioning is the question mark for me. You can use the DO API to spin a new box up, but you need puppet/chef to then install something meaningful on it. For chef, it might involve making the Strider server a knife workstation so that it can create a droplet, bootstrap it and the provision it (using chef-zero or a specified chef server)? |
@garymcleanhall Right. Some provisioning step needed. I think this should be a generic shell script, with some sane minimal defaults. Once Node is on the target machine, Strider can send its own code over SSH to be executed by the worker. |
I want to target DO first because:
Then I would target OpenStack... Not AWS, someone else can do that, I stay I think a user needs to be told to create an image, or the plugin guides On Friday, December 19, 2014, niallo notifications@github.com wrote:
|
A new Runner plugin that is most similar to the docker runner except that instead of creating a docker container, it uses the digitalocean API to spin up a server, wait for IP and shell access, and then unblock and allow things to happen via SSH as normal.
https://github.com/keyvanfatehi/saasbox-app/blob/master/src/workers/instance_provisioner/index.js#L35-L70
The text was updated successfully, but these errors were encountered: