Ответы пользователя по тегу IIS
  • Как правильно вносить изменения в проект ASP.NET?

    vladimirbondarev
    @vladimirbondarev
    Разработчик ПО
    Функция "Publish" в VS это всего лишь деталь поставки. Формируй пакет поставки и разворачивай его на FTP.
    Подмена файлов, будь то бинарных или текстовых плохая практика, можно что-нибудь отломать и потом долго мучиться восстанавливая предыдущие состояние. Каждая поставка содержит в себе изменения, значит должна быть присвоена версия, которая содержит определенный ченджлог, иначе через цать таких поставок начнется каша.

    Опишу общий процесс поставки:
    • вносятся финальные изменения в разработческой ветки, тестируются
    • сливаются изменения разработческой версии с master, исправляются конфликты, тестируются
    • собирается пакет поставки, содержащий все необходимые конфигурационные, бинарные и прочие файлы и т.д.. Пакет не должен содержать мусорных файлов. Присваивается пакету версия
    • поставляется пакет на демонстрационный сервер. Если есть БД, то восстанавливается бэкап с продуктовой, либо максимально приближенный к последнему состоянию оригинальной. Применяются миграции.
    • регистрируется приложение в IIS, тестируется
    • поставляете пакет на продуктовое окружение
    • если есть БД, то создается бэкап, применяются миграции
    • разворачиваете пакет поставки
    • переключаете IIS на использование поставленной версии

    Это процесс, к которому мы пришли не сразу. Были и подмена файлов на продакшене и живая правка кода. Иногда это приводило к плачевным последствиям. Потом итеративно выработалась ручная процедура поставки, после для экономии времени эта процедура автоматизировалась. Сейчас самый продолжительным участком поставки является ручное приемочное тестирование на демонстрационном окружении. Автоматизированные приемочные тесты тоже есть - они прогоняются после сборки билда, но как и весь код они могут содержать ошибки, поэтому ручной прогон приемочных тестов исключать не решаемся.
    Ответ написан