Migrating from Heroku to Ninefold

July 19, 2014

MoodApp.mobi is a product that helps companies track the pulse of their staff (or customers). Throughout 2013 as I developed MoodApp.mobi I used Heroku. As the product has recently seen a surge in traffic and usage I decided to reevaluate hosting options with two goals in mind:

  1. Performance
  2. Cost

After looking around I found Ninefold. They explain their performance and also have a free tier (just like Heroku):

How does the free tier work?

  1. Sign-up to Ninefold
  2. Deploy a Rails app
  3. Enter your billing details within 30 days
  4. They waive the first $50 of your monthly invoice – forever

So, MoodApp.mobi is getting more users, more concurrent traffic, and starting to cost more on Heroku. Hence the switch to Ninefold to see how it compares (find my performance analysis below).

Switch from Heroku to Ninefold

Once you have set up an account and deployed the latest revision of your app a migration is not too hard. Here are the steps:

  1. Put the Heroku app in maintenance mode
  2. Take a database dump from Heroku
  3. Import the database dump into Ninefold Postgres
  4. Change the CNAME to point to the Ninefold host

See the Ninefold migration guide for more information.

Ninefold Performance

The two most common actions on MoodApp.mobi according to analytics are the iPad voting page and the actual votes results page for a survey/location combo:

  1. 1s off the load time for the admin analytics page
  2. ~100ms off the iPad voting page load time
  3. ~200ms off the voting results page load time

All in all I’m happy with the performance improvement and the small monthly cost saving doesn’t hurt either – allows me to handle the additional traffic at the same monthly cost.