Node js - Enterprise Class


Published on

My keynote on node.js in the real world. Delivered at the InfoQ Arch Summit in ShenZhen

Published in: Technology
  • Be the first to comment

Node js - Enterprise Class

  1. 1. Microsoft, digging node
  3. 3. NEW JOBS are exploding
  4. 4. SERIOUS adopters
  5. 5. Source:,-Applications,-and-Companies-Using-Node
  6. 6. AND NPM IS OUTTA CONTROL 2011... ~1800 projects 730 active package authors 26 npm contributors version 1.0 released
  7. 7. AND NPM IS OUTTA CONTROL 2012... 72 npm contributors version 1.1.35 released
  8. 8. WHY???
  9. 9. Source:
  10. 10. LINKEDIN:Node drives the mobile stack“On the server side, our entiremobile software stack is completelybuilt in Node,” KIRAN PRISAD
  11. 11. Source:
  12. 12. SCALE“One reason was scale.” KIRAN PRISAD
  13. 13. Great for io/bound cals“The second is, if you look at Node,the thing it’s best at doing is talkingto other services.” KIRAN PRISAD
  14. 14. Great for io/bound cals“The mobile app has to talk to ourplatform API and database. We’re notdoing massive data analytics.” KIRAN PRISAD
  15. 15. Huge perf gains“Node showed us huge performancegains compared to what we wereusing before, which was Ruby onRails.” KIRAN PRISAD
  16. 16. Source:
  17. 17. (EBAY): HTTP gatewaya declarative, evented, data-retrieval and aggregation gatewayfor HTTP APIs SUBBU ALLAMARAJU
  18. 18. Source:
  19. 19. What was important• Performance and scale for i/o bound workloads• Operability• Low per-connection memory overhead SUBBU ALLAMARAJU• Dynamic language support
  20. 20. Fast interations“Javascript and node.js allowed usto iterate very rapidly.” SUBBU ALLAMARAJU
  21. 21. rich ecosystem“Though we were initially concernedabout finding the right tools andlibraries, the node.js ecosystemproved sufficient for us to build ascomplex a system as” SUBBU ALLAMARAJU
  22. 22. SuperB scale“We were able to tune a regulardeveloper-quality Ubuntuworkstation to handle more than120,000 active connections pernode.js process, with each connectionconsuming about 2k memory.”SUBBU ALLAMARAJU
  23. 23. Non BLOCKING / simplified programming model“Node’s evented I/O model freed usfrom worrying about locking andconcurrency issues that are commonwith multithreaded async I/O.” SUBBU ALLAMARAJU
  24. 24. Source:
  25. 25. Walmart: mobile strategyIn a nutshell, Walmart is able toserve some very sophisticatedfeatures to mobile users on theclient side using Node. DION BEN ALMAER GALBRAITH
  26. 26. Walmart: BETter expErIENCe“It’s saving mobile shoppers a ton oftime by customizing content based ondevice type and browsercapabilities.” DION BEN ALMAER GALBRAITH
  27. 27. Javascript everywhere progressive enhancement“We’ve been fascinated for a long time byend-to-end JavaScript,” …“a website thatwould be rich and dynamic… on devicesthat weren’t too powerful.” DION BEN ALMAER GALBRAITH
  28. 28. Javascript everywhere progressive enhancement“Now, on Walmart’s re-engineered Node-powered mobile app, all the front-endcode gets executed on the back end.” DION BEN ALMAER GALBRAITH
  29. 29. Scale and flexibility“We rely on services all over theworld…We do not control all ofthose services.” DION BEN ALMAER GALBRAITH
  30. 30. Scale and flexibility“Node allows us to front all theseservices… and scale up very nicely.It’s perfect for what we’re doing inmobile.” DION BEN ALMAER GALBRAITH
  31. 31. Turner: Disruptive Thinking“At Turner, Node.js represents adisruption to the mainstreamthinking around how you buildapplications.” DON BROWNING
  32. 32. Turner: Disruptive Thinking“We found developers were over-engineering their code; writing codefor the sake of writing code. Weneeded to shake things up.” DON BROWNING
  33. 33. Turner: Startup Mentality“We’re also starting to behave morelike a startup, rather than anenterprise shop. Quick turn around,no ceremony, and finding theMinimum Viable Product.” DON BROWNING
  34. 34. Turner: Startup Mentality“We’ve found that being a part of theopen-source community reallyfacilitates this mindset.” DON BROWNING
  35. 35. The node toolbox
  36. 36. What’s in npm?API clients: 118 Message Queues: 15Boilerplates: 10 Module Loader: 11Build and deployment: 50 Monitoring and Alerting: 3Chat: 1 OpenSSL / Crypto / Hashing: 31Class systems: 11 Other: 35Compression: 16 Package Management Systems: 7Content Management Systems: 14 Parsers: 135Continuous Integration Tools: 3 Payment Gateways: 7Control flow / Async goodies: 78 RPC: 19CSS Engines: 12 SMTP: 11Database: 137 Sound: 2DDD, CQRS, EventSourcing: 10 TCP / IP: 54Debugging / console utilities: 75 Templating: 65Desktop application related: 2 Testing / Spec Frameworks: 75File system: 13 Web frameworks: 213Graphics: 39 Web Sockets & Ajax: 32IL18n and L10n modules: 17 Wrappers: 8JavaScript threads: 1
  37. 37. Contact再见