Joyent polishes Node.js with commercial support package

Joyent promises to help solve tricky Node.js issues, no matter where they occur

Recognizing the growing popularity of Node.js for building distributed Web applications, cloud provider Joyent will soon offer a commercial support package for managing the platform, wherever it is run.

Priced at $990 a month, Node.js Core Support is aimed at heavy commercial users of Node.js. The service will inspect Node.js systems and provide data to troubleshoot issues.

[ Stay on top of the cloud with the "Cloud Computing Deep Dive" special report. Download it today! | From Amazon to Windows Azure, see how the elite 8 public clouds compare in InfoWorld's review. | For a quick, smart take on the news you'll be talking about, check out InfoWorld TechBrief -- subscribe today. ]

The service can work with the Node.js deployments that Joyent itself runs as part of its PaaS (platform-as-a-service) collection of hosted technologies. It can also work with hosted Node.js deployments from other providers, such as Heroku, Microsoft Windows Azure, and Engine Yard.

The service can also work with any private deployments of Node.js that are running on either Linux or Solaris servers.

Joyent's offering suggests that Node.js is increasingly becoming a core Web technology. Since its creation in 2009, Node.js has been rapidly adopted across a range of industries, especially within the fields of media and Internet services. The New York Times, Groupon, Yahoo, Condé Nast, HBO, National Public Radio, Walmart, eBay, PayPal, and LinkedIn all use the technology.

Last month, Microsoft released a package to help developers write Node.js applications in the company's Visual Studio IDE (integrated development environment).

Joyent boasts of having deep expertise in Node.js. It currently manages the code base and employs a number of the software's maintainers, including, up until recently, Ryan Dahl, who originally created it.

Dahl wrote Node.js to simplify the process of creating more interactive Web applications. Built using the high performance Google V8 JavaScript run-time engine, Node.js is written mostly in JavaScript.

Although JavaScript was originally intended to be used in a browser, Node.js executes a program's JavaScript on a server. It is particularly well suited for handling simultaneous threads and for gluing together APIs (application programming interfaces) from multiple sources, both traits needed for high-performance distributed Web applications.

Node.js also features a number of handy developer aids, including a built-in Web server and the npn package manager for installing additional modules.

Currently, Joyent offers commercial support for its own Node.js customers in three tiers: production, business critical, and mission critical. The new offering will be similar, offering four levels of support, each with a guaranteed service level agreement, which have yet to be specified.

Joyent announced the offering at the Node Summit conference, being held this week in San Francisco.

Commercial support for Node.js can be handy, especially for debugging thorny memory issues, explained Bryan Cantrill, Joyent senior vice president of engineering. Being a high-level language, JavaScript doesn't offer many details about how it uses working memory. So a developer or administrator might find it extremely difficult to pinpoint memory leaks, uncaptured exceptions and other memory-related errors, Cantrill said.

To debug an issue, the service parses a core dump sent by the operating system kernel. A core dump is a state of the working memory at a given point in time. "From a core dump, we can get to a higher-level JavaScript state," Cantrill said. The troubled Node.js can even remain in operation while the debugging process runs.

One early user was Walmart, which used the tool to debug a very slow memory leak that would only become evident a week or so after starting a Node.js instance. "Memory that leaks out slowly is really dastardly, because it is too small to notice in minutes or even hours," Cantrill said. "Understanding where the memory is going is brutally hard, because you can't reproduce it in development. It has to be done in production."

Joyent first built the diagnostic toolchain to monitor Node.js deployments on Joyent's version of Solaris, called SmartOS. The toolchain runs on Joyent's hosted storage service Manta, which includes compute capabilities. A Joyent engineer developed a way to run the diagnostics on core dumps from a Linux kernel in addition to Solaris kernels, which allowed the company to open the service to a wider possible user base, Cantrill said.

Joab Jackson covers enterprise software and general technology breaking news for The IDG News Service. Follow Joab on Twitter at @Joab_Jackson. Joab's e-mail address is Joab_Jackson@idg.com

Copyright © 2013 IDG Communications, Inc.

How to choose a low-code development platform