Rails Autoscale is all about scaling your Heroku apps automatically. We don't want you to have to think about how many dynos your app needs.
But sometimes you really do know best, and many Rails Autoscale customers have been wanting a bit more control—particularly around scheduling their dyno scaling.
Here’s a bit of what we’ve been hearing:
I’m okay autoscaling down to a single dyno at night, but I want at least two dynos at all times during the day.
I have a weekly email blast that always sends a huge surge of traffic on Wednesday mornings. I’d love to scale up ahead of time for that surge instead of reacting to it.
Today, Rails Autoscale can handle these scenarios and more with the launch of scheduled autoscaling. Scheduled autoscaling lets you define a time of day (or time of week) with an autoscale range that overrides your normal autoscale range.
Here’s an example schedule for the first scenario above.
The normal range is 2–9 dynos. Then during overnight hours in the US, we bring the bottom end of the range down to a single dyno. This customer gets dyno redundancy when it matters, and saves a bit more money when performance is less critical.
Now let's take that weekly email example. That schedule looks like this:
The weekly email goes out on Wednesdays at 12pm UTC. A half hour before that, we raise the minimum dynos to 8 dynos. If fewer than 8 dynos are running at that time, Rails Autoscale immediately upscales to 8 dynos. The app will be primed and ready for the traffic surge.
An hour later, we’re back to the “normal” range of 3-12 dynos. If the app has excess capacity, the dynos will gradually scale down to 3 dynos. If the app still needs those dynos, Rails Autoscale keeps them running.
Your scheduled autoscaling can be as simple or as complex as you need. There's no limit to the number of autoscaling windows you define.
Scheduled autoscaling is now available on all dynos for all Rails Autoscale customers. For more info, check out the docs.