When the scale of your application is “everyone on the Internet,” you have to think a bit differently about adopting new technologies.
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
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.”
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.
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.
“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.
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].”
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.
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.