Those coming in from the Ruby world are probably well familiar with Unicorn.
You start a few workers, you update your code, send a USR2 signal to the master process and boom a new set of workers are running with the new code.
Node JS makes this a little more painful, but there is a very nice solution to it - Naught.
We have been using Naught in production for a while now, it gives us a very clean deploy with Zero down and happy users.
I've created a simple Template repository -
It includes a stack of best-of-breed node.js modules of what we've found to be stable and performant on top of express for a production service node service.