====== Ressources pour Node.js ====== ===== Basic resources ===== * Install: http://joyeur.com/2010/12/10/installing-node-and-npm/ * Wiki: https://github.com/joyent/node/wiki/ * [[http://gruntjs.com/|Grunt]]: Make for Node.JS ===== Packages ===== * Déboguage: [[https://github.com/node-inspector/node-inspector|Node Inspector]] * Injection de dépendances: [[https://github.com/bookalokal/omni-di|Omni-DI]] * Logging: [[https://github.com/bpaquet/log4node#readme|Log4Node]] * Middleware (catalogue d'autres middlewares assemblés): Connect * [[http://senchalabs.github.com/connect/|Connect]] * [[http://tjholowaychuk.com/post/664516126/connect-middleware-for-nodejs|Intro à Connect]] * Multi-process [[https://github.com/LearnBoost/cluster|Cluster]] * Profiling [[http://strongloop.com/node-js-performance/strongops/|StrongOps]] née Nodefly * Option parsing: [[https://github.com/substack/node-optimist#readme|Optimist]] * Support pour Rackspace Cloudfiles [[https://github.com/nodejitsu/node-cloudfiles|Node CloudFiles]] * Synchronisation * [[https://github.com/caolan/async|Async]] * [[https://github.com/kriskowal/q|Q]] (promises/A) * Démonisation (cf NWD pp. 30-31): * Debian * [[http://people.debian.org/~enrico/launchtool.html|Launchtool]]: non spécifique à Node.js, mais peut être utilisé pour lancer n'importe quelle commande comme un démon * MacOS X * [[http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/Introduction.html|Launchd]] * Node: * [[https://github.com/frodwith/node-init|Node Init]] * Inclus dans Connect (cf supra) * Run: * [[https://github.com/remy/nodemon|Nodemon]] plutôt pour dév. * [[https://github.com/Unitech/pm2|PM2]] plutôt pour prod. * [[http://github.com/nodejitsu/forever|Forever]]. plutôt pour prod, mais moins évolué que PM2[[http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever|Intro]] * [[https://github.com/pgte/fugue|Fugue]] abandonné * [[http://upstart.ubuntu.com|Upstart]] * [[https://github.com/shimondoodkin/nodejs-autorestart|Node.js Autorestart]] * [[http://caolanmcmahon.com/posts/deploying_node_js_with_upstart|Deploying Node.js with Upstart]] * [[http://howtonode.org/deploying-node-upstart-monit|Deploying Node.js with Upstart and Monit]] ===== Présentations ===== {{ :no:node-perf.png?300|}} * [[http://al3x.net/2010/07/27/node.html|Scaling in the small vs scaling in the large]] (No silver bullet) Alex Payne - 2010-07 ^ -c ^ req/s ^ ms/req ^ s/req concurrent ^ kB/s ^ req/s ^ ms/req ^ s/req conc. ^ kB/s ^ | 1 | 435 | 2,3 | 2,300 | 445260 | 808 | 1,2 | 1.237 | 827989 | | 2 | 709 | 2,8 | 1,409 | 726642 | 1371 | 1,4 | 0.729 | 1403868 | | 4 | 750 | 5,3 | 1,332 | 768830 | 1701 | 2,4 | 0.588 | 1742441 | | 8 | 744 | 11 | 1,344 | 761878 | 1793 | 4.5 | 0.558 | 1836648 | | 16 | 785 | 20 | 1,274 | 803989 | 1737 | 9.2 | 0.576 | 1779313 | | 32 | 788 | 41 | 1,269 | 806942 | 1709 | 18.7 | 0.585 | 1749765 | | 64 | 794 | 81 | 1,259 | 813371 | 1713 | 37.4 | 0.584 | 1753895 | | 128 | 780 | 160 | 1,282 | 798793 | 1175 | 108.9 | 0.851 | 1203281 | | 256 | 793 | 320 | 1,261 | 811972 | 1334 | 191.9 | 0.750 | 1366062 | | 512 | 758 | 680 | 1,319 | 776521 | 1053 | 486.3 | 0.950 | 1078200 | | 1000 | 692 | 1400 | 1,443 | 709524 | 986 | 1014.4 | 1.014 | 1009506 | {{ :no:cinco-i7.png?300|}} * [[http://nodejs.org/cinco_de_node.pdf|Cinco de Node]] - Ryan Dahl - 2010 * Dans la présentation, 822 req/s. RAM node max: 60 Mo * Test sur Q6600, node 0.64, ab -n10000, RAM node max: 20 Mo, puis sur Core i7 2.3 GHz. * [[http://www.synchrosinteractive.com/blog/9-nodejs/22-nodejs-has-a-bright-future|Node.js has a bright future]] Dustin Mcquay, 2010-04 * [[http://four.livejournal.com/963421.html?thread=2542173|My next project]] Au commencement... - Ryan Dahl - 2009-02 ===== Services ===== * Cloud hosting * http://nodejitsu.com/