У нас есть выделенные серверы DEV, TEST, STAGE и PRODUCTION.
У нас также есть специальная сборочная машина с круиз-контролем.
Круиз-контроль настроен для сборки Continuous Integration, которая запускается после регистрации кода. Он также настроен для отдельных задач разработки, QA, Stage и Production.
Для развертывания в разработке код сначала извлекается из SVN и создается, затем папка «Precompiled Web» копируется на веб-сайт разработки, а проект веб-службы копируется на сервер приложений разработки. Круиз-контроль также настроен для «маркировки» исходного кода перед началом сборки, чтобы мы могли воспроизвести сборку позже или перейти от тега, если нам нужно выполнить оперативное исправление.
Для развертывания в QA файлы копируются с машин разработки на машины QA.
Аналогично, для развертывания в Stage файлы копируются с компьютеров QA на компьютеры Stage.
Наконец, для развертывания в производство файлы снова копируются с компьютеров Stage на компьютеры производства.
Для настройки каждой среды у нас есть специальный инструмент, который является частью задачи круиз-контроля в каждой среде, которая изменяет строки подключения, «debug = true | false», «customErrors = Off | RemoteOnly» и другие параметры, относящиеся к среде.
Таким образом, каждая среда может быть развернута нажатием кнопки на панели круиз-контроля.
Одно предостережение: у нас в настоящее время настроен пароль рабочей базы данных в конфигурационном файле Cruise Control ... было бы неплохо перенести его в другое место!
Наконец, позвольте мне добавить, что, несмотря на то, что наши производственные машины находятся в выделенном хостинге, серверы доступны с нашего компьютера Cruise Control, что упрощает производственное развертывание. Единственный шаг вручную - зашифровать файлы web.config и удалить файл «AppOffline.html», который выдает круиз-контроль.
Дайте мне знать, если это поможет, или если у вас есть какие-либо вопросы.
Спасибо!