Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Getting small for the enterprise.

Beyond the
MEAN stack

@othiym23
forrest@newrelic.com
github.com/othiym23
you chose Node for a reason

Node is fast
Node is modular
Node is fun
so why turn it into something else?
Node is built on the
sound engineering
values:
low coupling
high cohesion
“

is the

of

Web development is more pattern-driven:
is this social media?
is this a storefront?
is this… is this a cms?...
moduletopia™
Node loves modules:
more all the time
available for almost every use case
pretty easy to understand
(mostly) ...
stacks: khakis of the internet

familiar: faster to build things you already know
comforting: already integrated / tested ...
stacks are sticky

opaque: full of implicit assumptions and requirements
complicated: hard to master, easy to break
monoli...
Node says: build only what you need.
one size does not fit all
one size does not fit all
one size does not fit all
some Node use cases
streaming
json apis
multiplexing
soft realtime
proxying
…you know, fast web servers
& some legacy glue
dat: scraping & etl
dinosaur taming: Oracle & xml
~50k modules: there’s a pony in there somewhere
Windo...
the zen of Node
self-contained: code over configuration
modular: inversion of control & direct dependency
injection
simple...
be nice, not mean
MEAN: MongoDB
instead of MongoDB: Redis
fast: data lives in memory
powerful: many different data types, lots of operations
flexible: man...
instead of MongoDB: MySQL*
“simple” and “fast” are its best features
time-tested
some data are just plain relational
can a...
instead of MongoDB: leveldb
a do-it-yourself dbms
rapidly-growing ecosystem
simple
not all there yet, but built on a solid...
MEAN: Express
instead of Express: hapi

plugins instead of middleware
configuration-centric
optimized for large teams
instead of Express: Restify
api “compatible” with Express’s
meant for building restful apis
optimized for json
instrumente...
instead of Express: Sails

actually built on top of Express
feels like Rails (including scaffolding)
realtime
stack-like, ...
MEAN: AngularJS
instead of Angular:
browserify
puts Node modules in your browser
puts Node ideology in your browser
everything’s on npm
fl...
instead of Angular: component

similar to browserify
built on GitHub
not so much with the asset pipeline
more focused on c...
instead of Angular:
bower / Yeoman

an integrated, browserfocused workflow
very rich asset pipeline
good for client-first
...
MEAN: Node.js
Beyond the MEAN Stack: Thinking Small with Node.js for the Enterprise
Upcoming SlideShare
Loading in …5
×

Beyond the MEAN Stack: Thinking Small with Node.js for the Enterprise

9,382 views

Published on

Presentation from Node Summit 2013. You could be using Node as one component of a larger stack, but to do so would be wasting a lot of Node's most powerful features, including its huge ecosystem and thriving community.

Published in: Technology
  • Be the first to comment

Beyond the MEAN Stack: Thinking Small with Node.js for the Enterprise

  1. 1. Getting small for the enterprise. Beyond the MEAN stack @othiym23 forrest@newrelic.com github.com/othiym23
  2. 2. you chose Node for a reason Node is fast Node is modular Node is fun
  3. 3. so why turn it into something else?
  4. 4. Node is built on the sound engineering values: low coupling high cohesion
  5. 5. “ is the of Web development is more pattern-driven: is this social media? is this a storefront? is this… is this a cms? .”
  6. 6. moduletopia™ Node loves modules: more all the time available for almost every use case pretty easy to understand (mostly) on GitHub (mostly) freely usable
  7. 7. stacks: khakis of the internet familiar: faster to build things you already know comforting: already integrated / tested / shipped easy: developers only need master one set of tools
  8. 8. stacks are sticky opaque: full of implicit assumptions and requirements complicated: hard to master, easy to break monolithic: have to pay for the whole thing (but only using some of it)
  9. 9. Node says: build only what you need.
  10. 10. one size does not fit all
  11. 11. one size does not fit all
  12. 12. one size does not fit all
  13. 13. some Node use cases streaming json apis multiplexing soft realtime proxying …you know, fast web servers
  14. 14. & some legacy glue dat: scraping & etl dinosaur taming: Oracle & xml ~50k modules: there’s a pony in there somewhere Windows: best support of any of the major scripting languages
  15. 15. the zen of Node self-contained: code over configuration modular: inversion of control & direct dependency injection simple: one small thing in one short file and so: easy for new people to pick up, easy to maintain
  16. 16. be nice, not mean
  17. 17. MEAN: MongoDB
  18. 18. instead of MongoDB: Redis fast: data lives in memory powerful: many different data types, lots of operations flexible: many options for high availability and clustering a veteran: battle-tested in Node
  19. 19. instead of MongoDB: MySQL* “simple” and “fast” are its best features time-tested some data are just plain relational can actually be managed * or PostgreSQL (<3 )
  20. 20. instead of MongoDB: leveldb a do-it-yourself dbms rapidly-growing ecosystem simple not all there yet, but built on a solid foundation
  21. 21. MEAN: Express
  22. 22. instead of Express: hapi plugins instead of middleware configuration-centric optimized for large teams
  23. 23. instead of Express: Restify api “compatible” with Express’s meant for building restful apis optimized for json instrumented for operational monitoring
  24. 24. instead of Express: Sails actually built on top of Express feels like Rails (including scaffolding) realtime stack-like, but still a creature of parts
  25. 25. MEAN: AngularJS
  26. 26. instead of Angular: browserify puts Node modules in your browser puts Node ideology in your browser everything’s on npm flexible packaging pipeline good for Node-first developers
  27. 27. instead of Angular: component similar to browserify built on GitHub not so much with the asset pipeline more focused on client-side development than browserify
  28. 28. instead of Angular: bower / Yeoman an integrated, browserfocused workflow very rich asset pipeline good for client-first developers
  29. 29. MEAN: Node.js

×