A little while back I wrote a post that didn’t have very nice things to say about Heroku. I was pretty miffed at the fact that Heroku took such a big hit when there was an AWS outage in the summer of 2012.
Heroku is supposed to be an ops platform as a service. Things like availability are supposed to be handled for you. Developers are only supposed to worry about what tools they need on the Heroku platform, and how many “dynos” they need to stand up to traffic.
I don’t typically get upset at outages — they happen. I run an adserver with a partner for a lot of people, and when there’s an outage, I get a lot of “WTFs”. I’m usually very sympathetic to those dealing with the same thing.
When a fundamental selling point of your business turns out to be, well, untrue, it bothers me. For that reason, our team migrated off of Heroku and onto AWS, and set up our own deployment infrastructure, load balancers, etc. If AWS has an outage and we go down, it’s our fault for lack of availability.
The team at RapGenius just posted a, may I say, outrageous exposé detailing how Heroku has backed away from the “intelligent routing” feature it used to trumpet, and moved toward “random routing.” The effect of this move means a fantastic increase in cost of running a highly-trafficked webapp on Heroku.
I understand the team at Heroku had reasons for the original switch. Let’s even say they were very, very good reasons.
The problem is that you have no idea what is really going on behind the Purple Curtain of Heroku, or the rest of the world’s PaaS companies. You don’t know how efficient Heroku is, and you have no idea why you are paying what you are paying.
My advice to the RapGenius team is to move to AWS. If you’re dropping 20k per month on them, you can surely afford a 120-150k ops engineer to get you off. You’ll save much more than the differential between Heroku and the Ops person, and you’ll have more control over the efficiencies of your infrastructure.
That’s all from me. And remember, “be your own bitch.”