On Fri, 17 Dec 2010, Ryan Davis wrote:
While having a long-running process on the server is appealing, we decided to spend our engineering time on making the lisp process easy to start, stop, restart, and deploy.
I agree, very valuable. More so than live updating.
Personally, doing a lot of direct patching to a production system scares me. I worry about introducing bugs/hidden dependencies that wouldn't be represented in source code, and getting conflicts between multiple developers updating the same lisp.
One thing I do is rebuild the image from scratch, then test that (on a different port or system, maybe). If everything checks out, *and* I want to update without downtime (because it's only on 1 system for example), *then* I attach to the existing process and load up the new stuff.
If something goes wrong, well, I now have downtime anyway, but have the clean image available for a restart. But if everything appears fine, I might schedule a restart for some future time anyway.
So, there's a nice continuum to find a solution to fit your needs.
-David