It’s a great time to be a developer. Also a confusing time. We are at a point where there are dozens of legit places that forward-thinking developers can run their apps in the cloud. I’ll be taking a look at a few different types of applications in a brief series of “where the heck do I host my …” blog posts. My goal with this series is to help developers wade through the sea of providers and choose the right one for their situation. In this first one, I’m looking at Node.js. It’s the darling of the startup set and is gaining awareness among a broad of developers. It also may be the single most supported platform in the cloud. Amazing for a technology that didn’t exist just a few years ago (although some saw the impending popularity explosion coming).
Instead of visualizing the results in a giant matrix that would be impossible to read and suffer from data minimization, I’m going briefly describe 11 different Node providers and assess them against the following criteria:
- Versions of Node.js supported.
- Supported capabilities.
- Commitment to the platform.
- Complementary services offered.
- Pricing plans.
- Access to underlying hosting infrastructure.
- API and tools available.
- Support material offered.
The providers below are NOT ranked. I made it alphabetical to ensure no perception of preference.
Amazon Web Services
AWS offers Node.js as part of its Elastic Beanstalk service. Elastic Beanstalk is a container system that makes it straightforward to package applications and push to AWS in a “PaaS-like” way. Developers and administrators can still access underlying virtual machines, but can still act on the application as a whole for actions like version management.
Versions | Capabilities | Commitment | Add’l Services |
Min version is 0.8.6, max version is 0.8.21 (reference) | Load balancing, versioning, WebSockets, health monitoring, Nginx/ Apache support, global data centers | Not a core focus, but seem committed to diverse platform support. Good SDK and reasonable documentation. | Integration with RDS database, DNS services |
Pricing Plans | Infrastructure Access | API and Tools | Support |
No cost for Beanstalk apps, just costs for consumed resources | Can use API, GUI console, CLI, and direct SSH access to VM host. | Fairly complete API, Git deploy tools | Active support forums, good documentation, AWS support plans for platform services |
AppFog
AppFog runs a Cloud Foundry v1 cloud and was recently acquired by Savvis.
Versions | Capabilities | Commitment | Add’l Services |
Min version is 0.4.12, max version is 0.8.14 (reference) | Load balancing, scale up/out, health monitoring, library of add-ons (through partners) | Acquired Nodester (Node.js provider) a while back; unclear as to future direction with Savvis | Add-ons offered by partners; DB services like MySQL, PostgreSQL, Redis; messaging with RabbitMQ |
Pricing Plans | Infrastructure Access | API and Tools | Support |
Free tier for 2GB of memory and 100MB storage; Up to $720 per month for SSL, greater storage and RAM (reference) | No direct infrastructure access, but tunneling supported for access to application services | Appears that API is used through CLI only; web console for application management | Support forums for all users, ticket-based or dedicated support for paid users |
CloudFoundry.com
Cloud Foundry, from Pivotal, is an open-source PaaS that can run in the public cloud or on-premises. The open source version (cloudfoundry.org) serves as a baseline for numerous PaaS providers including AppFog, Tier 3, Stackato, and more.
Versions | Capabilities | Commitment | Add’l Services |
Default is 0.10.x | Load balancing, scale up/out, health monitoring, management dashboard | Part of many supported platforms, but regular attention paid to Node (e.g. auto-reconfig). | DBs like PostgreSQL, MongoDB, Redis and MySQL; App services like RabbitMQ |
Pricing Plans | Infrastructure Access | API and Tools | Support |
Developer edition has free trial, then $0.03/GB/hr for apps plus price per svc. | No direct infrastructure access, but support for tunneling into app services. | Use CLI tool (cf), several IDEs, build tool integration, RESTful API | Support documents, FAQs, source code links.services provided Pivotal |
dotCloud
Billed as the first multi-language PaaS, dotCloud is a popular provider that has also open-sourced a majority of its framework.
Versions | Capabilities | Commitment | Add’l Services |
v0.4.x, v0.6.x, v0.8.x, and defaults to v.0.4.x. (reference) | WebSockets, worker services support, troubleshooting logs, load balancing, vertical/horizontal scaling , SSL | Not a lot of dedicated tutorials (compared to other languages), but great Node.js support across platform services. | Databases like MySQL, MongoDB, and Redis; Solr for search, SMTP, custom service extentions |
Pricing Plans | Infrastructure Access | API and Tools | Support |
No free tier, but pay per stack deployed | No direct infrastructure access, but can SSH into services and do Nginx configurations | CLI used to manage applications as the API doesn’t appear to be public; web dashboard provides monitoring and some configuration | Documentation, Q&A on StackOverflow, and a support email address. |
EngineYard
Longtime PaaS provider well known for Ruby on Rails support, but also hosts apps written in other languages. Runs on AWS infrastructure.
Versions | Capabilities | Commitment | Add’l Services |
0.8.11, 0.6.21 (reference) | Git integration, WebSockets, access to environmental variables, background jobs, scalability | Dedicated resource center for Node, and a fair number of Node-specific blog posts | Chef support, dedicated environments, add-ons library, hosted databases for MySQL, Riak, and PostgreSQL. |
Pricing Plans | Infrastructure Access | API and Tools | Support |
500 hours free on signup, then pay as you go. | SSH access to instances, databases | Offers rich CLI, web console, and API. | Basic support through ticketing system (and docs/forums), and paid, premium tier. |
Heroku
Owned by Salesforce.com, this platform has been around for a while and got started supporting Ruby, and has since added Java, Node.js, Python and others.
Versions | Capabilities | Commitment | Add’l Services |
From 0.4.7 through 0.10.15 (reference) | Git support, application scaling, worker processes, long polling (no WebSockets), SSL | Clearly not the top priority, but a decent set of capabilities and services. | Heroku Postgres (database-as-a-service), big marketplace of add-ons |
Pricing Plans | Infrastructure Access | API and Tools | Support |
Free starter account, then pay as you go. | No raw infrastructure access. | CLI tool (called toolbelt), platform API, web console | Basic support for all customers via dev center, and paid support options. |
Joyent
The official corporate sponsor of Node.js, Joyent is an IaaS provider that offers developers Node.js appliances for hosting applications.
Versions | Capabilities | Commitment | Add’l Services |
0.8.11 by default, but developers can install newer versions (reference). Admin dashboard shows that you can create Node images with 0.10.5, however. | Server resizing, scale out, WebSockets | Strong commitment to overall platform, less likely to become a managed PaaS provider | Memcached support, access to IaaS infrastructure, Manta object storage, application stack templates |
Pricing Plans | Infrastructure Access | API and Tools | Support |
Free trial, and pay as you go | Native infrastructure access to servers running Node.js | Restful API for accessing cloud servers, web console. Debugging and perf tools for Node.js apps. | Self service support for anyone, paid support option |
Modulus.io
A relative newcomer, these folks are focused solely on Node.js application hosting.
Versions | Capabilities | Commitment | Add’l Services |
0.2.0 to current release | Persistent storage access, WebSockets, SSL, deep statistics, scale out, custom domains, session affinity, Git integration | Strong, as this is the only platform the company is supporting. Offers a strong set of functional capabilities. | Built in MongoDB integration |
Pricing Plans | Infrastructure Access | API and Tools | Support |
Each scale unit costs $0.02 per hour, with separate costs for file storage and DB usage | No direct infrastructure access | Web portal or CLI | Basic support options include email, Google group, Twitter |
Nodejitsu
The leading pure-play Node.js hosting provider and a regular contributor of assets to the community.
Versions | Capabilities | Commitment | Add’l Services |
0.6.x, 0.8.x (reference) | GitHub integration, WebSockets, load balancer, sticky sessions, versioning, SSL, custom domains, continuous deployment | Extremely strong, and proven over years of existence | Free (non high traffic) databases via CouchDB, MongoDB, Redis |
Pricing Plans | Infrastructure Access | API and Tools | Support |
Free trial, free hosting of open source apps, otherwise pay per compute unit | No direct infrastructure access | Supports CLI, JSON API, web interface | IRC, GitHub issues, or email |
OpenShift
Open source platform-as-a-service from Red Hat that supports Node.js among a number of other platforms.
Versions | Capabilities | Commitment | Add’l Services |
Supports all available versions | (Auto) scale out, Git integration, WebSockets, load balancing | Dedicated attention to Node.js, but one of many supported platforms. | Databases like MySQL, MongoDB, PostgreSQL; additional tools through partners |
Pricing Plans | Infrastructure Access | API and Tools | Support |
Three free “gears” (scale units), and pay as you go after that | SSH access available | Offers CLI, web console | Provides KB, forums, and a paid support plan |
Windows Azure
Polyglot cloud offered by Microsoft that has made Node.js a first-class citizen on Windows Azure Web Sites. Can also deploy via Web Roles or on raw VMs.
Versions | Capabilities | Commitment | Add’l Services |
0.6.17, 0.6.20, and 0.8.4 (reference) | Scale out, load balancing, health monitoring, Git/Dropbox integration, SSL, WebSockets | Surprisingly robust Node.js development center, and SDK support | Integration with Windows Azure SQL Database, Service Bus (messaging), Identity, Mobile Services |
Pricing Plans | Infrastructure Access | API and Tools | Support |
Pay as you go, or 6-12 month plans | None for apps deployed to Windows Azure Web Sites | IDE integration, REST API, CLI, PowerShell, web console, SDKs for other Azure services. | Forums and knowledge base for general support, paid tier also available |
Summary
This isn’t a complete list of providers, but hits upon the most popular ones. You’ve really got a choice between IaaS providers with Node.js-friendly features, pure-play Node.js cloud providers, and polyglot clouds who offer Node.js as part of a family of supported platforms. If you’re deploying a standalone Node.js app that doesn’t integrate with much besides a database, then the pure-play vendors like Nodejitsu are a fantastic choice. If you have more complex systems made up of components written in multiple languages, or requiring advanced services like messaging or identity, then some of the polyglot clouds like Windows Azure are a better choice. And if you are trying to compliment your existing cloud infrastructure environment by adding Node.js applications, then using something like AWS is probably your best bet.
Thoughts? Any favorites out there?
Pogoapp is a PaaS based on buildpacks and a mostly Heroku-compatible API, running on SSDs. We support any version of node.js as well as websockets and any backend infrastructure you want to run (e.g. postgres/redis/mongo). Very much on the polyglot end of the spectrum. We’d be happy to give you a free trial account.
Nodejs apps can be deployed on Google Compute Engine:
http://greenido.wordpress.com/2013/09/08/install-nodejs-compute-engine/
Yup, just like most IaaS platforms.
You can host NodeJS apps on Google App Engine, see https://cloud.google.com/nodejs/
– Stagecoach is an option for deploying and staging your apps. https://github.com/punkave/stagecoach
– Paastor is a Node-centric service that makes managing multiple apps on your own servers a lot like AppFog or heroku. https://paastor.com
– Nodejitsu and AppFog are _super_ easy and fairly affordable options.
Great list, thanks Richard. One criterion you missed which is a total showstopper for anyone working in Europe is Safe Harbor compliance. If you’re based in Europe and you’re working with European customers’ data (e.g. email addresses), you’re breaking the law if your servers don’t have Safe Harbor compliance. Heroku was ruled out for me when I was doing my research a few months ago (I think they may have it these days tho).
Not that Safe Harbor compliance actually means anything after the Snowden NSA revelations!
Nodejitsu was recently acquired by GoDaddy (https://www.nodejitsu.com/company/press/2015/02/10/nodejitsu-joins-godaddy/)
And for me, that is a bad thing. I had a bad customer experience with GoDaddy some years ago