Upload
glenn-block
View
3.439
Download
5
Tags:
Embed Size (px)
DESCRIPTION
My keynote on node.js in the real world. Delivered at the InfoQ Arch Summit in ShenZhen
Citation preview
AND NPM IS OUTTA CONTROL
2011...
~1800 projects
730 active package authors
26 npm contributors
version 1.0 released
AND NPM IS OUTTA CONTROL
2012...~12000 PROJECTS
3800 ACTIVE PACKAGE AUTHORS
72 npm contributors
version 1.1.35 released
LINKEDIN: Node drives the mobile stack
“On the server side, our entire mobile software stack is completely built in Node,”
KIRAN PRISAD
Great for io/bound cals
“The second is, if you look at Node, the thing it’s best at doing is talking to other services.”
KIRAN PRISAD
Great for io/bound cals
“The mobile app has to talk to our platform API and database. We’re not doing massive data analytics.”
KIRAN PRISAD
Huge perf gains
“Node showed us huge performance gains compared to what we were using before, which was Ruby on Rails.”
KIRAN PRISAD
QL.io (EBAY): HTTP gateway
a declarative, evented, data-retrieval and aggregation gateway for HTTP APIs
SUBBU ALLAMARAJU
What was important
• Performance and scale for i/o bound workloads
• Operability• Low per-connection memory
overhead• Dynamic language support SUBBU ALLAMARAJU
rich ecosystem
“Though we were initially concerned about finding the right tools and libraries, the node.js ecosystem proved sufficient for us to build as complex a system as ql.io.”
SUBBU ALLAMARAJU
SuperB scale
“We were able to tune a regular developer-quality Ubuntu workstation to handle more than 120,000 active connections per node.js process, with each connection consuming about 2k memory.” SUBBU ALLAMARAJU
Non BLOCKING / simplified programming model
“Node’s evented I/O model freed us from worrying about locking and concurrency issues that are common with multithreaded async I/O.”
SUBBU ALLAMARAJU
Walmart: mobile strategy
In a nutshell, Walmart is able to serve some very sophisticated features to mobile users on the client side using Node.
DIONALMAER
BENGALBRAIT
H
Walmart: BETter expErIENCe
“It’s saving mobile shoppers a ton of time by customizing content based on device type and browser capabilities.”
DIONALMAER
BENGALBRAIT
H
Javascript everywhereprogressive enhancement
“We’ve been fascinated for a long time by end-to-end JavaScript,” …“a website that would be rich and dynamic… on devices that weren’t too powerful.”
DIONALMAER
BENGALBRAIT
H
Javascript everywhereprogressive enhancement
“Now, on Walmart’s re-engineered Node-powered mobile app, all the front-end code gets executed on the back end.”
DIONALMAER
BENGALBRAIT
H
Scale and flexibility
“We rely on services all over the world…We do not control all of those services.”
DIONALMAER
BENGALBRAIT
H
Scale and flexibility
“Node allows us to front all these services… and scale up very nicely. It’s perfect for what we’re doing in mobile.”
DIONALMAER
BENGALBRAIT
H
Turner: Disruptive Thinking
“At Turner, Node.js represents a disruption to the mainstream thinking around how you build applications.”
DON BROWNING
Turner: Disruptive Thinking
“We found developers were over-engineering their code; writing code for the sake of writing code. We needed to shake things up.”
DON BROWNING
Turner: Startup Mentality
“We’re also starting to behave more like a startup, rather than an enterprise shop. Quick turn around, no ceremony, and finding the Minimum Viable Product.”
DON BROWNING
Turner: Startup Mentality
“We’ve found that being a part of the open-source community really facilitates this mindset.”
DON BROWNING
What’s in npm?API clients: 118Boilerplates: 10Build and deployment: 50Chat: 1Class systems: 11Compression: 16Content Management Systems: 14Continuous Integration Tools: 3Control flow / Async goodies: 78CSS Engines: 12Database: 137DDD, CQRS, EventSourcing: 10Debugging / console utilities: 75Desktop application related: 2File system: 13Graphics: 39IL18n and L10n modules: 17JavaScript threads: 1
Message Queues: 15Module Loader: 11Monitoring and Alerting: 3OpenSSL / Crypto / Hashing: 31Other: 35Package Management Systems: 7Parsers: 135Payment Gateways: 7RPC: 19SMTP: 11Sound: 2TCP / IP: 54Templating: 65Testing / Spec Frameworks: 75Web frameworks: 213Web Sockets & Ajax: 32Wrappers: 8