Paving the way for more server-side use of JavaScript, platform-as-a-service (PaaS) provider Engine Yard has added the Node.js library to its collection of hosted Web application tools.
The service, which Engine Yard first offered as a preview last November, will join Engine Yard's two other Web application-friendly offerings, Ruby on Rails and PHP.
Running Node.js as a service, instead of in-house, eliminates many headaches for the developer, said Mark Gaydos, Engine Yard senior vice president of worldwide marketing. No server hardware needs to be procured, nor does the developer need to worry about maintaining Node.js itself, or the other software Node.js depends upon to run.
Built on Google's V8 JavaScript engine, Node.js is a library of JavaScript functions that work under an event-driven concurrency model, meaning they are especially well-suited for distributed real-time applications.
Node.js is similar to how Unix operates, in that it offers a set of stand-alone functions that can be strung together to form larger processes. "Node modules do one thing and do it well," explained Mike Amundsen, a developer for API management software vendor Layer 7 Technologies, in an introductory talk at the O'Reilly Open Source Convention in Portland, Oregon, last month. Node.js is "meant to be fast. It's optimized for the machine, not for the developer," he said. Games, interactive tools, real-time analytics and other Web applications have all benefitted from running on the Node.js platform.
Although JavaScript code is traditionally run on browsers, developers are finding that running JavaScript on the server side offers a number of advantages. For one, it allows large, sprawling Web applications to run more efficiently. Organizations "could get a lot more users supported per dollar of compute resources," said Bill Platt, vice president of operations at Engine Yard. The server-side Node.js also eliminates much of the worry about tweaking JavaScript code for many end-user devices that exist.
With the Engine Yard service, the user gets a dashboard, from which one can build a manifest of needed components, such as Node.js. The user can then upload the code to run against the Node.js deployment. The requested elements are placed in a virtual machine (VM). An application may need multiple VMs to run databases, and other supporting applications.
Engine Yard chose to offer Node.js because it "has a passionate and growing community," Platt said. The library is the second-most-monitored project on GitHub.
For its hosted service, Engine Yard picks open-source technologies with large user bases, Platt said. As with its support of Ruby on Rails and PHP, Engine Yard employs software engineers who possess the expertise to help support users and the Node.js project itself. "When we support something, we want to be very good at it," Platt said. "We learn right alongside these developers what kind of platform they need to be successful."
Engine Yard is initially using Node.js version 0.8.7. The company maintains a continuous integration process for its technologies, so the latest version of the library should be available to users within days of its release. "Because it is open source, we can watch and see all of the commits and actions when they occur. Our goal is to be coincident with version releases," Platt said.
The service bills according to the use of virtual machines, on a per-hour basis. The medium-sized Node.js implementation would run at about $1 per hour, according to Engine Yard. Engine Yard generated $29 million in revenue in 2011 and supports about 2,200 paying customers.