Matt Pardee, Developer Evangelist         @matt_pardee           http://c9.io
What is Cloud9 IDE?• Full-blooded IDE in the browser•   BitBucket and Github•   FTP•   Deploy your apps•   Run and debug N...
Building production-quality apps          with Node.js
Making the case for Node.js        The User
“You have to start with thecustomer experience and workbackwards to the technology.”                      - Steve Jobs
The User• Web apps aren’t the only use for Node, but...• Web apps have the most potential to effect change• Why? It’s abou...
Engagement starts with a proper foundation          SOCKET.IO
Node.jsNode.js is a platform for easily building fast,scalable network applications.Node.js uses an event-driven, non-bloc...
A match made in /dev/heavenSOCKET.IO     & NODE.JS
Cloud9. Powered by node.js.• What does a user look like to Cloud9?  •   Cloning codebases  •   Debugging node.js apps  •  ...
A great user experience requires:      non-blocking execution                  &   bi-directional communication
Building production-quality apps      with Node.js, part II           Scaling
Scaling is successful when...the container expands, and     it’s easy to expand
What needs to scale?1.Infrastructure2.Codebase
What needs to scale?1.Infrastructure (of course)2.Codebase
Scaling your Node.js codebase         with Architecthttp://github.com/c9/architect
Architect• A simple yet powerful plugin system for large-scale  node apps• A plugin may provide one or more services• A pl...
Architect : A Simple Example        1. Config.js specifies plugins & options          module.exports = [            { packag...
Architect : A Simple Example    3. Auth plugin registers its interface    module.exports = function setup(options, imports...
Architect : What’s so great?•   Plugin system creates a pool of shared resources                                          ...
Wrap-Up•   Node.js is brilliant for modern web apps•   If your most important metric is user engagement, choose node for a...
Upcoming SlideShare
Loading in …5
×

Building production-quality apps with Node.js

2,103 views
1,867 views

Published on

First presented at DevConf.ru, this presentation makes the case for Node.js as the best platform for user engagement, and discusses Cloud9 IDE's open-source platform for Node apps, Architect.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,103
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
32
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Building production-quality apps with Node.js

    1. 1. Matt Pardee, Developer Evangelist @matt_pardee http://c9.io
    2. 2. What is Cloud9 IDE?• Full-blooded IDE in the browser• BitBucket and Github• FTP• Deploy your apps• Run and debug Node.js (stepper, call stack, watchers, live execute)• Basic autocomplete and JavaScript validation
    3. 3. Building production-quality apps with Node.js
    4. 4. Making the case for Node.js The User
    5. 5. “You have to start with thecustomer experience and workbackwards to the technology.” - Steve Jobs
    6. 6. The User• Web apps aren’t the only use for Node, but...• Web apps have the most potential to effect change• Why? It’s about people• The old metric was speed• The new metric is engagement
    7. 7. Engagement starts with a proper foundation SOCKET.IO
    8. 8. Node.jsNode.js is a platform for easily building fast,scalable network applications.Node.js uses an event-driven, non-blockingI/O model.
    9. 9. A match made in /dev/heavenSOCKET.IO & NODE.JS
    10. 10. Cloud9. Powered by node.js.• What does a user look like to Cloud9? • Cloning codebases • Debugging node.js apps • Running “pwd”, “mkdir”, “npm”, “git”, “hg” in the CLI • Deploying an application
    11. 11. A great user experience requires: non-blocking execution & bi-directional communication
    12. 12. Building production-quality apps with Node.js, part II Scaling
    13. 13. Scaling is successful when...the container expands, and it’s easy to expand
    14. 14. What needs to scale?1.Infrastructure2.Codebase
    15. 15. What needs to scale?1.Infrastructure (of course)2.Codebase
    16. 16. Scaling your Node.js codebase with Architecthttp://github.com/c9/architect
    17. 17. Architect• A simple yet powerful plugin system for large-scale node apps• A plugin may provide one or more services• A plugin’s services is exposed via register• Each plugin can communicate with other plugins
    18. 18. Architect : A Simple Example 1. Config.js specifies plugins & options module.exports = [ { packagePath: "architect-http", port: 8080 }, { packagePath: "architect-http-static", root: "www" }, "./plugins/calculator", "./plugins/db", "./plugins/auth" ] 2. Application entry point (server.js) initiates architect var path = require(path); var architect = require("architect"); var configPath = path.join(__dirname, "config.js"); var config = architect.loadConfig(configPath); architect.createApp(config, function (err, app) {});
    19. 19. Architect : A Simple Example 3. Auth plugin registers its interface module.exports = function setup(options, imports, register) { // "database" was a service this plugin consumes var db = imports.database; register(null, { // "auth" is a service this plugin provides auth: { users: function (callback) { db.keys(callback); }, authenticate: function (username, password, callback) { db.get(username, function (user) { if (!(user && user.password === password)) { return callback(); } callback(user); }); } } }); };
    20. 20. Architect : What’s so great?• Plugin system creates a pool of shared resources Adds to the pool Draws from the pool• Plugins are reusable• Plugins can be either in the repo or as NPM packages• All your existing uses for Node are still in tact
    21. 21. Wrap-Up• Node.js is brilliant for modern web apps• If your most important metric is user engagement, choose node for at least one part of your app• github.com/c9/architect for your next node application• Check out c9.io for major updates coming at the end of the month

    ×