2013-07-29

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.

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?

Filed under: Cloud, Cloud Foundry, Node.js, Tier 3 Web Fabric, Windows Azure

Show more