Я обновляю свою службу приложений Azure из Azure DevOps. В настоящее время мой релиз выглядит так:
У меня вопрос: разумно ли останавливать службу приложений во время обновления? Когда я выбираю шаблон выпуска в Azure DevOps для службы приложений Azure, нет никаких шагов остановки / запуска, только шаг обновления. Так что мне интересно, нужна ли вообще остановка / запуск?


Вероятно, это зависит от вашего приложения. Если у вас нет проблем, когда вы просто обновляете свое приложение (например, проблема с используемым файлом), вы можете рассмотреть возможность использования флага Перевести приложение в автономный режим, который поместит файл app_offline.htm в корневой каталог службы приложений во время обновление (потом оно будет удалено). Таким образом пользователь узнает, что с приложением что-то происходит.
Однако я часто делал то же самое, что и вы: Стоп, Обновить, Старт ?
В основном мы сделали:
Предложение Мартина о переводе приложения в автономный режим тоже хорошее!
Мы предпочитаем развертывать в слотах, а затем менять местами, чтобы минимизировать влияние на производственную среду и легко выполнить откат. Остановка / перевод приложения в автономный режим может предотвратить проблемы с блокировкой файлов.
Согласны и с Мартином, и с юунасом. Если вы хотите выполнить развертывание, не оказывая влияния на пользователей, вам необходимо использовать подход с заменой слотов. juunas также поднимает важный вопрос, как легко откатиться назад. Наш подход включает еще один слот, который мы называем «исправлением». Это добавляет несколько преимуществ:
Откатывайтесь в продукте, даже если разработчики уже развернули его в тестовой среде.
Позволяет тестировать ошибки в текущей и предыдущей версиях кода. Полезно, когда кто-то говорит: «Хорошо, это работало до этого развертывания» ...
Вот как это выглядит.
Есть (5) вариантов безопасного развертывания (атомарные обновления) для Веб-приложения Azure. Вот мой предпочтительный порядок, ранжированный по приоритету и функциональности:
-enableRule:AppOffline или остановить / запустить сайт для обеспечения атомарности)Существует множество других вариантов развертывания, таких как облачная синхронизация, github непрерывный, локальный git и т. д., Но все они построены на API Kudu (как Azure CLI).
Note: If you're using Azure DevOps - it's supports nearly all these options - leverage the Azure App Service Deploy task
этот флэш больше не входит в задачу ...