Written by Jared Haworth on
Heroku, a Y Combinator funded start-up, has been making headlines lately! Mentions on the official Ruby on Rails blog, the Ruby on Rails Podcast, and even an article on TechCrunch outlining some of the upcoming features. Personally, I’ve been using it since late last year, and I’ve found it to be immensely useful in a couple of situations.
Scenario 1: While interviewing for my current job, I wanted to show my interviewers the application Keith and I had developed for the Rails Rumble. Thanks to some trademark issues and a certain corporation whose devices have become synonymous for copiers, the document collaboration application didn’t have an online presence. Rather than attempt to put it back online with my current shared hosting (already stretched to the limit by this blog and the YGO application) or secure new shared hosting, instead I prepared to zip up the entire application and upload it to my Heroku account.
- The first thing I had to do was unpack the gems used by the application, such as
attachment_fuinto my /vendor directory, and make sure I added them to my
- Secondly, I removed all my existing log files… no need to push an additional 300mb of data online!
After zipping the app and uploading it, I just needed to click the ‘migrate’ button inside the Heroku editor window, and I was in business. By virtue of putting the app online in a private state, I could ensure that only my interviewers were able to see it, and I was able to take it back offline once the interview process had concluded.
Scenario 2: In doing some freelance work on a contract tracking app, I wanted to show my client a live preview of the progress I was making, and to get some early feedback on some of the workflow. Again, rather than expose the whole application live through my existing hosting, I again created a zipped version of the application and added it to Heroku.
This time, I was able to show him the current ‘snapshot’ of the application, and instantly incorporate minor tweaks without even needing to reload a mongrel instance or re-upload any files. Small details, like the text on a form label or the size of an element could easily be adjusted on the fly, in accordance with the client’s wishes; then, those changes were easily mirrored back down to my local copy to continue development.
All in all, I’m very impressed with Heroku. While I don’t make extensive use of the in-browser editor, the few times I’ve had to make tweaks to a running instance, it’s been very easy to do so right in the browser. Plus, having a browser based interface to my favorite ruby tool,
script/console, has been incredibly useful.
Lastly, I think Heroku illustrates an excellent usage of Amazon Web Services as part of a business model, particularly in being able to make using EC2 easily available to the end user, along with an easy way to pass along the associated costs to that user. I’ll be very excited to see where the future takes them.