openshift

Heroku Alternatives : For Deploying Rails Applications

Heroku is a cool PaaS (Platform as a Service) for deploying Ruby on Rails applications. It has even a free plan to help you get started (although, it has issue though – often the dyno becomes idle, so I won’t consider it for any real world projects/experiments) but the problem is – as you need more resources, it can easily get quite expensive and slow(if you don’t overthrow more dynos). By the way, if you’re aware of the Heroku’s Routing Secret (causing horrible response time for Rails applications) then it’s the time to look for alternative options.

What are some good alternatives to Heroku ?

Heroku is a Platform as a Service, so it lets you concentrate fully on the application development, by taking care of the server administration stuffs. So, If you want similar experience then you should try Redhat’s OpenShift or Cloud Foundry.

openshift

1. OpenShift

OpenShift is a free and open source PaaS for deploying web applications (supports all cool frameworks such as Ruby On Rails, Sinatra, Django, Node.js etc). They also provide a free plan to get you started – with 3 small gears for free! (gears are resource units, each with some limited amount of RAM (512 MB) and disk space (1GB)). For Rails , currently supported databases are MySQL, MongoDB and PostgreSQL.

Deploying Rails applications is also very easy (checkout an example rails app demo on github).
Know More on OpenShift

2. Cloud Foundry

Cloud Foundry is another PaaS platform for deploying web apps, it’s an open and scalable platform, from the VMware. It also supports a number of frameworks and tools.

checkout Cloud Foundry Project for more details and you can find a Core provider for Cloud Foundry.

There are lots of awesome Cloud Foundry providers including AppFog.

AppFog – it’s a PaaS built on Cloud Foundry, they also have a free plan with 2GB RAM, 50GB bandwidth etc to help you get started.

About AppFog

If you need more control over the things, then IaaS (Infrastructure as a Service) may be best suitable for you. AWS(Amazon Web Services) is the best option for that (Google has also offered similar services such as GCE(Google Compute Engine) but it’s very new and lacks a lot of features).

3. AWS

AWS offers complete set of services for building highly scalable web applications. It has S3 (scalable storage), EC2 (virtual servers on demand), Block Storage, Cloudfront (CDN), Cloudwatch, RDS (Relational Databases such as MySQL), DynamoDB (NoSQL store), Route 53, VPC, SES (Email Notifications), SNS (Push Notifications) and lot of other cool services to help you quickly build, deploy and scale.

checkout AWS services and features

Recently, Amazon has also announced a PaaS service, based on the top of their existing AWS services – Elastic Beanstalk, with the aim of simplifying deploying/managing applications.

4. VPS

Virtual Private Server (VPS) is a good option for small or medium sized predictable web applications. You can easily setup Capistrano for automated deployment. Once the things are setup, VPS management is not so hard as it seems, especially if you got a reliable and awesome VPS provider such as Linode or Digital Ocean (plan starts at $5/mo with 512 MB RAM, 20GB SSD and 2TB Bandwidth, not sure checkout the review of digital ocean)

If you’re not sure, where to begin then checkout this guide about deploying Rails applications to VPS

5. Cloud 66

Cloud 66 is an Application Stack Management as a Service, it’s a platform for provisioning, configuring, deploying and managing your web applications. it allow you to easily deploy (to any infrastructure such as VPS, AWS, Joyent Cloud, Rackspace and more) and scale, so you don’t have to worry about your configuring/monitoring your servers anymore. You also get a free plan to try (includes deploying to 1 server).

Cloud 66

Thank You for reading so far :) Checkout my recent fun projects  created using sinatra : this one on jumble and other one for generating funny slogans (fun weekend projects)

Learning Rails ?

Check out this interactive video course on Ruby on Rails at Treehouse.

Update #1. Fixed some typo.
Update #2. Added AppFog.
Update #3. Added Cloud 66.
Update #4. Added more details about OpenShift gear

  • Nick

    Openshift is by far my favorite. Fast, stable, cheap, easy to use, and great support from the community.

  • http://simonewebdesign.it/ Simone

    Very useful information. Gonna try OpenShift. Thanks for sharing!

  • http://www.interhive.net Chris

    We’ve been testing on Cloud66 after reading about Heroku’s non-intelligent router mesh and it’s been quite nice. They’re rolling out support for DigitalOcean tomorrow and that’ll make the pricing right inline with Heroku — if not better — for fully-fledged VPSs.

    • jim

      How do you like Cloud66 so far? Is it worth the investment or should I use a different service?

  • Yan Lhert

    My experience with AppFog has been awful. It’s very buggy(at least right now)

  • Christopher Haupt

    We recently had a client that got bit hard by Heroku routing mesh issues and general behavior for an app that has long request/response times for parts of the app. As of this writing (Aug, 2013) it is still really hard to manage apps with +5s (second!) actions. Request Queues get out of control quickly and there is little we could do tuning-wise on specific dynos.

    Going to raw AWS is ok, but hard for them as they don’t have the DevOps to manage things. The add-on layers like Beanstalk are great, but still require general AWS chops to be most effective. Cloud 66 gives you a bit more.

    Another PaaS that layers on AWS is EngineYard. We’ve guided some of our clients in that direction. While you can go it alone with the EngineYard dashboard and doing Chef, what really helps our clients is that you get DevOps-like support for a reasonable price.

    • http://www.tosbourn.com/ Toby Osbourn

      As a happy EngineYard user I can second the recommendation for this. The support is excellent and if you do have a bit of technical know-how on the team using things like chef is well documented and easy enough.

      I have found playing with AWS directly to be a bit of a pain (and I consider myself technical).

      I can’t really comment on Heroku, I have only checked out their site in passing I have never been a client of theirs.

  • Joey Aghion

    We were also searching for Heroku alternatives and recently discovered AWS OpsWorks. I wrote up an introduction at: http://artsy.github.io/blog/2013/08/27/introduction-to-aws-opsworks/

    While Elastic Beanstalk (mentioned in the article) may be the closest AWS offering to Heroku, OpsWorks actually provides quite a bit more flexibility without adding egregiously to the administrative burden.