Я использую шаблон ASP.NET Core & Angular из ASP.NET Boilerplate с отключенной поддержкой нескольких арендаторов: 1 база данных с одним арендатором (по умолчанию).
Я также использую TeamCity для создания / тестирования / публикации проектов, доступных в шаблоне запуска, поэтому я получаю 3 пакета NuGet, которые отправляются в Octopus Deploy:
- API (хост-проект, основное веб-приложение ASP.NET)
- Migrator (Консольное приложение, способное переносить базы данных)
- Пользовательский интерфейс (Angular App)
Я хочу развернуть эту настройку в Azure с Octopus Deploy (self hosted, v2018.9.0) следующим образом, используя 2 службы приложений (Host & UI) и 1 базу данных SQL Azure (Host):
- Переведите приложения пользовательского интерфейса и API в автономный режим, отображая дружественное сообщение об обслуживании при обновлении проектов.
- Перенос базы данных с помощью пакета Migrator
- Развертывание пакета приложения API
- Развертывание пакета приложения пользовательского интерфейса
- Разместите приложение API в сети, возможно, еще несколько тестов, чтобы проверить, что оно работает правильно
- Поместите приложение пользовательского интерфейса в оперативный режим.
Если бы все это было предварительно, у меня не было бы вопросов. Это часть Azure, которую я не могу понять, потому что не знаю, как сделать это в Azure с помощью Octopus Deploy:
- Перевод службы приложений Azure в автономный / онлайн-режим (с использованием файла app_offline.htm)
- Разверните пакет Migrator в службе приложений API Azure в специальной папке (чтобы не перезаписывать развертывание API) и запустите мигратор: dotnet [migrator.dll] -q
Я пытался использовать Octopus Deploy «Развертывание веб-приложения Azure», но этот шаг не позволит мне также развернуть пакет миграции и запустить его до развертывания пакета API. Или это? Я не знаю как.
Я пытался использовать «Запуск сценария Azure PowerShell», но он выполняется на сервере Octopus Deploy, а не в среде службы приложений Azure, верно?
Может быть, есть и другие, еще лучшие подходы к развертыванию этой установки в Azure?