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

Yahoo! scale Node.js

on

  • 3,383 views

http://www.youtube.com/watch?v=it9ttbqVSUs

http://www.youtube.com/watch?v=it9ttbqVSUs

Statistics

Views

Total Views
3,383
Views on SlideShare
3,380
Embed Views
3

Actions

Likes
1
Downloads
24
Comments
0

3 Embeds 3

http://us-w1.rockmelt.com 1
http://www.linkedin.com 1
https://twitter.com 1

Accessibility

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.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
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 <fabian@pagefault.de> The Yahoo! Axis Team http://axis.yahoo.com
  • 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 http://developer.yahoo.com/cocktails/mojito/docs/topics/mojito_npm.html
  • 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 http://npmjs.org/doc/shrinkwrap.html
  • 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 http://developer.yahoo.com/yql/guide/yql-cloud-chapter.html
  • Configuration through YQL http://developer.yahoo.com/yql/console/
  • 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• Y.io uses request as transport layer http://yuilibrary.com/yui/docs/yui/nodejs.html https://github.com/mikeal/request
  • Node.js 0.8
  • Performancehttp://www.slideshare.net/FabianFrankDe/nodejs-performance-case-study
  • 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 allocationhttp://developer.yahoo.com/blogs/ydn/posts/2011/11/yahoo-announces-cocktails-%E2%80%93-shaken-not-stirred/
  • 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