Auto scale nodes in a swarm

I plan to deploy my swarm on a fixed number of bare metal servers that should handle the expected average load for my website. I would like to be able to use Cloud servers to automatically scale my swarm during peak times of the day. Cloud servers are expensive and charge by the hour. So, I only want to pay for these servers for a few hours a day or if my website experiences sustained traffic.

So, I would like to have auto scaling nodes in a swarm to be a supported feature (perhaps using docker-machine in production). I would add the bare metal servers servers to my swarm manually, as it is done today, but configure the swarm master to spin up/down nodes automatically based on the load currently on the cluster nodes and the input from the Docker scheduler for when it needs more CPU, Memory, or Disk.

I would like the swarm master to monitor the CPU, Memory, Disk for each container running in the swarm and provide this historic information back to the scheduler so it could provide recommendations back to the admin to adjust the CPU, Memory, and Disk quotas allocated to the service replicas. The admin would be responsible for setting the CPU, Memory, Disk quotas so the scheduler can determine when to auto-scale up/down the Cloud nodes (subject to maximum and minimum settings by the admin for nodes in the Cloud).

Hi ktwalrus,

Really good idea :). Is this feature under development?

Please let me know if you need any help.

Regards.

Gururaj S