For the next few months, I’ll be working with the team at LocalRuckus, building a new Node.js API and application. As a small shop with no dedicated Sys Admin or Dev Ops, its essential that we find Node.js hosting that is flexible, fast, and cost-effective. I’ve been considering three major players in the Node.js hosting scene, Heroku, Nodejitsu, and Appfog. There are some good comparisons out there (I especially like Daniel Saewitz’s article), but I wanted to share my 2 cents.
Value for Development
Heroku provides a great feature for development/sandbox apps – your first dyno is FREE. Combine this with the starter Postgres package, and you can have a development version of you app up and running for $0/month.
Nodejitsu does not offer a free tier, so you are on the hook for paying for pet projects, etc. That said, their pricing starts at $9/mo for a micro package, and scales up pretty gently from there.
Appfog provides a pretty great package for trying out an app. You can provision your database, caching server, queue server, and application servers in a few clicks, all managed from one central dashboard.
Value for Production
Heroku pricing scales linearly with your traffic. Using a simple slider, you can add new dynos to your application. Each new dyno runs $35/mo, however, there is no commitment – you can scale up for brief spikes, and scale down if traffic subsides.
Nodejitsu and Appfog, on the other hand have fixed monthly prices.
Nodejitsu prices based on drones, which seem to offer 256MB RAM and processing power roughly equivalent to half a heroku dyno.
Appfog prices based on RAM, which creates a bit of a problem. While 2GB of memory can be had for $20/mo, moving up to 4GB is a rather steep $100/mo.
Heroku – Deploy to a git repository
Appfog – Use the downloadable af tool to push updates
NodeJitsu – Use the jitsu tool or git integration.
Heroku leverages expertise in Postgres, providing plans that scale with your application, including free database levels for getting started. Production databases support 1TB of data, starting at $50/month. If you prefer another database platform, Add-Ons are available for Redis, Mongo, Couchdb, ClearDB, JustOneDB, and Amazon RDS.
Nodejitsu continues to take a fairly minimalist approach, with no built-in database. They provide Add-Ons for Mongo, Redis, and CouchDb.
Appfog allows you to use your service instances to host Redis, Mongo, Postgres, or MySql databases. They also provide add-ons for Mongo and ClearDB. The main knock here is that your database shares the processing and memory quotas with your other services, and I’m skeptical that such an approach could support a high traffic app.
Winner: Heroku. Production quality Postgres, with great Add-Ons for a variety of other databases.
Tie: Appfog & Heroku. Appfog’s PHP support opens a lot of opportunities (such as hosting WordPress), however, Appfog seems to have trouble keeping their runtimes up to date. As of July 2013, Node.js was only up to version 8. Heroku provides good language options, and a serious commitment to keeping the runtimes up to date.
Other Considerations and Final Thoughts
An important consideration for many node apps is web socket support. Nodejitsu has it, the others don’t. If you need this feature, your choice is clear. At this point, Heroku’s flexibility, large community, and great add-ons make it my go-to for applications, however, I think Appfog has put together a great offering, and I’m looking forward to using it more in the future.