У меня есть приложение, состоящее из веб-приложения ASP.NET, нескольких служб Windows и базы данных SQL Server 2005. Это приложение реплицируется на несколько сайтов, поэтому на каждом сайте есть сервер, содержащий все части (веб-приложение, службы и БД). В настоящее время процесс развертывания обновлений выглядит так:
База данных
- Изменения базы данных сценариев (с использованием функции «Создать сценарии» в Management Studio).
- Подключение к базе данных сайта в Management Studio.
- Запуск сценария SQL в базе данных сайта.
- Повторите 2 и 3 для каждого сайта.
Веб-приложение
- Использовать публикацию в Visual Studio.
- Удалить web.config из опубликованной копии.
- Zip-файлы веб-приложений.
- Копирование zip-файла на сайт.
- Удаленный рабочий стол на этот сайт для распаковки файлов.
- Вручную измените web.config при необходимости.
- Повторите 4-6 для каждого сайта.
Службы Windows
- Сборка проекта в Visual Studio.
- Восстановленные двоичные файлы на молнии.
- Скопировать zip-файл на сайт.
- Удаленный рабочий стол на этот сайт.
- Остановить службу.
- Удалите старую версию.
- Установите новую версию.
- Вручную измените .config при необходимости.
- Запустите сервис.
- Повторите 3-9 для каждого сайта.
В настоящее время есть 3 сайта, и развертывание является раздражающим, но управляемым, однако в течение года у нас, скорее всего, будет 10 или 11 сайтов, и необходимость развертывания обновлений таким образом сделает меня самоубийством.
Итак, я ищу предложения о том, как автоматизировать этот процесс. Я начал изучать MSBuild для слияния конфигураций и копирования файлов на мои серверы, но я не уверен, как далеко я это уйду. Спасибо.