When I asked several ruby developers what they thought I should use for hosting rails apps, Everyone agreed that I should try Heroku. My first thought was “hero”…. what? So I jumped on my laptop and started doing some research. Heroku is cloud computing platform for Ruby.
Heroku is to Ruby what Azure is to .NET
Heroku is a ruby cloud platform that has a lot of similarities to Windows Azure.*
To start with, the concept of Windows Azure is to have it act as a ginormous server that is infinitely scalable and the only thing you worry about is adding processors. You don’t need to worry about multiple servers, sharding, load balancing or all that other stuff since it is all handled for you. Similar to how Windows on the desktop helps you do stuff without worrying about the underlying hardware.
Heroku is fairly similar in how they want you to see hosting, managing, and running your websites “in the cloud”. Heroku is a cloud platform for running ruby based apps. Like a lot of other cloud services, you can pay for compute time, bandwidth, storage and many other services. The team at Heroku has taken a lot of time to make sure you have everything you need to run your application as easily as possible.
Heroku is built on top of Amazon EC2 services, and provides a well managed and easy to understand user interface. They have solved the management problem that comes with running on the EC2 stack.
Heroku Takes Care of Your Ruby Needs
The base Heroku hosting plan comes with a free 5 MB database. If you desire, you can purchase CouchDB, MongoDB, or Amazon RDS for your data storage needs, on top of the free 5 MB database, which you can expand. They also offer indexing and mail services as well as others. They are really trying hard to setup an environment that you might setup on a dedicated box.
Heroku runs on a “Free until you are successful” model. This is actually a great model since a lot of rubyists and rails developers like to create OSS software. This gives small projects a little time to get started before they have to start paying. If those free projects even get that big.
Managing Your Stuff
The primary way to manage your applications is via the command line using the Heroku gem. This is a very feature rich gem designed to make management easy. It is also very well documented so no guessing as to what you need to do where.
Current Rails 3 Support
YES! (but you have to change the hosting stack) The documentation is very good and easy to understand so doing this isn’t too much trouble.
From what I have seen of Heroku so far I think it is a good fit for the ruby world and is a very good option for doing your hosting. I think in the future I will run my Rails apps on Heroku when it fits the need. I like the idea of the cloud and I feel that it is going to become even more ingrained into more of the technology we use so as a developer we need to use it too.
*Azure and Heroku have some similarities, but are much more than what I talk about in this post. Also Azure isn’t strictly .NET you can run Rails, PHP, Perl and any thing else that runs normally on windows.
**Also if anyone knows the origins of the name I would appreciate a telling of it or a link to it. I also study Japanese and the site is littered with Japanese things. The name even can be Japanese, but I can’t find any reference to the world in Japanese. Am highly curios about the origins of the name. If you want to read my blog about the Japanese Language and Culture please visit Japan Gaku.com