

Auto Scale your Heroku Apps with Hero Scale - railsjedi
https://www.heroscale.com

======
blaisco
Autoscaling Heroku workers is definitely a problem that people would like
solved, but I see a few issues with trying to offer the solution as a SaaS.
One, you're targeting developers. There are several github repos that do this
kind of thing for free, and developers would know how to find and implement
those. Two, those github repo's are going to do a better job of scaling
because they can turn dynos/workers on and off instantly (e.g. as soon as a
delayed job is done); much more cost effective than waiting up to 5 minutes to
turn dynos/workers on/off. Three, you're targeting people that are trying to
save money and _don't_ want to spend money.

As an aside, perhaps I (a cheap developer) am not in your target demographic,
and you're really targeting folks with lots of Heroku apps and lots of money
to spend. In which case you should be charging bundles more than $20/month.

~~~
railsjedi
Yep, I tried all the open source autoscaling heroku tools on Github. They were
not easy to use, and had major problems (try them, you'll see!)

I think Heroku users value their time above all else. There's much cheaper
ways to host your Rails apps. This tool allows Heroku users to save money
while not having to spend days getting their autoscaling stuff working and
tested.

~~~
aaronbrethorst
Pedro's DJ fork[1] has worked quite well for me. What didn't go well with it
for you?

[1] <https://github.com/pedro/delayed_job/tree/autoscaling>

~~~
steveklabnik
It only scales jobs, it doesn't scale dynos.

------
enoptix
I think this is a great idea however it would seem that this is more of a
feature than a business. What happens when Heroku implements this feature
themselves?

P.S. Love the website design, it really pops!

~~~
railsjedi
Hah, yep. I've been waiting for this feature from Heroku for over a year.
Finally decided to just implement it ourselves. We then realized it might be
nice to make it easy for other people.

We'd welcome Heroku implementing it! We actually think there's many other
things we can add on top of Heroku that would be valuable so we're not too
worried :-)

------
uggedal
Seems like they did not scale heroscale.com itself. All I get is:

    
    
      App crashed
    
      This application is temporarily offline.
    
      If you're the administrator of this app,
      please check your heroku logs for the backtrace.

~~~
axod
I get a bad ssl cert warning.

~~~
jroes
Yep. SSL cert warning on Safari for iPhone.

~~~
railsjedi
I think that's the only browser that the cert doesn't like. Guess now I know
why godaddy sells SSL certs for 10 dollars

~~~
axod
I use godaddy certs without issue. Make sure you included the bundle certs etc
etc.

~~~
railsjedi
Ah, cool. I'll get that fixed. I used the instructions from
[http://clearcove.ca/blog/2010/11/how-to-secure-a-rails-
app-o...](http://clearcove.ca/blog/2010/11/how-to-secure-a-rails-app-on-
heroku-with-ssl-firesheep/) however it must have missed a step.

------
knodi
David Dollar that works at Heroku already wrote a (free) gem that auto scales
your heroku apps.

<https://github.com/ddollar/heroku-autoscale>

~~~
stephth
I feel those who point "free" alternatives to Hero Scale have never actually
tried to auto-scale their dynos. That gem is not a serious alternative.

David Dollar worked on it for one day and then never committed anything again
(except for three months later, one little note: "This gem is a proof of
concept and should not be used in production").

In my experience this gem crashes requests frequently (502 errors if I
remember well). I don't know what's going on in that code - I wasted some time
looking into it with no luck - but something in there is flawed.

Heroku is supposed to be simple. The idea of Heroku is you can focus on the
design of your apps. Auto scaling turned out to be a huge pain and waste of
time for me. I ran out of patience and moved my Ruby code to the Google App
Engine.

------
doorty
This is a great idea. I looked at the auto scaling repositories on GitHub: 1)
There wasn't a good solution for Rails 3 yet. 2) The GitHub repos were
typically forks of existing repos (like for CollectiveIdea's Delayed Jobs) and
therefore would not always be up to date. I wouldn't be too worried about
Heroku implementing this (though I hope they do) because there isn't a direct
incentive for them to save you money by auto scaling. I'm definitely going to
try this out.

------
StavrosK
Wait, why doesn't Heroku itself do this?

~~~
patio11
For an enterprise: autoscaling is either not a value add ("You can cut $40 a
month off our $300 hosting bill? Absence of 'yay'.") or Really Freaking Hard
And App Specific. SmugMug, as I recall, did a _lot_ of work to dynamically
spin up and shut down instances to minimize their bill (not a Heroku app,
obviously), because their usage patterns consistently predicted high load for
workers at certain times and low loads at other times.

For a ramen-munching startup: shaving $40 off our bill is very motivating.
However, while we have dreams of scaling up, if you actually _do_ it we're
going to wig out when we see a four figure hosting bill. By the way, we're
pathological customers who understand _just_ enough of this to be a danger to
ourselves, and we will blame you on the Internets when your system does
exactly what we tell it to do.

~~~
StavrosK
I see your point, but why would a startup wig out when they scale? Presumably,
revenues would scale with demand, so I would be quite grateful that my
provider allowed me to satisfy the demand quickly and reliably...

~~~
chc
Real-life example of what Patrick is talking about:
<http://news.ycombinator.com/item?id=1688904>

~~~
StavrosK
Oh, now I see. It's not so much about scaling up, then, as it is about
forgetting to scale back down after a spike.

------
kineticac
This looks pretty cool. As a startup, any savings is worth it. Problem is, my
app is too matured to try a few things that aren't proven / stable yet. I will
wait to see if Heroku official includes this as an add-on. If so, I'm totally
down.

I could implement it myself, but if it's coming and implemented by a team
who's dedicated a lot more time than I can, then it's worth it.

------
colinplamondon
We drop $500-800/month on Heroku, so I just signed up to give it a shot-
doesn't take a lot of savings to make it worthwhile.

------
endlessvoid94
App Engine is the only service that gets this 'auto scaling' right.
Unfortunately the rest of the service sucks.

------
heffay
Tried to add my Heroku account and got the typical rails 500 error:"We're
sorry, but something went wrong."

EDIT: Refreshed and it seemed to work!

------
axod
Isn't Heroku supposed to auto-scale EC2?

So we have Heroscale autoscaling Heroku which autoscales EC2??

Am I missing something?

~~~
ihunter
Yes and no. Right now, if you're running at one dyno then you're pulled from
the heroku "mesh" if you run idle. However, this is a free account so it's not
really saving you any money.

Heroku doesn't auto manage your dyno and workers based on usage. You set dynos
at 10, you're running 10 throughout the month. Likewise with workers.

Heroscale ramps your dynos and workers up/down based on necessity.

~~~
tpz
Since the site doesn't describe this in any detail: can you define
'necessity'? In other words, can you tell us anything about how and when your
service decides to scale up or down, for dynos and for workers? And what have
you done to avoid porpoising (to borrow an aviation term for lack of a better
option coming to mind at the moment.)

Also, can your service scale workers all the way down to zero and then spark
up the first worker upon the next job submission? Or can it only scale workers
as low as one?

~~~
ihunter
Good feedback, will put together a "wtf is it doing" page.

I'm familiar with the "pilot induced oscillations" from a first hand basis,
scared the crap out of me. The desired scaling quality is quick ramp ups and
then gradual, minute based ramp downs. This is to handle a sudden influx of
traffic to the site. We don't just peg your dynos anytime something comes in.
And the free accounts are set at 3 max, so don't worry about it blowing up
your bill.

Dynos are ramped up fast as a response to incoming traffic and average wait
times per request. I'm still refining this algorithm so feedback during beta
would be awesome.

The algorithms for workers are slightly different than dynos since they feed
of different info. The answer to your question is yes, it will scale down to
zero if you have nothing in the queue. You can override this by setting server
min and max thresholds for workers.

Drop us a line at contact AT heroscale DOT com and happy to talk more.

~~~
tpz
Thanks for the details. I will have a think about what other questions I might
like to ask you and will try to fire them over to your contact email in the
next day or so.

------
knodi
I'm not sure I want to give my Heroku account password to an external service.

~~~
railsjedi
We're working on a heroku proxy API that will allow people to hook into
heroscale via oath.

~~~
jeffio
Yes, I will probably wait for oath before signing up and checking it out.

------
richardburton
Threw an error when I tried to connect my Heroku account :(

~~~
ihunter
Fixed, was redis issue.

------
dclaysmith
Ouch. "App crashed" messages not the best marketing for an auto-scaling app.

------
Kudos
"App crashed"

Looks like it couldn't scale to the hacker news traffic. Is that Irony?

~~~
cmelbye
It would be if that error meant that the app couldn't handle the traffic. "App
crashed" just means that their code is doing something weird and the thin
process crashed.

