Упражнение. Развертывание монолитного приложения в Службе приложений
Мы немного говорили об монолитных и микрослужбах архитектур. Теперь давайте развернем монолитное приложение и посмотрим, как можно его трансформировать в архитектуру микрослужб.
Fabrikam недавно добавил службу дронов в существующее приложение.
В этом упражнении мы развертываем монолитное приложение в службе приложение Azure и разрешаем Azure Monitor получать представление о телеметрии и производительности приложений.
Развертывание монолитного приложения в службе приложений Azure
Начнем с развертывания приложения. Прежде всего, чтобы разместить приложение, нам потребуется создать ресурсы Azure.
Выполните эту команду, чтобы развернуть ресурсы, необходимые для этого приложения. Это развертывание займет несколько минут.
az deployment group create \ --resource-group <rgn>[sandbox resource group]</rgn> \ --template-uri https://raw.githubusercontent.com/MicrosoftDocs/mslearn-microservices-architecture/master/deployment/azuredeploy.json
Теперь, когда мы создали ресурсы, выполним развертывание приложения. Сначала выполните следующую команду, чтобы извлечь исходный код из репозитория с примером.
git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture cd ~/mslearn-microservices-architecture/src/before
Выполните следующую команду, чтобы заархивировать код приложения, который будет использоваться для развертывания в службе приложений.
zip -r DroneDelivery-before.zip .
Выполните следующую команду, чтобы задать переменную с именем службы приложений.
APPSERVICENAME="$(az webapp list \ --resource-group <rgn>[sandbox resource group]</rgn> \ --query '[].name' \ --output tsv)"
Выполните следующую команду, чтобы настроить службу приложений для запуска сборки как части развертывания.
az webapp config appsettings set \ --resource-group <rgn>[sandbox resource group]</rgn> \ --name $APPSERVICENAME \ --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Теперь выполните эту команду, чтобы развернуть приложение в службе приложений. На завершение развертывания потребуется несколько минут.
az webapp deployment source config-zip \ --resource-group <rgn>[sandbox resource group]</rgn> \ --name $APPSERVICENAME \ --src DroneDelivery-before.zip
После завершения развертывания убедитесь, что развертывание успешно выполнено, перейдя на веб-сайт службы приложений. Выполните следующую команду, чтобы получить URL-адрес, и перейдите по нему, чтобы открыть страницу.
echo https://$(az webapp config hostname list \ --resource-group <rgn>[sandbox resource group]</rgn> \ --webapp-name $APPSERVICENAME \ --query [].name \ --output tsv)
Запуск нагрузочного теста для приложения
Теперь давайте протестируем производительность приложения в монолитной архитектуре.
На домашней странице развернутого приложения выберите Send Requests (Отправить запросы). Это действие имитирует отправку 100 запросов через приложение.
В результатах первого запроса вы увидите, что на обработку 100 сообщений потребовалось около 8–12 секунд. Если обновить страницу и выполнить повторную отправку, эта операция займет почти в два раза меньше времени. Но на каждый запрос по-прежнему потребуется около пяти секунд.
Компания Fabrikam подозревает, что монолитная архитектура мешает масштабированию активно используемых служб, что приводит к снижению производительности.