Dev

Node at scale: What Google, Mozilla, & Yahoo are doing with Node.js

When the scale of your application is “everyone on the Internet,” you have to think a bit differently about adopting new technologies.

At the Node Summit today, a bevy of “big boy” company executives gathered to chat about Node.js, the server-side JavaScript technology that’s been taking the developer world by storm.

Representatives from Google, Yahoo, Mozilla, and startup i.TV were on hand to talk about using Node when instability is not an option.

One overarching note: Everyone onstage said they used Express, the Sinatra-like Node.js framework. However — and definitely stay tuned for more news on this — Yahoo said that due to multiple issues its engineers experienced using Express, the company will be open-sourcing its own Node framework within the next few weeks. We’ve already pinged the company for more details and will write a separate update on that subject as soon as we know more.

Yahoo and Node


Yahoo’s developers started playing with Node.js in early 2010. “we’d been trying to figure out server-side JavaScript for a while,” said Bruno Fernandez-Ruiz is Yahoo’s platform vice president, referencing the home-brewed query language Yahoo uses, known as YQL. When the company’s devs found Node, he said, “They were using it for things like file uploads.”

Eventually, the company decided to make a bigger investment. “We wanted to maintain the same code base on the client side and the server side,” said Fernandez-Ruiz. “Node.js was the way to go. We invested over 12 months in this.”

And at the end, the company released Cocktails, a project intended to eliminate the multi-language scenarios that introduce complications for developers. One Cocktail, Mojito, uses JavaScript and Node to run a single codebase both on client and server side. Another is Manhattan, a Node.js hosted environment for Mojito.

“The use of JavaScript and the fact that Node was growing was interesting, and the latency was good,” Fernandez-Ruiz said. “The fears that it won’t stay up… it has required a lot of hand-holding, when you’re going beyond a reasonable number of requests… It’s freaking hard engineering.”

Google and Node


Ask a Googler what the company is doing with Node (I have!), and you’ll get the same answer every time: No comment.

But given the company’s longtime focus on JavaScript and its well-tended garden of competing products, it would be utterly facile to assume that “No comment” means “Nothing.”

Googlers are definitely working on Node projects — perhaps even something big that will be released to the public in the near future. They’re just not ready to talk publicly about what that might be.

Ilya Grigorik, a Googler who uses the professional title “Instigator,” said that while developers within the company do use Node, “There are parallel efforts in Google, as well.” That would be Dart, a new language for structured web programming that Girgorik said “takes something like JavaScript and makes it more object oriented.” Google also has Go, an experimental programming language focused on speed and efficient programming.

“I think there are a lot of interesting alternatives to Node,” Grigorik said.

However, Google isn’t truly pitting its own languages against Node. Node has a huge community and a lot of support from developers — it’s the most popular repo on Github, after all. “Of course, Google doesn’t have the same commuity in the web space,” Grigorik admitted.

And on top of its own programming language projects, said Grigorik, “Google has built a lot of apps that are very heavy in JavaScript… Gmail is something like 450,000 lines of JavaScript.” All that means that Google is likely less anxious to find an entirely new language for its most popular web apps and more likely to find more and better ways to work with JavaScript itself.

The Googler also said that while “a lot of people tend to focus on [Node’s] performance, what’s more interesting is the set of constraints it imposes on a developer and what it enables… You can’t shoot yourself in the foot in any way.”

Finally, for a company like Google, “No problem is small,” Grigorik said. “One of the interesting things about building services at scale is figuring out how much you can squeeze out of one CPU core,” he said.

“When you’re building a set of services at planet scale, you don’t have one data center. Disasters would happen,” he said, continuing, “[The Node community] could do a lot to assist with that.”

Finally, Grigorik concluded, “We’re approaching it from all angles… it’s a hard problem to solve, and it’s a real problem.”

Mozilla and Node


Mark Mayo is a principal engineer at Mozilla; he’s working on BrowserID, a cross-platform sign-in technology.

“Mozilla is using Node,” Mayo began. “It’s a big deal when you’re going to expose a service to a browser that has half a billion installs.”

Mayo continued, “We concretely decided to do Node for two reasons: One was the memory footprint… Browser ID was designed out of the gate to support half a million users, that was going to be financially difficult [at the pre-Node memory footprint size].”

The other reason, Mayo said, was all about cryptography. “We had to pioneer a bunch of crypto in JavaScript… it was advantageous to be able to use the same language on the server side as we as the client side.”

Mayo, who was formerly the CTO of Node sponsor Joyent, did express frustration over the fear, uncertainty, and doubt about Node in the enterprise crowd. “Stop saying that Node is a nascent technology or that it’s immature,” he told the Node Summit audience. “It’s at a point where it’s stable.

“That being said, we have had some challenges,” he concluded, noting that the transition from v0.4 to v0.6, which presented some pretty significant changes, was a battle for Mozilla.

Although Mayo said “the invisible state of the debug” was disconcerting (“It’s almost impossible to know what your Node program is doing at all times, which is scary”), he finished by saying that for the Mozilla team, “It’s super empowering for the whole team” to have everything in a single repository of JavaScript, no dependencies or other languages required.

Node at iTV


i.TV is a small startup with a big userbase. Its TV guide app is the most-downloaded in its class, and it also powers AOL TV. The company’s platform is all Node-powered.

“We needed massive scale, and for engineers work on both the client side and the server side,” said CTO Sean Hess from the summit stage today.

One thing Hess noted that we’ve heard from a lot of companies that make a whole-hog switch to Node is that the technology doesn’t come with all the tools you’d need right out of the box.

“There isn’t yet a set of best practices for application code organization in Node,” Hess said. “It’s not baked in like with Rails. We had to invent all this tooling ourselves.”

But Hess said that he and his team didn’t mind the extra work. During the “exploration” phase of coding, as he called it, they got to experiment and test new ideas without bothering with organization too much.

“You do end up with a robust code base, and it happens at a good time… at a time when maintenance isn’t important yet,” Hess concluded.

LinkedIn and Node


Another large company using Node.js is LinkedIn. When the professional network launched its gorgeous (and fast) new app, VentureBeat sat down for an exclusive chat with Kirin Prasad, the company’s mobile chief, who said that Node’s performance benefits were undeniable.

“On the server side, our entire mobile software stack is completely built in Node,” said Prasad. “We use a ton of technologies at LinkedIn, but for the mobile server piece, it’s entirely Node-based… Node showed us huge performance gains compared to what we were using before, which was Ruby on Rails.”

When we asked Prasad about his concerns with moving an at-scale application to a somewhat new technology, he admitted that LinkedIn did have some misgivings. “We did an analysis of a number of platforms — Ruby, Node, Java, Scala. We’ll continue to use it and see how it does. That’s how we’ll make our technology choices.

“In our culture, we’re encouraged to try new technologies. No one’s going to shoot you in the head for trying something new.” And at least at large tech companies such as those onstage for this talk, we’re sure that aspect of engineering culture is universal.


Mobile developer or publisher? VentureBeat is studying mobile marketing automation. Fill out our 5-minute survey, and we'll share the data with you.