Упражнение. Развертывание монолитного приложения в службе приложений
Мы немного говорили о монолитной и микросервисной архитектурах. Теперь давайте развернем монолитное приложение и рассмотрим, как мы можем развивать его в архитектуре микрослужб.
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 deploy \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --src-path 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)
Выполнение нагрузочного теста для приложения
Теперь давайте протестируем производительность приложения в монолитной архитектуре.
На домашней странице развернутого приложения выберите Отправить запросы. Это действие имитирует отправку 100 запросов через приложение.
Для первого запроса отображается результат от 8 до 12 секунд для обработки 100 сообщений. При обновлении страницы и повторной отправке при появлении запроса это число может снизиться примерно на половину. Он по-прежнему занимает около пяти секунд на запрос.
Fabrikam подозревает, что монолитная архитектура предотвращает масштабирование широко используемых служб, что приводит к низкой производительности, наблюдаемой здесь.