Node.js Summit: Platform as a Service

Date: Sat Apr 26 2014
"Platform as a Service" is one of the buzz words in Cloud Computing. Node.js has a role in cloud computing. Panel session with James Urquhart of enStratus, Derek Colison of VMware, Scott Guthrie of Microsoft, Charlie RObbins of Nodejitsu, and Oren Teich of Heroku.

PAAS is about abstracting away the web serving platform. Automatically configuring a pile of servers with a common computing environment for each server. It is a step similar to the difference between coding software in assembly language versus a high level language.

Node.js as a player in PAAS.

Node's evented model makes it simpler to make reactive services, and it is trivial to implement new protocols because the required plumbing is baked in with an innovative ingenious API. These kinds of services could be developed in a platform like Java, but one panel speaker claimed that in Java it would take 10x the memory that a Node based implementation requires. This results in saving resources.

A distributed system built on top of machine-machine applications.

Heroku's guy says they have customers building platforms on top of their platform. He likens it to the stacked turtles idea in literature. Their stack of turtles includes Amazon EC2, Node, etc, and then their customers are building another turtle upon their stack of turtles.

From the front end developer perspective ... JavaScript has won the war of which language to use in front end apps. Both Java and Flash have been superseded by JavaScript. This means many developers will come out of college with JavaScript knowledge, so why not put JavaScript on the server?

Node is a great fit for some applications, a terrible fit for others. There's a danger in the Node excitement to try and use Node to solve every problem. Hence, PAAS needs to be polyglot.

"Hey we need to glue together two services, hook them up with JSON, deliver them to a browser, ..." Because of Node's ability to invent custom webservices on the fly this is simpler.

High level language that's dynamic, scripting focused, runs on multiple platforms, can shift between browser and server, big win on many fronts. Back in the 90's Java was presented as supplying that combination of features, but somewhere along the way we lost with Java. JavaScript does it in the browser and with platforms like Node does it in the server.

Consider tasks like "input validation" where the job is to validate correct input before its entered into the database. "Correct" can include screening for security violations. In older platforms you'd be implementing input validation twice, but if JavaScript is on both ends you'd implement it once and be able to reuse the same code between both client and server.

"Do you understand what it truly means to handle 10,000 simultaneous requests"? "Scale introduces new problems"

Are the Node.js PAAS providers doing customizations to Node or providing tooling?

One - developing Hook.IO to ease events between Node instances within a PAAS cloud. The fork and child process stuff introduced with 0.6 is valuable.

At VMWare (Cloud Foundry) and Microsoft they're treating Node within their system as any other language. The Node you use in their platform is the Node you download off nodejs.org.

The app is first, the PAAS is there to help the developer focus on the app development.

Polyglot means that some of the customers write their apps in COBOL. You thought that language died in the 60's? Nope. Sorry.