O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Building production-quality apps with Node.js

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 21 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Building production-quality apps with Node.js (20)

Anúncio

Mais recentes (20)

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 the customer experience and work backwards 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.js Node.js is a platform for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model.
  9. 9. A match made in /dev/heaven SOCKET.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.Infrastructure 2.Codebase
  15. 15. What needs to scale? 1.Infrastructure (of course) 2.Codebase
  16. 16. Scaling your Node.js codebase with Architect http://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

Notas do Editor

  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

×