Thank You Heroku, or “How To Eliminate Sysadminning”

Picture_3

I need to take a couple minutes here to do something I've been meaning to for along time: Thank Heroku for being so baller.

For those of you not in the know, Heroku is an all-in-one Ruby platform built on top of Amazon web services. If you're a Ruby developer, and you are creating a web application, I highly recommend checking it out.

I've been using Heroku on two applications, including JumpPost, which officially launched today via a nice writeup on the Thrillist NYC site and newsletter. I'd like to share a couple reasons why I love the Heroku platform and would advise any agile startup to consider using it to get their product launched quickly.

Heroku is fast
The same could be said for any well configured EC2 instance, but don't underestimate the words well configured. The smart folks at Heroku have fine tuned every layer of the stack from using the fastest web servers (nginx), caches (Varnish, Memcache), and load balancing strategies.

Heroku is scalable
At the core of Heroku's architecture is a pre-compiled version of your application called a "slug" which is ready to be deployed in seconds to as many instances as you desire. Expecting a big press hit, or noticing your request queue filling up, just type a simple command and add more resources in seconds. Your users won't even know.

Heroku is easy
To deploy you literally type one command at the command line. They provide add-ons for caching, email, DNS, performance monitoring, custom domains, etc…many of them free. 

Heroku provides killer support
Not only does the staff respond to tickets and support requests within minutes, but they go overboard to support the latest and greatest Ruby features. They're very active on the newsgroup, and they even provide sample code for how to best utilize their architecture. 

Heroku is cost-effective
People may argue me on this one, because at face value the cost is actually rather expensive (think 2x the regular price of AWS). But these people aren't taking into account the cost of their own time when it comes to sysadminning, troubleshooting, not the mention the cost of downtime. Heroku never goes down, and it eliminates the need to pay a sysadmin (or the time value of sysadminning yourself).

Heroku is beautiful
Don't believe me? Check out their pricing page (yes they know their demographic are samurai loving programmers). Navigating their site to manage add-ons, monitor performance, and scale up and down resources is a pleasure.

With all of the above, there are a couple downsides that people should be aware of. Proper SSL is expensive, and should your app face custom scaling needs or challenges then you are locked into their stack. Fortunately their stack is designed for large scale use. The Heroku folks are well aware of these concerns, and they're very open about what they're doing to improve the experience for all of their customers. For startups getting their product off the ground, the time savings early on far outweigh the cost of figuring out a custom solution later should your product achieve grand scale. In case you couldn't tell, I'm a big fan.

If you have any questions about the platform, don't hesitate to email me at petkanics@gmail.com.
  • Jonathan Lin
  • Davide Di Cillo

    I absolutely agree, we are using it for http://GetAppsDone.com, and it’s definitely the best solution for the money. It makes deploying Rails apps so easy even a designer (like me) can do it 🙂

  • iPadForums

    I’d be careful with statements like this…. Heroku never goes down, and it eliminates the need to pay a sysadmin (or the time value of sysadminning yourself).AWS has gone down numerous times and when it does, you have absolutely NO control over it coming back up, or even knowing why. At least being your own sys-admin you have control over these things.

  • Doug Petkanics

    @iPadForums you’re absolutely right, and this was also brought up over at hacker news. My response from there:You’re definitely correct about the first statement. It should be revised to “Heroku has a strong history of very little downtime.”Regarding the second though, I truly believe that the cost + time savings are tremendous from using their platform vs administering your own early on in a startup product lifecycle.reply

  • Eric Johnson
  • Garry Tan
  • Bob

    Well, I was drawn into the Heroku easy of deployment lure like many others but I ran into several issues trying to deploy my existing app onto Heroku. The first problem is that I’m on Windows and getting the Git configured with Putty to talk to Heroku was a nightmare, not specifically a Heroku issue I suppose, more like Git / Putty / ssh issue but still… I wrote a post on my experience if anyone else decides to do the samehttp://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-…Now I have another problem because my app uses htree http://www.a-k-r.org/htree/ which is not a gem, instead it requires a ruby install. I didn’t get the minutes response time with my support request, in fact it took close to 24 hours before I got my first reply though the support has been more timely since. The support guy told me to move all the htree files to lib folder and hack up environment.rb and rakefile to point there. So far, I’m still running into issues getting it to work. And another thing, my rake db:migrate seems to be failing and there is no way to confirm if any of the migration actually happened since there is no direct access to the database, you have to go through support.So I like what Heroku has to offer but if you are doing anything that falls outside of their current setup, it can be a pain to get it working, I’m still trying and hopefully I can get it working soon.

  • j

    We’re launching a new project very soon (http://nycandlove.com) and have decided to go with heroku. So far I’ve been super impressed with their service, deploying new versions is a breeze and they throw in a free bronze version of RPM, which you’d otherwise have to pay for, and we’re using almost all of their free addons.The SSL situation is an issue but would apply for any cloud based service. I’m planning on using SNI for all supported browsers and redirecting to http://mysite.heroku.com for all browsers that don’t. On that page will be an explanation and links to download a modern browser.I sent them an email about trying to get on their beta program, but never got a response. I should probably try again… I’m interested to try out their memcached stuff.

  • Brian

    I love Heroku in concept but the lack of “COMET” or “long-polling” really stinks for my current project. Granted, most projects probably do not need these sorts of things.

  • Daniel Huckstep

    Heroku is awesome and I try to host everything I do on there service.They aren’t immune though. A little while ago ALL of their stuff died as part of a massive EC2 failure, but things were back running pretty quick.I’d rather let them deal with that kind of thing that have to wake up and fix stuff in the middle of the night.

  • Mike

    Bob – Why don’t you just use the console to check your db?

  • Thomas Thornton

    Heroku is a great platform. I started playing with it using toto to create a blog. I’m really impressed with simplicity of the process and look forward to using it on larger projects.

  • bolusmjak
  • Greg Lucas
  • Teambuilding

    Nice……..