Развертывание одностраничного приложения из Appveyor в Azure

Я пытаюсь понять, как непрерывно развертывать одностраничное приложение с appveyor на лазурный веб-сайт. Я немного в затруднительном положении, потому что у меня нет прямого доступа к Azure, поэтому я пытаюсь выяснить как можно больше деталей, прежде чем связываться с администратором, но документация appveyor/azure оставляет у меня некоторые вопросы.

Мои цели:

  1. Разверните статический сайт после его сборки или активируйте azure для выполнения развертывания после успешной сборки. Приложение написано на машинописном языке с угловым и кучей других зависимостей, которые компилируются и объединяются в статический сайт.
  2. Я не хочу, чтобы конечный пользователь когда-либо знал о развертывании, поэтому любое добавочное копирование в рабочую среду исключено.
  3. Я не хочу возвращать производные файлы или сборки в репозиторий.

В настоящее время у меня есть система сборки, которая объединяет статический сайт в zip-архив. Итак, мои вопросы:

  1. Будет ли использование провайдера WebDeploy соответствовать моим целям? Будут ли какие-либо простои во время развертывания, если я разверну zip-архив как артефакт?
  2. Есть ли другой подход, который будет работать лучше?
  3. Есть ли способ сделать это с помощью автоматических развертываний Azure? Например, активируйте azure для развертывания после успешной сборки. Если да, может ли kudu справиться с клонированием частного подмодуля в рамках процесса развертывания. Я видел, что у них есть поддержка подмодулей, но я не мог понять из документов, будут ли какие-либо проблемы с аутентификацией с частными подмодулями.

К вашему сведению, система сборки на 100 % управляется NodeJS и не зависит от экосистемы Windows.


person jrossi    schedule 20.10.2015    source источник


Ответы (2)


AppVeyor автоматически развернется на веб-сайте Azure. Используйте указанный ниже веб-сайт для настройки развертывания.

http://www.appveyor.com/docs/deployment/web-deploy

person Jake    schedule 23.10.2015
comment
Это по-прежнему не отвечает на мой вопрос о том, что такое веб-развертывание и соответствует ли оно указанным мною целям. - person jrossi; 23.10.2015
comment
Веб-развертывание создает артефакт в виде ZIP-файла и отправляет его в Azure. Я все еще не уверен, что ваши пользователи заметят изменения, но у меня не было проблем. - person Jake; 24.10.2015
comment
В порядке. Спасибо. Я попробую. Мне удалось убедить администратора дать мне тестовый сайт для работы. - person jrossi; 29.10.2015

Пользователи заметят изменение, если статические файлы не будут кэшироваться в их браузерах или если они выполнят жесткую перезагрузку. Независимо от способа реализации рекомендуется использовать CDN (сеть доставки контента). Подключите конечные точки CDN к службе приложений и используйте точку DNS для сети CDN вместо службы приложений. CDN будет предоставлять статические файлы конечному пользователю, а не самой службе приложения. CDN кэширует последние развернутые файлы и продолжает предоставлять их конечному пользователю, пока вы их не очистите. Следовательно, вы можете продолжать развертывание в службе приложений, а конечного пользователя никак не затронут ваши развертывания, поскольку они обращаются к вашему сайту через CDN, а не через службу приложений. Как только у вас будет стабильное развертывание, вы можете очистить свою CDN, и последний код будет снова кэширован в CDN из вашей службы приложений.

Чтобы ответить на ваш вопрос о развертывании кода, независимо от используемой вами системы CI/CD, развертывание FTP из azure CLI может быть одним из методов. Нажмите здесь, чтобы узнать подробности. Однако WebDeploy — это наиболее стандартный метод развертывания в службе приложений.

person 2xJimmy    schedule 22.06.2019