Как настроить этот процесс развертывания для ASP.NET? - PullRequest
0 голосов
/ 10 апреля 2011

Я управляю небольшим магазином веб-разработки, работающим с ASP.NET (Webforms и MVC).Мы работаем для самых разных клиентов, поэтому потенциально много проектов могут быть активны в любое время (некоторые просто ждут обновления обслуживания или исправления ошибок).

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

Я много читал о CI и инструментах автоматического построения и развертывания, но я не могу полностью обдумать это, поскольку все они выглядят справедливосложная настройка.

Я хочу автоматизировать этот процесс развертывания, и я пытаюсь выяснить, какой инструмент лучше всего изучить и освоить:

  1. Разработчик проверяет код в Mercurial налокальный компьютер, а затем синхронизируется с главным репозиторием на сервере сборки, подключенном к сети.
  2. Сервер сборки начинает сборку и проверяет правильность модульных тестов.Промойте и повторите.
  3. Разработчик вручную выбирает развертывание на удаленном сервере Windows через FTP (есть ли другой способ?) С помощью zip-файла (в идеале, содержащего только измененные файлы из предыдущей развернутой версии).
  4. Удаленный сервер опрашивает папку, в которой файлы FTP заканчиваются, распаковывает их, копирует их в тестовую папку, создает резервную копию тестовой базы данных и запускает скрипт обновления для тестовой базы данных (или с помощью приложения миграции, такого как migratordotnet или rikmigrations).Конфигурационные преобразования также должны быть выполнены.
  5. Клиент просматривает изменения и принимает их или предоставляет отзыв.
  6. Если клиент принимает, Разработчик нажимает кнопку «Развернуть в промежуточный» на веб-интерфейсе удаленного сервера и активируетрезервное копирование базы данных, восстановление в промежуточную базу данных, файл живого сайта копируются в папку промежуточных сайтов (фактически создается клон живого сайта), измененные файлы тестового сайта копируются в промежуточный сайт (исключая определенные папки, такие как загрузка тестового изображения)и т. д.) и скрипт миграции запускается снова.
  7. Разработчик проверяет, что изменения не сломали промежуточный сайт.
  8. Разработчик нажимает кнопку «Развернуть в живую» на веб-интерфейсе удаленного сервера, и действующий сайт копируется в резервную папку, а файл промежуточного сайта копируется.на свое место (исключая загруженные пользователем изображения и т. д.).Резервное копирование активной базы данных и запуск сценария миграции.
  9. Если что-то пойдет не так, разработчик сможет вернуть действующий сайт обратно к предыдущей версии, скопировав файлы резервных копий обратно в папку живого сайта и предыдущийназад база данных восстановлена.

Я действительно не хочу бороться с сотнями настраиваемых опций.Необходимо быстро настроить новый проект (не более 5 минут) и повторить его.

Мы не предприниматели, но если мне придется потратить немного денег, чтобы начать работу, я полностью готов заплатить за лицензии,

1 Ответ

3 голосов
/ 04 мая 2011

Я разработчик для BuildMaster , инструмента, который в основном делает все, что вы перечислили здесь.Я попытаюсь коснуться нескольких ваших пунктов, чтобы узнать, как это может помочь вам:

  1. BuildMaster поддерживает Mercurial (наряду с несколькими другими VCS), так что вы можете пометить свой кодво время автоматического развертывания и / или получения кода (или последнего) кода
  2. Когда вы создаете свои планы развертывания в BuildMaster, ваша сборка может работать быстро, если модульные тесты не пройдут
  3. BuildMaster использует агенты, размещенные как самостоятельно, так и в IIS, которые могут быть установлены на любом сервере, на котором вы планируете сборку или развертывание.BuildMaster продвигается на один шаг вперед в отношении архивирования выходных данных сборки во встроенные «артефакты сборки», которые затем могут быть развернуты как единое целое прямо поверх существующего веб-сайта или во временном каталоге, а затем перенесены ввеб-сервер, на котором передаются только измененные файлы - вы также можете исключить файлы / каталоги (например, синхронизировать все, кроме \ Uploads, \ Logs и т. д.)
  4. Вам не потребуется внешний инструмент для опроса каталогов дляизменив файлы для развертывания, вам нужно просто нажать «Продвинуться до тестирования» в BuildMaster, который будет включать «Резервное копирование базы данных» как часть вашего плана развертывания.Базы данных в BuildMaster обрабатываются таким образом, что каждая среда имеет свой собственный «экземпляр», и вы можете настроить сценарии изменений, которые гарантированно будут запускаться только один раз для каждой среды при добавлении в план развертывания для этой среды.
  5. Архитектура BuildMaster (по сути, веб-приложение с серверной частью службы / базы данных, которая выполняет эту работу) позволяет вам предоставлять необходимые части веб-приложения вашим клиентам, где они смогут «одобрить» тестовую сборку до ее продвижения вследующая среда тестирования.
  6. Если ваш план поэтапного развертывания включает в себя резервное копирование базы данных и копирование производственных файлов, нажатие кнопки «Развернуть в промежуточный» сделает все, что вы включите в план.
  7. НашСистема одобрения может справиться с этим (например, 1 разработчик и 1 менеджер должны одобрить сборку до того, как она будет запущена в производство)
  8. То же, что и # 7
  9. Этот шаг может быть в основном .с BuildMaster ... нет функции "восстановить"Единство встроено в программное обеспечение.Однако с помощью встроенного хранилища артефактов в BuildMaster вы можете повторно выполнить более старую рекламную акцию в производство, и она вернет старые сжатые файлы артефактов обратно в один клик.Для базы данных это немного сложнее, вам придется вручную восстанавливать БД.

Как правило, процесс установки занимает несколько щелчков мыши и требует только IIS с ASP.NET 2.0, установленным в Интернете.сервер, на котором будет размещаться BuildMaster, либо с SQL Server Express (часть установки), либо с вашим собственным экземпляром SQL Server.

Первоначальная настройка должна быть довольно простой, и в программном обеспечении есть примеры, которыесоздайте «Приложение» из исходного кода в общедоступном репозитории SVN и создайте его.

Другая важная функция, которая может вам понравиться, - управление файлами конфигурации.Поскольку вы упоминаете ASP.NET, вы можете создать свой файл web.config в BuildMaster в качестве шаблона и развернуть его как часть плана развертывания с различными значениями в зависимости от среды.Таким образом, вам нужно будет только сохранить версию для разработки в системе контроля версий и одну версию шаблона в BuildMaster для остальных сред тестирования.

Я бы рекомендовал начать с бесплатной пробной версии и прочитать учебное пособие , чтобы запустить базовое приложение и запустить его. Если у вас есть какие-либо вопросы, на нашем веб-сайте есть встроенная справка, которая встроена в приложение после его установки. К этому сообщению нельзя добавить еще много всего, что может оказаться полезным (отслеживание изменений вручную, уведомления, отчеты, расширяемость и т. Д.); если вам интересно, вы можете ознакомиться с полным списком функций !

...