Перенос базы данных при развертывании в службу приложений Azure - PullRequest
0 голосов
/ 14 ноября 2018

Я использую шаблон ASP.NET Core & Angular из ASP.NET Boilerplate с отключенной поддержкой нескольких арендаторов: 1 база данных с одним арендатором (по умолчанию).

Я также использую TeamCity для создания / тестирования / публикации проектов, доступных в шаблоне запуска, поэтому я получаю 3 пакета NuGet, которые отправляются в Octopus Deploy:

  1. API (хост-проект, основное веб-приложение ASP.NET)
  2. Migrator (Консольное приложение, способное переносить базы данных)
  3. Пользовательский интерфейс (Angular App)

Я хочу развернуть эту настройку в Azure с Octopus Deploy (self hosted, v2018.9.0) следующим образом, используя 2 службы приложений (Host & UI) и 1 базу данных SQL Azure (Host):

  1. Переведите приложения пользовательского интерфейса и API в автономный режим, отображая дружественное сообщение об обслуживании при обновлении проектов.
  2. Перенос базы данных с помощью пакета Migrator
  3. Развертывание пакета приложения API
  4. Развертывание пакета приложения пользовательского интерфейса
  5. Разместите приложение API в сети, возможно, еще несколько тестов, чтобы проверить, что оно работает правильно
  6. Поместите приложение пользовательского интерфейса в оперативный режим.

Если бы все это было предварительно, у меня не было бы вопросов. Это часть Azure, которую я не могу понять, потому что не знаю, как сделать это в Azure с помощью Octopus Deploy:

  1. Перевод службы приложений Azure в автономный / онлайн-режим (с использованием файла app_offline.htm)
  2. Разверните пакет Migrator в службе приложений API Azure в специальной папке (чтобы не перезаписывать развертывание API) и запустите мигратор: dotnet [migrator.dll] -q

Я пытался использовать Octopus Deploy «Развертывание веб-приложения Azure», но этот шаг не позволит мне также развернуть пакет миграции и запустить его до развертывания пакета API. Или это? Я не знаю как.

Я пытался использовать «Запуск сценария Azure PowerShell», но он выполняется на сервере Octopus Deploy, а не в среде службы приложений Azure, верно?

Может быть, есть и другие, еще лучшие подходы к развертыванию этой установки в Azure?

1 Ответ

0 голосов
/ 15 ноября 2018

Вы можете использовать сервисные слоты приложения для смены версии ваших логических приложений.Когда вы меняете местами, происходит разогрев и происходит потеря трафика.

Так что в основном развертывайте в слот резервного копирования, а затем меняйте производство на слот резервного копирования.

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

Я не знаком с Octopus или TeamCity, поэтому не буду вдаваться в подробности о них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...