Subscribe / Unsubscribe Enewsletters | Login | Register

Pencil Banner

Node.js goes pro: New opportunities -- and risks

Serdar Yegulalp | Feb. 13, 2015
The meteoric rise of Node.js means greater scrutiny of tools and shortcomings in the years ahead.

Hosting: Competition spurs support and innovation in the cloud

Before Node.js began making serious headway, the only way to run Node.js was to spin it up on bare metal that you owned. That time has long since passed, and cloud providers are now climbing over each other to provide Node.js hosting -- not only support for Node.js in VMs, but full-blown PaaS hosting for Node.js.

Most every brand-name PaaS now has Node.js support, and those that got an early start have gone to some lengths to bolster their support. Heroku, for instance, not only lets you deploy Node.js apps, but you can take your pick of which version of Node.js or NPM to use (including newer, not necessarily supported versions). Amazon, on the other hand, has used the pretext of PaaS-like Node.js support to create an entirely new kind of functional programming service: AWS Lambda. Because Node.js and JavaScript are event-driven, Amazon reasoned, why not create a mini-stack for Node.js that runs code in response to events piped into it from the rest of AWS?

Amazon already had experience hitching Node.js to its services by way of an SDK that allows calls to AWS through Node.js, but AWS Lambda took an even bigger leap into Node.js territory. It's unlikely this highly focused use of JavaScript will produce the demand enjoyed by the Node.js stack, but Lambda is intriguing. Amazon is clearly interested in what other fruit this approach can bear, as it has tentative plans to add support for other languages to Lambda down the road.

Another key change in the way Node.js works with hosts has come with the advent of Docker, the red-hot app containerization technology. Docker provides an easy way to bundle the Node.js runtime with its code, data, and any other associated applications, meaning any dependencies required by the application -- including the specific version of Node needed for it -- don't have to be supported by the host. Docker also provides convenient ways to create Node.js apps and scale them (such as via the open source Deis PaaS). And an NPM package for Docker, dnt, allows Docker to be used to test code against multiple versions of Node.js in parallel.

Given these developments, Node hosting options will likely proliferate going forward. Here, containerization is key, as it makes it possible for developers to run Node.js on host services without the host even supporting the application's Node runtime of choice. But as seen in Amazon's Lambda, support for Node.js can also reap rewards for hosting providers looking to leverage the Node API to build new services and products.

Testing and debugging: The Node.js Achilles' heel

 

Previous Page  1  2  3  4  Next Page 

Sign up for CIO Asia eNewsletters.