I've been working on a system that requires exceptionally high uptime. As such, making major releases takes a couple weeks of testing and preparation. I usually end up doing these releases at 2 am; they are fully automated and things almost always go off without a hitch.
It is somewhat anticlimactic though - there is a 30 second service interruption while perlbal and mod_perl shut down, the postgresql database is upgraded in place, and then perlbal and mod_perl start up again. So all of my work is done upfront; reminds me of the scene from the movie "Lost in Space" where the Jupiter One is ready to launch, and the pilot says "And the monkey pushes the button."