Yahoo! scale Node.js
Upcoming SlideShare
Loading in...5

Yahoo! scale Node.js





Total Views
Views on SlideShare
Embed Views



3 Embeds 3 1 1 1


Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • yui abstraction layer\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Yahoo! scale Node.js Yahoo! scale Node.js Presentation Transcript

  • Yahoo! scale Node.js @Fabian_Frank <> The Yahoo! Axis Team
  • Challenges• Being able to share code (across applications)• Dynamic configuration, per environment• Stability and performance
  • Code re-use• Different applications (teams), same problems• Potential side effects, e.g. through unexpected updates
  • npm• Package manager for Node.js packages• resolves dependencies automatically• hosts packages in a central registry
  • Mojito and npm• Every Mojito application can specify its dependencies in package.json• Mojito probes node_modules/, when loading Mojito resources
  • Mojito resource• YUI Module• Mojito add-on• Mojit (views, a controller, models)
  • npm dependencies"dependencies": { "mojito": "=0.3.26", "mojito-shaker": "~0.7.5", "yui": ">=3.5.1"}$ npm shrinkwrap
  • Internal npm• Only the build system can publish packages• Packages are published only after unit and functional tests passed• immutable packages
  • Dynamic configuration• Change application behavior without redeployment• JSON is a common way to express configuration in JavaScript applications• YQL Storage holds JSON
  • Configuration through YQL
  • Node.js 0.6• transparent change for Mojito users• important fixes and improvements in HTTP and DNS
  • YUI 3.5• officially supports Node.js• removed jsdom dependency• uses request as transport layer
  • Node.js 0.8
  • Performance
  • Performance• Mojito&Manhattan compared to Apache&PHP• CPU bound• found that Manhattan can serve twice the amount of requests at half the latency
  • Performance
  • Stability• Yahoo! Axis is served using Mojito and Manhattan• Hundreds of requests per second• Static HTML and CSS, dynamic pages, API entry points• Monitoring
  • Building and Maintenance • Need to know only one language and framework, no context switches. • Allows to postpone design decisions • Easier to revert design decisions • Easier deployment and resource allocation
  • Conclusion• Mojito works for our computers• Mojito works for us, as engineers
  • Thank you!• Fabio Hirata, @fabiohh• Caridy Patiño, @caridy• Eugene Kashida, @ekashida• Fabian Frank, @Fabian_Frank