En teoria, se deben probar todos los cambios del sistema antes de implementarlo en produccion, y tener un servidor de "staging" que replique el de produccion para hacer los test y luego migrar todo a produccion.
En la practica:
1- Si no sabes mucho de seguridad, no sigues el tema a fondo y no sabes como evaluar los problemas, es mejor que sea automatico (y puedes sobrevivir a un downtime)
2- Si la aplicacion es critica y el downtime es algo muy indiseable, es posiblemente mejor manual.
Pero en general, yo digo que es mejor automatico. Es mucho mejor que tengas la forma de hacer un deploy superrapido y replicable (esto es: Que puedas partir desde un click a un servidor ubuntu identico a lo que necesitas con datos y todo, sin pasos manuales y en minutos).
Asi es como se opera en los servicios en la "nube" como
www.heroku.com. Hay varios productos que sirven para hacer lo mismo en entornos intranet, y creo que
https://www.docker.io/ es el que se esta imponiendo ahora.
Por ejemplo, para desplegar mi sitio hago:
5 minutos despues esta todo arriba de nuevo.