Три категории машин: development, preProd, Production.

На development я разрабатываю, обычная такая грязная разработка. У меня даже вебсервер не настроен, так как использую php-ный. После того, как убедился в том, что все ок (а именно на локальной машине я больше всего тестирую), то грузим на preProd. preProd настроен максимально схоже с prod. На нем оттачиваем процедуру обновления и еще раз тестим. Далее заливаем на prod. Все махинации с файлами делаем через git (как бы я без него жил).

schema