То, что мы делаем с помощью TeamCity, - это сборка, а затем регистрация двоичных файлов в отдельный BINARY SVN для ТЕСТА с использованием SVN LOAD_DIRS. Разверните эти биты на серверах TEST. Если они хорошо выглядят, вручную запустите другую задачу CI, которая использует SVN LOAD_DIRS второй раз, чтобы скопировать биты в репозиторий PRODUCTION SVN, а затем развернуть эти биты в рабочей среде.
Преимущество этого в том, что у вас есть копия точных битов, которые вы развернули на каждом сервере, и вы можете легко откатиться назад или можете проверить любую конкретную версию (скажем, в прошлую пятницу) и протестировать ее. Вы также можете вносить изменения в файлы конфигурации в бинарной версии и развертывать их в рабочей среде, сохраняя при этом записи о том, кто что изменил и когда это сделал.
Это также дает вам систему развертывания с атомарными свойствами - то есть вы получаете все или ничего при попытке обновить серверы до новой версии, а не частичное / неудачное развертывание.
Еще одним преимуществом является то, что вы можете хирургическим путем заменить отдельные файлы контента в производстве на последнюю версию, проверив только эти отдельные измененные файлы - удобная функция в 16:00 в пятницу, когда вы не рискуете полным развертыванием на случай, если некоторые другие изменения проникли в двоичные файлы.
Я не вижу сценария, когда нам бы хотелось, чтобы прямое развертывание в LIVE - звучит рискованно.