В настоящее время мы используем следующую стратегию развертывания:
- Запустите пакет script, чтобы очистить все временные файлы ASP.NET
- Запустите пакет script, который скомпилирует каждый файл ASPX в свою собственную DLL (веб-сайт ASP.NET , а не веб-приложение)
- Скопируйте каждый индивидуально измененный файл (ASPX и DLL) в соответствующую папку на реальном сервере.
- Откройте папку
Deployment Scripts
, запустите каждый SQL script (изменения таблицы, сохраненные процессы и т.д.) вручную в производственной базе данных. - Произнесите молитву перед сном (шутите на этом, может быть)
- Проверяйте первое на следующее утро и надейтесь на лучшее - исправить ошибки по мере их появления.
Мы несколько раз укусались в прошлом, потому что кто-то забудет запустить script или подумает, что они что-то запускали, но не сделали, или перезаписали sproc, связанный с некоторым модулем, потому что есть два файла (один из них папку Sprocs и одну в папке [ModuleName]) или скопировали неправильную DLL (так как они могут иметь те же имена, что и случайный буквенно-цифровой номер, сгенерированный .NET).
Это кажется мне очень неэффективным - много ручных вещей и склонность к ошибкам. Иногда разработчику может потребоваться 2-3 или более часа для развертывания (мы делаем их поздно ночью, например, около полуночи) из-за всех шагов руководства и запоминания того, какие файлы нужно скопировать, где их нужно скопировать, какие сценарии нужно запускать, чтобы убедиться, что скрипты запущены в правильном порядке и т.д.
У нас есть полученный, чем два часа для копирования и вставки отдельных ASPX-страниц, библиотек DLL, изображений, таблиц стилей и т.д. и запускать около 30 + SQL-скриптов вручную. Мы используем SVN в качестве нашей системы управления версиями (главным образом, только для обновления/фиксации, хотя мы не занимаемся ветвлением), но не имеют модульных тестов или стратегии тестирования. Есть ли какой-то инструмент, который я могу изучить, чтобы помочь нам сделать наши развертывания более плавными?