Как Вы развертываете свои приложения ASP.NET для проживания серверов?

Как насчет grep:

pwd | grep -o '[^/]*
103
задан 2 revs 17 July 2009 в 14:10
поделиться

7 ответов

У нас есть весь наш код, развернутый в MSI. с помощью Setup Factory. Если что-то нужно изменить, мы повторно развертываем все решение. Это звучит излишне для файла css, но он полностью поддерживает синхронизацию всех сред, и мы точно знаем, что находится в производстве (мы развертываем во всех тестовых средах и средах uat одинаково).

25
ответ дан 24 November 2019 в 04:22
поделиться

Мы выполняем последовательное развертывание на действующих серверах, поэтому мы не используем проекты установщика; у нас есть что-то вроде CI:

  • «живые» сборки сервера сборки из одобренного источника (не «HEAD» репозитория)
  • (после того, как он сделал резервную копию ;-p )
  • robocopy публикует на промежуточном сервере («живом», но не в кластере F5)
  • окончательную проверку, выполняемую на промежуточном сервере, часто с использованием «хакерских атак», чтобы максимально точно имитировать все
  • ] robocopy / L используется автоматически для распространения списка изменений в следующем «толчке», чтобы предупреждать о любых ошибках
  • как часть запланированного процесса, кластер циклически повторяется, развертывание на узлах в кластере с помощью robocopy (когда они находятся вне кластера)

robocopy автоматически обеспечивает развертывание только изменений.

Re the App Pool и т. д .; Я бы хотел, чтобы это было автоматизировано ( см. Этот вопрос ), но в момент это выполняется вручную. Однако я действительно хочу это изменить.

(вероятно, помогает то, что у нас есть собственный центр обработки данных и серверная ферма «на месте», так что нам не нужно преодолевать множество препятствий)

19
ответ дан 24 November 2019 в 04:22
поделиться

Простой XCopy для ASP.NET. Заархивируйте его, отправьте sftp на сервер, извлеките в нужное место. Для первого развертывания необходимо вручную настроить IIS

4
ответ дан 24 November 2019 в 04:22
поделиться

Еще в 2009 году, откуда пришел этот ответ, мы использовали CruiseControl.net для наших сборок непрерывной интеграции, которые также выводили Release Media.

Оттуда мы использовали программное обеспечение Smart Sync для сравнения с производственным сервером, который был вне пула с балансировкой нагрузки, и переместил изменения вверх.

Наконец, после проверки выпуска мы запустили сценарий DOS, который в основном использовал RoboCopy для синхронизации кода с живые серверы, останавливая / запуская IIS по ходу работы.

2
ответ дан 24 November 2019 в 04:22
поделиться

Ответы на ваши вопросы:

  1. XCopy
  2. Вручную
  3. Для статических ресурсов мы развертываем только измененный ресурс.
    Для DLL мы развертываем измененные страницы DLL и ASPX.
  4. Да, и да.

Сохранение простоты и простоты пока избавило нас от многих головных болей.

4
ответ дан 24 November 2019 в 04:22
поделиться

Чтобы подробнее рассказать об ответах других людей, кажется, что лучший способ сделать это, не дублируя один и тот же код в нескольких шаблонах, - просто иметь «лишний материал». функция (пустая для большинства типов данных, но содержащая код для любых объектов, которые имеют дополнительные данные), где «специализация шаблона» выбирает, какие «дополнительные данные»

3
ответ дан 24 November 2019 в 04:22
поделиться

Я развертываю в основном приложения ASP.NET на серверах Linux и повторно развертываю все даже при малейших изменениях. Вот мой стандартный рабочий процесс:

  • Я использую репозиторий исходного кода (например, Subversion)
  • На сервере у меня есть сценарий bash, который выполняет следующие действия:
    • Проверяет последний код
    • Выполняет сборку (создает библиотеки DLL)
    • Фильтрует файлы до самого необходимого (например, удаляет файлы кода)
    • Создает резервную копию базы данных
    • Развертывает файлы в веб-сервер в каталоге, названном с текущей датой
    • Обновляет базу данных, если в развертывание включена новая схема
    • Делает новую установку установленной по умолчанию, поэтому она будет обслужена при следующем обращении

Checkout is выполняется с помощью версии Subversion для командной строки, а сборка выполняется с помощью xbuild (работа с msbuild аналогична проекту Mono). Большая часть магии выполняется в ReleaseIt.

На моем сервере разработки у меня, по сути, есть непрерывная интеграция, но на производственной стороне я фактически подключаюсь к серверу по SSH и инициирую развертывание вручную, запустив сценарий. Мой сценарий хитроумно назван «развертывание», поэтому я набираю его в командной строке bash. Я очень креативный. Нет.

В производственной среде я должен ввести «deploy» дважды: один раз для извлечения, сборки и развертывания в устаревшем каталоге и один раз, чтобы сделать этот каталог экземпляром по умолчанию. Поскольку каталоги устарели, я могу вернуться к любому предыдущему развертыванию, просто набрав «развернуть» в соответствующем каталоге.

Первоначальное развертывание занимает пару минут, а возврат к предыдущей версии - несколько секунд.

Это было отличное решение для меня, и оно полагалось только на три утилиты командной строки (svn, xbuild и releaseit), клиент БД, SSH и Bash.

Мне действительно нужно когда-нибудь обновить копию ReleaseIt на CodePlex:

http://releaseit.codeplex.com/

5
ответ дан 24 November 2019 в 04:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: