Подтвердить что ты не робот

Какой метод вы используете для развертывания приложений ASP.Net в дикой природе?

В настоящее время мы развертываем скомпилированные приложения ASP.Net, публиковав веб-сайт локально и отправляя по электронной почте zip файл системному администратору с (как правило) длинным набором инструкций для развертывания. Это связано с тем, что в первый раз, когда мы применили приложение ASP.Net к клиенту, демон и тестовый экземпляр IIS были одинаковыми, и мы не смогли дважды развернуть сайт на одном компьютере. Это задает тон для развертывания во всех последующих проектах.

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

Во-вторых, я рассматриваю слияние развертываний и автоматических обновлений.

Как вы собираетесь развертывать программное обеспечение в своей организации? Какие инструменты вы используете и какие проблемы вы чаще всего встречаете?

4b9b3361

Ответ 1

Развертывание веб-приложений с помощью веб-инструмента копирования
Текст из Microsoft Training Kit Book Веб-разработка
Проекты веб-настройки полезны, если вы предоставляете веб-приложение для многих пользователей (например, позволяя пользователям загружать приложение из Интернета и устанавливать его). Если вы несете ответственность за обновление определенного веб-сайта для своей организации, нецелесообразно регистрироваться на веб-сервере и устанавливать пакет установщика Windows при каждом обновлении. Для внутренних приложений вы можете редактировать веб-приложение непосредственно на веб-сервере. Однако сделанные вами изменения немедленно реализуются в вашем веб-приложении для производства, и это включает в себя любые ошибки, которые могут быть там. Чтобы вы могли протестировать веб-приложение, вы можете отредактировать локальную копию веб-приложения на своем компьютере и опубликовать изменения на веб-сервере производства с помощью инструмента "Копирование веб-страниц". Вы также можете использовать инструмент "Копировать веб" для публикации изменений с промежуточного сервера на веб-сервере производства или между любыми двумя веб-серверами. Средство Copy Web может копировать отдельные файлы или весь веб-сайт на исходный веб-сайт и удаленный веб-сайт или с него. Вы также можете синхронизировать файлы, которые включают в себя копирование только измененных файлов и обнаружение возможных конфликтов версий, в которых один и тот же файл как на исходном, так и на удаленном сайтах был отдельно отредактирован. Средство Copy Web не может объединять изменения в одном файле; можно скопировать только полные файлы.

Ответ 2

У нас есть серверы DEV, TEST, STAGE и PRODUCTION.

У нас также есть специальная сборная машина, которая управляет Cruise Control.

Круиз-контроль настроен для сборки непрерывной интеграции, которая запускается после проверки кода. Он также настроен для выполнения отдельных задач разработки, QA, Stage и Production.

Для развертывания для разработки код сначала извлекается из SVN и строится, затем папка "Предварительно скомпилированная сеть" копируется на веб-сайт разработки, а проект веб-службы копируется на сервер приложений разработки. Cruise Control также настроен на "тегировать" исходный код до начала сборки, чтобы мы могли позже воспроизвести сборку или разветкиться с тегом, если нам нужно сделать горячее исправление.

Для развертывания в QA файлы копируются с машин разработки на машины QA.

Аналогично, для развертывания на этапе файлы копируются с машин QA на машины Stage.

Наконец, для развертывания в производство файлы снова копируются из машин Stage на производственные машины.

Чтобы настроить каждую среду, у нас есть настраиваемый инструмент, который является частью каждой задачи Cruise Control, которая изменяет строки подключения "debug = true | false", "customErrors = Off | RemoteOnly" и другие параметры, относящиеся к среде.

Таким образом, каждая среда может быть развернута нажатием кнопки с панели управления Cruise Control.

Одно из предостережений заключается в том, что в настоящее время у нас есть пароль производственной базы данных, сконфигурированный в конфигурационном файле Cruise Control... было бы неплохо перемещать его в другое место!

Наконец, позвольте мне добавить, что даже если наши производственные машины находятся в выделенном хостинге, серверы доступны с нашей машины для круиз-контроля, что упрощает создание производственного развертывания. Единственный ручной шаг - зашифровать файлы web.config и удалить файл "AppOffline.html", который запускает Cruise Control.

Сообщите мне, если это поможет, или если у вас есть какие-либо вопросы.

Спасибо!

Ответ 3

1) Построить проект с помощью MSBUILD

2) Файлы FTP в производственной среде

3) Копировать/Вставить вручную на каждый веб-сервер

Ответ 4

Несколько вещей, которые я сделал, это следующее:

1) Используйте проект веб-развертывания, чтобы скомпилировать и очистить сборку, а также передать раздел раздела web.config, если конфигурация изменится между средами. 2) Используйте NAnt для повторного выполнения всего здания, архивирования и копирования.

Проект веб-развертывания завершает создание файла MSBuild, который можно использовать вместо NAnt; однако я пришел из фона Java и использовал Ant все время, поэтому NAnt - мое предпочтение в .Net. Если вы добавите в задачи NAnt Contrib, вы сможете развернуть не только файлы, но и обработать такие элементы, как исходный элемент управления (если он не является частью задач по умолчанию) и Sql Script Выполнение изменений.

В настоящее время я использую оба параметра вместе. У меня есть файл сборки NAnt, который вызывает проект веб-развертывания через MSBuild. С настройкой менеджера конфигурации для каждой среды он позволяет автоматически управлять секциями раздела web.config и все еще иметь достаточно приличный контроль над моим копированием и архивированием выпуска.

Надеюсь, что это поможет.

Ответ 5

Мы используем проекты веб-развертывания и проекты VS 2008 для создания .msi из результатов веб-развертывания и других проектов. Обычное приложение Windows, называемое "setup", используется для создания большого количества созданных db и предварительных материалов, вместо того, чтобы пытаться настроить проекты установки с помощью настраиваемых шагов. Гораздо проще сделать это самостоятельно, чем пытаться настроить код MS. Это приложение Windows вызывает правильные файлы .msi, которые нужны пользователю.

Сбор сборной команды запускается каждый вечер, чтобы перестроить решение и скопировать все в каталог "Release CD", который каждый может получить и выполнить тестирование в последней версии. Честно говоря, сборка TFS немного за борт для небольшой команды, такой как наша, и я использую ее только потому, что я ее использую.

В предыдущей компании мы использовали этот http://www.finalbuilder.com/, и я могу порекомендовать его для удобства использования и количества поддерживаемого программного обеспечения.

Ответ 6

Для сайтов интрасети мы используем CruiseControl в сочетании с SVN, чтобы сайт был автоматически перестроен.

Теоретически вы можете расширить эту модель по VPN, если вы можете удаленно сопоставить диск с клиентской интрасети. Или более быстрым и грязным решением может быть использование инструмента, такого как SyncBack для синхронизации удаленной папки, содержащей скомпилированные библиотеки DLL для сайта.