Ruby clouds: Engine Yard vs. Heroku
Engine Yard provides the most extensive control over the application environment, while Heroku makes life easier for developers
In the world of Ruby development, there are two primary cloud-based, platform-as-a-service offerings: Engine Yard and Heroku. Both provide an easy-to-scale, managed hosting environment, both are built on Amazon EC2, and both have a long and intimate history with the Ruby community. Nevertheless, they offer contrasting approaches and features that will appeal to different audiences.
Heroku's streamlined approach to application deployment and management, for instance, dramatically eases the administrative burden, eliminating time-intensive tasks requiring system administration skills. Yet, with Heroku, you don't have a lot of control over the environment. On the other side of the coin, Engine Yard exposes far more bells and whistles related to application management and tuning. Thus, Engine Yard provides a powerful degree of control, but at the expense of rapid configuration and deployment.
[ Read the individual reviews: Engine Yard Cloud and Heroku cloud application platform | Also on InfoWorld: 4 Java clouds face off | See if you can pass InfoWorld's programming IQ test, round 1 and programming IQ test, round 2. | Get software development news and insights from InfoWorld's Developer World newsletter. ]
Depending on one's viewpoint, each platform has advantages and disadvantages -- strengths and weaknesses that make sense in light of each company's target market. That is, Heroku began marketing toward the Ruby hobbyist, while Engine Yard took its message in an opposite direction: to the business community via large companies.
These different targets produced different platforms and price points. For example, Heroku is without a doubt the less expensive option of the two; nevertheless, you're apt to receive far more computing resources for your money with Engine Yard. With Heroku, you receive a virtual slice of computing resources; the sandbox in which your application must reside in a mere subset of what Amazon gives you. With Engine Yard, you get an entire allotment of Amazon computing resources. Engine Yard provides a base platform, and the rest is up to you. Accordingly, Engine Yard stokes the inner sys admin in all of us, while Heroku caters to development skills.
Note that, although both providers reside on Amazon's cloud infrastructure, you only receive one bill. Amazon's charges are incorporated into each provider's costs and passed on to you. In the case of Heroku, the middleman even absorbs the cost for customers who are content to make use of limited resources for free. When you start to use more Heroku resources, Heroku begins to make up for any small losses incurred from its freemium model. The same can be said for Engine Yard. Although Engine Yard gives away 500 hours for a free trial, it makes up any losses eventually when an account begins to pay for resources.
Interestingly, Engine Yard's and Heroku's different market directions seem to have influenced each platform in other ways. For instance, Heroku's documentation is light compared to that of Engine Yard. Whereas Heroku leans on command-line utilities, Engine Yard provides an extensive dashboard. Heroku draws on a much stronger collection of community and third-party extensions than Engine Yard, as found in Heroku's extensive suite of add-ons and rich language support in addition to Ruby.