練習 - 在 App Service 上部署整合型應用程式

已完成

我們稍微討論了整合型架構和微服務架構。 現在,讓我們部署整合型應用程式,並深入探討將其發展成微服務架構的方式。

Fabrikam 最近已將無人機服務新增到其現有的應用程式。

在此練習中,我們會在 Azure App Service 上部署整合型應用程式,並啟用 Azure 監視器來了解遙測和應用程式效能。

Visualization of the resources for the drone delivery application.

在 Azure App Service 上部署整合型應用程式

讓我們從部署應用程式開始。 首先,我們需要建立 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. 執行下列命令來壓縮應用程式程式碼,我們會將其用於部署到 App Service。

    zip -r DroneDelivery-before.zip .
    
  4. 執行下列命令,以使用您的 App Service 名稱設定變數。

    APPSERVICENAME="$(az webapp list \
                        --resource-group "<rgn>[sandbox resource group]</rgn>" \
                        --query '[].name' \
                        --output tsv)"
    
  5. 執行下列命令,將 App Service 設定為在部署時執行建置。

    az webapp config appsettings set \
        --resource-group "<rgn>[sandbox resource group]</rgn>" \
        --name $APPSERVICENAME \
        --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
    
  6. 執行此命令,將更新後的應用程式部署到 App Service。 此部署需要幾分鐘的時間才能完成。

    az webapp deploy \
        --resource-group "<rgn>[sandbox resource group]</rgn>" \
        --name $APPSERVICENAME \
        --src-path DroneDelivery-before.zip
    
  7. 部署完成後,您可以前往您 App Service 的網站,以確認部署已成功。 執行下列命令來取得 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 秒的結果。 如果您重新整理該頁面,並在出現提示時重新提交,此數字可能會降低約一半。 它處理每則訊息仍需要花費大約 5 秒的時間。

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

Fabrikam 懷疑因為整合型架構會阻止大量使用的服務調整規模,才會導致此處所觀察到的不良效能。