Heroku 2X Dynos in Public Beta
blog.heroku.com
blog.heroku.com
I genuinely do not understand this. I'm still paying for it. I run a node.js app for my school that gets decent traffic, but not enough to warrant adding another dyno (and moreover I only wrote it to work on one process). Yet I still deal with the idling problem.
I would gladly pay Heroku the money for a 2X dyno if it meant I would stop getting idled (which is extremely annoying and disruptive), or even just some express per-month fee to disable idling.
I feel like I'm being punished because my app is performant and doesn't need two or more dynos...
Am I crazy here, or does this really bug anyone else?
Its great that you are aware of the issue, but it would be better if you could shed some light on why or why not this is not addressed.
No
But it would be technologically too demanding?
No
But we don't think its a problem to wait 6+ seconds?
Actually, if you're not paying us for service, we think this is completely acceptable. The only deficiency is where users would like to pay us but still want to have only a single dyno.
But we will address this later as its not a priority?
Sort of, see below.
Its great that you are aware of the issue, but it would be better if you could shed some light on why or why not this is not addressed.
Focus comes at a premium. There are only so many product initiatives that can get complete focus at one time without sacrificing on quality. We have a lot of things in the works, but hopefully this one will get the attention it deserves soon.
I guess I feel differently when you say "if you're not paying us for the service", since I pay ~$50/mo in addons through Heroku, of which which I'm sure you must take a cut. So I am in fact paying you, just not in the form of dynos.
Perhaps this could be a loophole to the current system?
The fact that this has clearly been brought to their attention before and they have offered no real answers (I'm literally suggesting a checkbox for $10 a month or something that simply keeps my app un-idled) frankly gets me thinking about ulterior motives. I love Heroku, and find their services very valuable, but some of their decisions make very little sense to me, like this, or more recently how they've handled the RapGenius accusations.
Certainly cheaper than paying for 2 dynos.
Here's the writeup: https://www.appneta.com/2013/02/21/the-taming-of-the-queue-m...
(Spoilers: turns out it gets a lot better very quickly.)
The solution is to have dynos large enough that you can run 8+ workers and let the operating system do all the complex scheduling.
So Heroku could spawn workers with a $FD environment variable instead of $PORT and the "complex scheduling" done by the OS _is_ the second routing layer.
But really, they could still do a second level routing even outside a single OS as the scale of the distribution is much smaller, so having the routing mesh be aware of the worker availability seems feasible again.
ab -n 100 -c 100 -p big_file.mov http://site.com/
They should treat this like a zero-day."Get up and running in minutes, and deploy instantly with git. Focus 100% on your code, and never think about servers, instances, or VMs again."
This is not the case anymore.
However, the demand from customers — especially apps on the JVM — has been overwhelming. There's no way around it: once you start doing heavy background processing (e.g. geospacial or image processing) or web concurrency with a memory-intensive language like Ruby, then you care about memory. It would be very head-in-the-sand for us to not serve this need.
I'd love to imagine that there's some design that allows us to abstract away memory, but despite a lot of attempts, we haven't seen one. Further, memory is generally the most expensive part of server-side computing resources these days, so decoupling memory use from price isn't very feasible.
"2X dynos contain twice the capacity. Memory and CPU shares. It's a new option to experiment with vertical scaling: you may get better performance from one 2X dyno than two 1X's. In that case you'll get more value. As explained in the post whether or not that's the case depends on the app. If you find that scaling 1X dynos works better, you are free to keep these instead."
The guys I talked to cited both the future (now present) "dyno is not a unit" problem, as well as reporting user dissatisfaction with non-flat-rate billing.
Heroku has good reason for this. The number of test apps that people create to try the system and then never shut down is probably quite high. They don't want to be running 10,000x512MB worth of apps that aren't serving any traffic. However, that also means that if you have a low-traffic (but real app) running on their system, the dyno is likely to get shut down during the times where you have no traffic.
A 1/2 size dyno would allow people to have a cheaper dyno that wouldn't be shut down.
For me Heroku is only usable as free "push-test-show-delete" demo server/testbed. It's either free or 35 bucks per month, and for $35/mo one can get quite powerful VPS.