Развертывание приложений ASP.NET: Push против Pull? - PullRequest
3 голосов
/ 17 сентября 2009

Как вы развертываете приложения ASP.NET? Вы отправляете его на рабочие серверы, используя пути UNC / сопоставленные диски? FTP? SFTP? SSH / SCP (через стороннее приложение установлено)? Что-то другое? Или вы вытаскиваете его с рабочих серверов с обновлением контроля исходного кода или другим механизмом? Учитывая, что рабочие серверы находятся в Интернете или в демилитаризованной зоне, push требует открытия незащищенных портов брандмауэра (для UNC или FTP), не так ли?

Я пытаюсь закрепить свою философию развертывания для ASP.NET. К моим идеальным процессам сборки / развертывания одним щелчком относятся следующие: MSBuild, проекты веб-развертывания, CruiseControl.NET. Но я все еще борюсь с тем, как на самом деле доставить биты на рабочий сервер.

Проведя время на платформах Windows и * nix, я разочарован историей развертывания Windows, и мне любопытно, как это делают другие.

Ответы [ 2 ]

2 голосов
/ 18 сентября 2009

Вот как мы публикуем:

  • Публикация из Visual Studio в локальную папку
  • Удалите некоторые ненужные файлы и папки (например, пустую папку веб-ссылок, которую она создает без видимой причины ...)
  • Zip
  • Использование удаленного рабочего стола для копирования на сервер стадии
  • Распаковать во временную папку на сайте (это дает файлам необходимые разрешения)
  • Переместить текущие файлы в резервную папку
  • Переместить новые файлы на сайт
  • Проверьте, работает ли он на промежуточном сервере
  • Запустить скрипт (настроенный хостинговой компанией), который копирует файлы на два интерфейсных сервера

(Однако у нас возникли некоторые аппаратные проблемы с одним из интерфейсных серверов, поэтому в качестве краткосрочного (?) Решения нам пришлось заимствовать другой сервер в качестве сервера шрифтов, и сценарий не копирует файлы на этот сервер. Таким образом, в прошлом году или около того мне пришлось использовать удаленный рабочий стол для входа на работающий сервер, вручную копировать файлы, перемещать текущие файлы в резервную папку и перемещать новые файлы на месте.)

2 голосов
/ 17 сентября 2009

Я пользуюсь cruisecontrol.net и очень доволен этим. У меня есть скрипт Nant, который вызывает круиз-контроль, который:

  1. Получает источник из нашей промежуточной ветки SVN
  2. Строит его
  3. Копирует файлы на каждый производственный сервер
  4. Создает тег в нашей производственной ветке в svn, поэтому у нас есть снимок того, что было отправлено.

Отлично работает! Мы делали это все вручную год назад, и я не могу сказать вам, насколько это лучше. Существует небольшая кривая обучения и некоторые предварительные сценарии написания. Это может занять пару дней, но в итоге вы сэкономите гораздо больше времени.

...