Слоты развертывания Azure с тестированием после внедрения

Веб-сайт нашей компании скоро будет размещен в службе приложений в Azure. Веб-сайт взаимодействует с уровнем API, который также размещен в Azure, и ссылается на наши внутренние системы и базы данных. Архитектура на этом уровне не может быть изменена в настоящее время, и у нее довольно много предыстории и т. Д.

Мы планируем всегда внедрять развертывания с использованием слотов развертывания в службе приложений в Azure. Уровень API будет иметь неизменные изменения для каждого развертывания, и развертывание API будет первой частью любого выпуска, за которым следует веб-сайт.

У нас есть четкое разделение между нашими средами, и выпуск будет протестирован в средах Dev, Test и Pre-Prod до начала производственного развертывания. В целом весь процесс довольно прост, пока не доходит до тестирования после внедрения (PI), которое в настоящее время является обязательным в нашей компании.

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

У меня была одна идея - создать поддомен, который напрямую ссылается на слот развертывания _staging веб-сайтов, минуя настройки слота развертывания. В свою очередь, некоторая логика здесь может идти прямо в слот развертывания API _staging. Это даст возможность опубликовать реализацию изменения непосредственно перед тем, как нажать кнопку «Обмен», чтобы поменять местами слоты развертывания.

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




Ответы (1)


Azure упрощает создание слотов развертывания для служб приложений. Он доступен в режиме тарифного плана Standard или Premium App Service. Слоты развертывания на самом деле представляют собой живые приложения с собственными именами хостов. Содержимое приложения и элементы конфигурации можно менять местами между двумя слотами развертывания, включая производственный слот.

Клиенты Azure могут легко выполнить следующие шаги: развернуть веб-приложение в слоте онлайн-развертывания. - Запустите тесты в слоте развертывания в реальной среде, которую собираются использовать потенциальные тестировщики. Среда тестирования и производственная среда существуют бок о бок и обеспечивают схожую среду. - Выполните внутреннюю перестановку IP-адресов обоих слотов (с помощью балансировки нагрузки и управления трафиком для обоих узлов - слотов) - Обновите приложения с нулевым временем простоя - Мгновенно переключитесь на предыдущую версию вашего приложения с нулевым временем простоя для пользователей.

Ссылки https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots

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

person Richard Lee    schedule 11.05.2020
comment
Спасибо, что нашли время ответить, но вопрос был нацелен на то, как согласовать два набора сервисов приложений между промежуточным и производственным слотами. Мы, вероятно, собираемся «привязать» промежуточный веб-сайт к промежуточному слою api с помощью настроек приложения. Перед каждым мы поставим менеджера по трафику. - person Jay; 29.06.2020