Microsoft, digging node
Node, GAINING A LOT OF
       INTEREST
NEW JOBS are exploding
SERIOUS adopters
Source: https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-
Using-Node
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...


     72 npm contributors

    version 1.1.35 released
WHY???
Source: http://venturebeat.com/2011/08/16/linkedin-mobile-app/
LINKEDIN:
Node drives the mobile stack
“On the server side, our entire
mobile software stack is completely
built in Node,”



                           KIRAN PRISAD
Source: http://www.slideshare.net/phegaro/linkedin-mobile-how-do-we-do-it
SCALE
“One reason was scale.”




                          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
Source: http://www.ebaytechblog.com/2011/11/30/announcing-ql-io//
QL.io (EBAY): HTTP gateway
a declarative, evented, data-
retrieval and aggregation gateway
for HTTP APIs


                           SUBBU ALLAMARAJU
Source: http://www.slideshare.net/phegaro/linkedin-mobile-how-do-we-do-it
What was important
• Performance and scale for i/o
  bound workloads
• Operability
• Low per-connection memory
  overhead
                            SUBBU ALLAMARAJU
• Dynamic language support
Fast interations
“Javascript and node.js allowed us
to iterate very rapidly.”



                            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
Source: http://venturebeat.com/2012/01/24/why-walmart-is-using-node-js/
Walmart: mobile strategy
In a nutshell, Walmart is able to
serve some very sophisticated
features to mobile users on the
client side using Node.



                             DION       BEN
                            ALMAER   GALBRAITH
Walmart: BETter
         expErIENCe
“It’s saving mobile shoppers a ton of
time by customizing content based on
device type and browser
capabilities.”



                             DION       BEN
                            ALMAER   GALBRAITH
Javascript everywhere
   progressive 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.”




                                 DION       BEN
                                ALMAER   GALBRAITH
Javascript everywhere
   progressive enhancement
“Now, on Walmart’s re-engineered Node-
powered mobile app, all the front-end
code gets executed on the back end.”




                               DION       BEN
                              ALMAER   GALBRAITH
Scale and flexibility
“We rely on services all over the
world…We do not control all of
those services.”




                             DION       BEN
                            ALMAER   GALBRAITH
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.”



                              DION       BEN
                             ALMAER   GALBRAITH
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
The node toolbox
What’s in npm?
API clients: 118                    Message Queues: 15
Boilerplates: 10                    Module Loader: 11
Build and deployment: 50            Monitoring and Alerting: 3
Chat: 1                             OpenSSL / Crypto / Hashing: 31
Class systems: 11                   Other: 35
Compression: 16                     Package Management Systems: 7
Content Management Systems: 14      Parsers: 135
Continuous Integration Tools: 3     Payment Gateways: 7
Control flow / Async goodies: 78    RPC: 19
CSS Engines: 12                     SMTP: 11
Database: 137                       Sound: 2
DDD, CQRS, EventSourcing: 10        TCP / IP: 54
Debugging / console utilities: 75   Templating: 65
Desktop application related: 2      Testing / Spec Frameworks: 75
File system: 13                     Web frameworks: 213
Graphics: 39                        Web Sockets & Ajax: 32
IL18n and L10n modules: 17          Wrappers: 8
JavaScript threads: 1
Contact info
gblock@microsoft.com
@gblock




再见

Node js - Enterprise Class

Editor's Notes

  • #42 http://www.flickr.com/photos/gregrk/1426969126/sizes/z/in/photostream/