Node.js PaaS Hosting Comparison
Disclaimer: I'm coming from the standpoint of DerbyJS deployment and a desire for Socket.io to work (even if it has to fall back on XHR polling, though Websockets is preferable). The process was thus: I had my site running on my own dev server which worked fine, and attempted deployment on all PaaS in the following comparison. They all had had issues and required adjustments and compromises to my app. In the end, Nodejitsu & Heroku both worked well.
Agile deployment for Ruby, Node.js, Clojure, Java, Python, and Scala.Get up and running in minutes, and deploy instantly with git. Focus 100% on your code, and never think about servers, instances, or VMs again.
- Very reasonable pricing.
- Supports Node.js 0.8.x
- When your deploy fails you see a legitimate error log. Many of the other PaaS give you nondescript messages and debugging is a pain. Debugging Heroku wins by comparison.
- Doesnt' support Websockets. You have to configure Socket.io for XHR Polling, which works fine.
- I'm keeping my finger on it's pulse; Heroku has been my historical bread-and-butter (Rails), and will be my recommendation once they support Websockets.
- Incidentally, for PaaS Websocket support see Node.js Websocket Hosting Roundup
The simplest, most reliable and intelligent Node.js hosting platform you can get.
- The most successful Node PaaS, in my experience.
- The team running the show are some of the best-known Node.js developers.
- Incredible support. Not much luck emailing them, but hop into #nodejitsu IRC and they answer your questions in shocking time and thoroughness.
- Very inexpensive. Currently free, which will change very soon to $3 / drone / mo. (a drone runs a single app). That probably makes this the cheapest of the PaaS.
- You get a lot of nondescript "socket hang up" errors, debugging Nodejitsu can be pretty tough.
- While Websockets work for most things on Nodejitsu, still couldn't get it working for DerbyJS. However, configuring Socket.io to use XHR Polling was successful, and the app works just fine. I need to connect with them on debugging DerbyJS's Websocket support.
Deploy your Node.JS applications to Nodester.com for FREE or deploy your apps to your own private cloud instance of Nodester running in your own datacenter or on Amazon EC2, Rackspace, or GoGrid! Deploy your Node.JS applications to Nodester.com for FREE or deploy your apps to your own private cloud instance of Nodester running in your own datacenter or on Amazon EC2, Rackspace, or GoGrid!
Nodester is an open source Node.JS Platform-as-a-Service written in Node.JS with a RESTful API designed to run in any cloud without a VPS! It is the first of its kind and 100% open sourced under the GNU Affero license on GitHub.
- Pretty flippin' epic - the whole platform is opensource and free. You choose to run your dev app for free, or run it through Nodester on your own Rackspace / EC2 instance to scale. Really cool concept, and I hope they succeed.
- I spent a lot of time on this platform, trying to get my Derby app to deploy. Unfortunately, it (1) had more errors than the others, and (2) the errors were non-descript and difficult to debug. However, it's been a long time since I tried, so things might have changed.
- Most likely you'll be using MongoDB. Setup off-site Mongo hosting through MongoHQ, because most PaaS don't have hosted databases (aka, you can't just use "mongodb://localhost/myDatabase")
- Figure out how to setup environment variables on your PaaS. Some have CLI commands, Nodejitsu in particular uses package.json. Some environment variables you'll most likely be setting are PORT, NODE_ENV, and some variable to define the MongoHQ database uri (wich you define yourself, eg. NODE_DB_URI). Many of these variables will be accessed through your app's framework, so you don't need to worry about it. Others you access yourself (like the NODE_DB_URI example) via process.env:
- If you, too, are hosing a DerbyJS app, make sure your /lib directory is in Git. If you created your app for Coffeescript, it will be in .gitignore - remove it from that file.
- On that note, if you are hosting a Derby app, you might find my workflowy brain-dump of errors and fixes handy.