5 ms·
The persistence scaling story for Heroku seems pretty questionable to me. Once you've maxed out what they offer for MySQL and Postgres, what exactly are you sup
by heretohelp 14y ago
The persistence scaling story for Heroku seems pretty questionable to me. Once you've maxed out what they offer for MySQL and Postgres, what exactly are you supposed to do? Start using EC2 RDS?
Heroku seems to be like a more useful Google App Engine, a good place to host a blog or experimental project if you're not into dev-ops.
If you have a knack (at all) for dev-ops, you're not saving yourself anything.
The downtime is pretty bleh too. The moment you start doing multi-provider to offset this, you'll end up doing all the dev-ops work you would've had to have done before. Except now, you have to do it all at once in a time of what is probably high stress.
If you do the dev-ops/automation yourself from the start, you can start small/simple and grow that as you go, deploying your services to arbitrary hosting providers (EC2, Linode, dedicated boxes, whatever).
This is why whenever anybody asks me my opinion of Heroku, I respond, "it's a great place to host that blog engine you wrote in Haskell/Clojure/{hipster_language_of_choice}".
- deleted 14y ago[deleted]
- j-kidd 14y ago> The persistence scaling story for Heroku seems pretty questionable to me. Agree. Those people who tell horror stories about Heroku/EC2, usually give solid numbers, i.e. this was how much I spent, this is how much I save by moving away, and our response time is now X% faster. On the other hand, we have article like this that shows pretty graph for a web app serving 16.2 requests per minute, and make bold claims that everything will scale.
- heretohelp 14y ago>16.2 requests per minute Was it written in TCL? ;)
- benologist 14y agoHere's my pretty graph for serving ~500,000 requests per minute on Heroku: https://api.playtomic.com/load.html https://api.playtomic.com/load.html Savings aren't exclusively because of Heroku, I also switched the underlying architecture during that migration from C# / ASP.NET to NodeJS which is exceptionally well suited to what I'm doing there. Previously: Dedicated servers, ~$1600 a month 8x dedicated servers at ~$200 each, each running 3 to 5 instances of the API depending on how many IP addresses they were provisioned with. Uploading was done via a simple hand-rolled script that'd just FTP everything to each server. Now: Heroku, current usage $400 - $500 a month With Heroku I don't have to worry about concurrent connections (typically 200 - 400 thousand people at once), I don't have to maintain all those servers and I don't have to fuck around with all the stupid things that can go wrong when you're operating at scale. It was a lot of work to get to this point and I made a lot of mistakes like having a heavy redis pub/sub outside of the EC2 network that cost me $350 in excess bandwidth providing inter-dyno communication, and I saturated database connections lots of times because in the old days those dedicated servers each had a local mongodb which could keep up with ordinary connection pooling, but it was totally worth it.
- zeeg 14y agoSo let's assume thats $500 in dynos, that's approximately 14 dynos. You have 30k concurrent users per dyno using Node.JS? It's not that I don't believe you, I just think you don't understand what you're saying. (Actually, it is that I don't believe you) That said, if this is if you're doing 500 requests/sec (that's very different than 500 concurrent users) per dyno, good for you. My main bottleneck was not so much CPU on the web machines (I hit memory limitations), but the database layer.
- benologist 14y agoJust over 20,000,000 people hit my API yesterday 700,749,252 times, playing the ~8,000 games my analytics platform is integrated in for a bit under 600 years in total play time. That's just yesterday. There are lots of different bottlenecks waiting for people operating at scale. Heroku and NodeJS, for my use case, eventually alleviated a whole bunch of them very cheaply.
- zeeg 14y ago>>> 20000000/24/60/60.0 ~231.46666666666667 requests a second?
- benologist 14y agoThat's people, not requests. :)
- zeeg 14y agoIs your graph showing concurrent (as in active connection) users?
- benologist 14y agoThe graph shows http requests, each individual person sends 'event.general...' requests approximately 2x per minute. In the last minute ~460,000 of those requests were made which means somewhere around 230,000 people sent data although there's room for that to be higher or lower depending on sessions starting, sessions ending, and just what period of time you want 'concurrent' to live within.
- 1qaz2wsx3edc 14y agoheretotroll: Heroku provides plenty of tunable capacity.
- heretohelp 14y agoConsidering their only support for sharding or replication is their async read-only slaves mechanism, I'm going to assume you don't know what you're talking about and think the difference between "1/10th of an overloaded EC2 machine running postgres" and "a whole slow EC2 machine running postgres" somehow constitutes "scalability".
- 1qaz2wsx3edc 14y agoCool bro. Who said I'm using postgres? And if you don't like the postgres setup, sure, roll your own. EC2 has those badass SSD instances for you. Apps' that need more capacity then what Heroku offers can surely drop the dev-ops dollars. Until then, why waste your time?
- adgar 14y ago> Heroku seems to be like a more useful Google App Engine, a good place to host a blog or experimental project if you're not into dev-ops. Considering Heroku is single-homed, I find it hilarious that you say it's less of a toy than GAE.
- heretohelp 14y agoI was giving it the benefit of the doubt since there wasn't as much platform specific lock-in as GAE. But yeah, the single-homing is pants-on-head.
- rbanffy 14y ago> there wasn't as much platform specific lock-in as GAE You can always host your App Engine application on top of an AppScale or Typhoonae install. I wish they were easier to set up, but, if your Google bill starts getting high, you can dedicate the resources required to do it. And multi-homing them is a whole different game.
- wmf 14y agoSome people may be defending the Platonic ideal of Heroku (multi-AZ, NewSQL, etc.) rather than Heroku as it stands today.
- heretohelp 14y agoPretty sure you're right, most seem like they haven't done anything with Heroku than host their 200 uniques a month blog.
- greghinch 14y agoJust because you can do the devops work doesn't mean that's the best use of your time. Particularly on a small team (or in my current situation, sole developer). Heroku makes a lot of sense in that case. And since for the most part the follow standard development practices, there's little to no lock-in when you actually have the money to hire a sysadmin
- rapind 14y agoThere are definitely reasons that you would want to be on your own managed metal infrastructure, but let's not exaggerate so much and say that it's only use is for blogs and experimental projects. Why do people have to always be so extreme to try and make a point? There are a ton of real sites that never see more than a couple hundred thousand visitors a month. E-commerce sites, mobile APIs, SAAS apps, etc. I've used Heroku for higher traffic sites than this without any issues at all. Incredibly easy actually. Saying it's only good for your hipster blog? C'mon man really? Have you even done anything commercial / critical on their platform?
- wisty 14y agoSo Heroku is good for higher margin sites. You couldn't run Facebook, because the value of each customer is marginal, and they are expensive customers. You could host a B2B app no problem, because they are paying (high margin) customers, and will probably not use too many resources.
- dasil003 14y agoNo platform could run Facebook. There is a certain scale where you have to do it yourself because no one else has done it that way before.