Heroku vs EngineYard: which one is more worth the money?

funkymunky picture funkymunky · Feb 4, 2010 · Viewed 21.1k times · Source

I looked this up on Google, but wanted more opinions before I committed to either service. Has anyone had experience with either (or maybe both) services? Are there any advantages or disadvantages that stood out about either one? Particular areas of interest are:

  1. Security
  2. Stability
  3. Scalability.
  4. Price

Answer

Michael Mullany picture Michael Mullany · Feb 11, 2010

Funky,

I used to work for Engine Yard, so let me give you the information on our Engine Yard Cloud service (running on AWS). I'll leave you to do your own research on your other options.

  1. Security Each Engine Yard Cloud account is its own full Amazon account behind the scenes, that means you get full hardware-enforced, virtual machines dedicated to you to run your application. So attackers exploiting a zero-day buffer overflow etc. in people's C Gems, Ruby, passenger, linux etc. only get access to a single account. There is no shared infrastructure in the data-path. We watch security vulnerability reports for all elements of our stack and you get new patches automatically when you redeploy. You get full SSH access to your instances, and get a normal server environment for when you need to install packages such as Solr or Sphinx or image manipulation etc.

In my mind, hardware-level virtual machines is one of the foundations of Amazon success and why nothing like this came along before virtual machines matured (but I'm biased because I used to be a VMware guy, and saw this happening in real time)

  1. Stability We have a lot of experience with what can be trusted and what can't in Ruby/Rails components. Currently on our "do not deploy" list are ferret, juggernaut and awstats. Otherwise we inherit AWS uptime because we do not have shared infrastructure in the data path. AWS uptime has been pretty good, but I wouldn't try to run a nuclear power plant with it just yet. Deploy reliability has been mixed recently -- Amazon seems to be running a little closer to the wind on capacity utilization, so on some occasions a capacity addition request will fail and have to be re-issued.

  2. Scalability. We have some big applications running on Engine Yard cloud. Playmesh had the number 1 iphone app last November and cranked up capacity to handle it well. We've benchmarked even a small instance (4 mongrels) able to handle 85M/Reqs per month at constant load (very simple app). We do recommend that people run on larger instances if they want a lot of disk i/o, Amazon provides better i/o throughput to larger instance sizes. In any case, adding or removing capacity is literally a click of a button.

  3. Price Running a small instance (4 mongrels) full-time for a month will cost you $79 on EY Cloud or 0.11 per hour (vs. 8.5 cents on naked Amazon). This includes database management, but you'll pay a small amount for storage and bandwidth - which Engine Yard Cloud passes along at AWS cost. We're pretty confident that once you reach any reasonable amount of traffic, we're a killer deal.

Let me add a few other criteria that you might want to consider...

  1. Support -> you get community/forum support for free, but we also have a ticketed support option, the premium support option gets your app watched 24x7 and we'll notify you when your app goes down and troubleshoot it for you if it's the supported stack that's a problem.

  2. Community -> Some people care about this, some people don't but Engine Yard sponsors 2 full time Rails contributors, a three person JRuby team and the next gen Ruby VM, Rubinius. We're committed to helping make Rails and Ruby the best platform for developing web apps there is.

  3. Automation -> you just have to watch the demo to see it in action, but it's neat. Also we're in beta with command line git deploys, check out the knowledgebase to see it in action.