Упражнение. Развертывание монолитного приложения в Службе приложений

Завершено

Мы немного говорили об монолитных и микрослужбах архитектур. Теперь давайте развернем монолитное приложение и посмотрим, как можно его трансформировать в архитектуру микрослужб.

Fabrikam недавно добавил службу дронов в существующее приложение.

В этом упражнении мы развертываем монолитное приложение в службе приложение Azure и разрешаем Azure Monitor получать представление о телеметрии и производительности приложений.

Visualization of the resources for the drone delivery application.

Развертывание монолитного приложения в службе приложений Azure

Начнем с развертывания приложения. Прежде всего, чтобы разместить приложение, нам потребуется создать ресурсы Azure.

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

    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
    
  2. Теперь, когда мы создали ресурсы, выполним развертывание приложения. Сначала выполните следующую команду, чтобы извлечь исходный код из репозитория с примером.

    git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture
    cd ~/mslearn-microservices-architecture/src/before
    
  3. Выполните следующую команду, чтобы заархивировать код приложения, который будет использоваться для развертывания в службе приложений.

    zip -r DroneDelivery-before.zip .
    
  4. Выполните следующую команду, чтобы задать переменную с именем службы приложений.

    APPSERVICENAME="$(az webapp list \
                        --resource-group <rgn>[sandbox resource group]</rgn> \
                        --query '[].name' \
                        --output tsv)"
    
  5. Выполните следующую команду, чтобы настроить службу приложений для запуска сборки как части развертывания.

    az webapp config appsettings set \
        --resource-group <rgn>[sandbox resource group]</rgn> \
        --name $APPSERVICENAME \
        --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
    
  6. Теперь выполните эту команду, чтобы развернуть приложение в службе приложений. На завершение развертывания потребуется несколько минут.

    az webapp deployment source config-zip \
        --resource-group <rgn>[sandbox resource group]</rgn> \
        --name $APPSERVICENAME \
        --src DroneDelivery-before.zip
    
  7. После завершения развертывания убедитесь, что развертывание успешно выполнено, перейдя на веб-сайт службы приложений. Выполните следующую команду, чтобы получить URL-адрес, и перейдите по нему, чтобы открыть страницу.

    echo https://$(az webapp config hostname list \
                    --resource-group <rgn>[sandbox resource group]</rgn> \
                    --webapp-name $APPSERVICENAME \
                    --query [].name \
                    --output tsv)
    

    Screenshot of the Drone Delivery website.

Запуск нагрузочного теста для приложения

Теперь давайте протестируем производительность приложения в монолитной архитектуре.

  1. На домашней странице развернутого приложения выберите Send Requests (Отправить запросы). Это действие имитирует отправку 100 запросов через приложение.

  2. В результатах первого запроса вы увидите, что на обработку 100 сообщений потребовалось около 8–12 секунд. Если обновить страницу и выполнить повторную отправку, эта операция займет почти в два раза меньше времени. Но на каждый запрос по-прежнему потребуется около пяти секунд.

    Screenshot of the Drone Delivery website after running the performance test.

Компания Fabrikam подозревает, что монолитная архитектура мешает масштабированию активно используемых служб, что приводит к снижению производительности.