6 ms·
Heroku Isn't for Idiots
- norswap 14y agoPrevious discussion here: http://news.ycombinator.com/item?id=4062364 http://news.ycombinator.com/item?id=4062364
- aaronbrethorst 14y agoI'd love to see an example of someone saying Heroku is for idiots. Although it's a bit pricey[1], I love it to pieces because it lets me focus on what I like to do: shipping product. That said, I'd be delighted if Heroku would introduce a high-memory dyno. I've been working on something for the past few days where their soft'ish 512MB cap has been biting me in the ass. [1] Assuming you value your time at something around $0/hour. edit: thanks for the link!
- wmf 14y agoThis rant is a reply to http://justcramer.com/2012/06/02/the-cloud-is-not-for-you/ http://justcramer.com/2012/06/02/the-cloud-is-not-for-you/ which is indeed trashing Heroku.
- pbiggar 14y agoI love this post, and hope it keeps coming up. Some day, developers will learn that even though they could do it as well as Heroku, given enough time and effort, it's just a lot cheaper not to! This comes up all the time with my company. We make hosted Continous Integration (https://circleci.com https://circleci.com), and often hear "can't I just set up Jenkins?". And the answer is the same, "you could, but ...". Run it on EC2, where your tests fail because the IO is bad? What about when three people push at once and you want to get results ASAP? Are you going to manually compile Postgres 9.1? And again when you add a second box to you cluster? I could go on.
- aaronblohowiak 14y ago... except heroku doesn't do multi-region, which is where things start getting tricky. They make the easy immediate, but haven't really tackled the hard (yet.)
- MattRogish 14y agoWe use heroku, and every now and again that terrifies us. I'm not sure which will come first: Heroku going multi-region, or us having an outage due to another AWS problem and switching providers. :fingers crossed:
- batista 14y ago>or us having an outage due to another AWS problem and switching providers. Why, because the other providers (or a roll-your-own solution) will not have outages? Or because the customers cannot tolerate even the more or less half a day of outage per year AWS has? Even critical businesses like banking have work stoppages far more often than that for tons of reasons, in both the physical world and the digital/networked one.
- heretohelp 14y agoThe 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]
- liveoneggs 14y ago<quote> Heroku is Just Unix At its core, Heroku is just a simple unix platform; specifically, Ubuntu 10.04 LTS. </quote> I just threw up a little
- rbanffy 14y agoWhy?
- orthecreedence 14y agoI'm going to guess it's because Ubuntu was called "unix" (which actually raised my eyebrow as well). Although similar, unix != linux, and Ubuntu especially != unix, as opposed to a distro like Slackware, which is more or less unix with a linux kernel slapped in. I got what the author meant though, and it's not that big a deal.
- rbanffy 14y agoThere is "Unix", an operating system originated at AT&T and "unix", a generic name that usually refers to a family of operating systems that are based more or less on the same ideas. Linux is a lot closer to AT&T's ideas of Unix than other certified Unixes like OSX and AIX. Linux is not Unix, but it certainly is a unix. When I really want to annoy my BSD friends, I call it a "Linux-like" operating system. It never fails.
- fdr 14y agoI saw someone else have a bad reaction to this statement, but I might be to blame for this. See: http://news.ycombinator.com/item?id=4062983 http://news.ycombinator.com/item?id=4062983 But let me try to frame it more carefully: at the time (and maybe still) a lot of providers expect you to use special APIs endemic to their platform, and you can't get the real-deal implementation or a drop-in replacement if you want to model the production environment more closely or move off the platform. Even if you get the real-deal implementation, running it may be infeasibly hairy. Heroku very assiduously tries to avoid this, and there is a downside: we compromise with the problems in existing software that people like to use as-is, and to fix those problems we have to somehow get that software fixed, too.
- jeremyjh 14y ago"Each instance (Heroku calls them dynos), has: 512MB of RAM, 1GB of swap. Total = 1.5GB RAM. 4 CPU cores (Intel Xeon X5550 @ 2.67GHz)." That is very interesting. So you get 200% of the CPU from a c1.medium but only 1/6 that memory? For 1/8 the price that Amazon charges? Maybe this is a the new math I keep hearing about.
- wmf 14y agoI would guess that Heroku runs ~29 dynos per m1.xlarge, so each dyno gets a minimum of ~1/7th of a core or ~366 MHz. Just because you can see 4 cores doesn't mean you can use them.
- exogen 14y agoOne day I noticed that Heroku gives you access to netstat, so I started trying to figure out the actual number. Running this: heroku run "netstat -l | grep lxc | wc -l" ...seems to imply that it's actually 100 ± 25 dynos per instance. (It's possible I could be entirely misunderstanding the netstat output, in which case someone please speak up.)
- jeremyjh 14y agoYes, I know that. The OP doesn't seem to know that. This is a problem, because the piece he is responding to in a large part is concerned with the meager resources provided by a single Dyno.
- benologist 14y agoI also save significant time and money using Heroku and it's awesome being able to scale up and down automatically using HireFireApp. Most of this article rings true with my experience however some of it doesn't feel that valid for me having a high volume NodeJS app, not to mention the entire "Let's talk about bad ideas" section is just lame. 1) If your app crashes it takes ages to restart dynos "automatically", there's nothing at all instant about it and if it's a bug and you have a high volume of requests it's going to hit every dyno which means you are offline. 2) Performance can be variable and it can be hard to be sure an optimization has done anything. This will be easier when New Relic supports NodeJS but right now you're stuck using less elegant solutions. It is shared hosting and it's not necessarily anybody's fault if something is slow, and I know this because the same requests frequently have orders of magnitude difference in response time for me. dyno=web.10 queue=0 wait=0ms service=3ms status=200 bytes=25 dyno=web.7 queue=0 wait=0ms service=207ms status=200 bytes=28 Between Heroku and NodeJS I run my API server usually on just 8 dynos doing 6,000 - 10,000 requests per second and having come from C# and dedicated Windows servers it is a dream - nothing to maintain and easy deployment and easy debugging on Heroku's side, and NodeJS is just amazing once you start realizing what's possible with it.
- rapind 14y agoI use Hirefire as well for several sites. For the most part I like it, however it can be awfully slow to react to traffic spikes. I highly recommend leaving a bit of a buffer (few extra dynos) during prime time traffic.
- benologist 14y agoYou are completely correct, the default settings are not good and it will aggressively scale your app down too far if you let it.
- TehNrd 14y agoCan you shed some light on how you are using HireFireApp with node.js? I thought this was only good for Rails/rack frameworks. Maybe I misunderstood and your main app is rails with some of the other functionality in node.
- npguy 14y ago"Heroku Isn't for Idiots " But going by current trends there could soon be a "Heroku for Idiots" :-)
- fusiongyro 14y agoThis is just like the garbage collection versus manual memory management debate.
- juniorer 14y agoHonest question: Why do startups continue to setup their own infrastructure on AWS with ops? Scaling? Cost?