演習 - モノリシック アプリケーションを App Service にデプロイする

完了

モノリシック アーキテクチャとマイクロサービス アーキテクチャについて簡単に説明しました。 ここで、モノリシック アプリケーションをデプロイし、それをマイクロサービス アーキテクチャに進化させる方法について詳しく確認しましょう。

Fabrikam では、最近、ドローン サービスを既存のアプリケーションに追加しました。

この演習では、モノリシック アプリケーションを Azure App Service にデプロイし、Azure Monitor でテレメトリとアプリケーションのパフォーマンスを可視化できるようにします。

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. 次のコマンドを実行して、アプリケーション コードを圧縮します。これは、アプリ サービスにデプロイするために使用します。

    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. ここで、次のコマンドを実行して、アプリケーションを App Service にデプロイします。 このデプロイは、完了まで数分かかります。

    az webapp deployment source config-zip \
        --resource-group <rgn>[sandbox resource group]</rgn> \
        --name $APPSERVICENAME \
        --src DroneDelivery-before.zip
    
  7. デプロイの終了後、アプリ サービスの Web サイトにアクセスして、デプロイが成功したことを確認します。 次のコマンドを実行し、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. デプロイしたアプリケーションのホーム ページで、[要求の送信] を選択します。 このアクションにより、アプリケーションからの 100 個の要求の送信がシミュレートされます。

  2. 最初の要求では、100 個のメッセージを処理するのに約 8 秒から 12 秒かかったという結果が表示されます。 ページを更新し、メッセージが表示された場合に再送信すると、この数が約半分になることがあります。 それでも要求ごとに約 5 秒かかります。

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

Fabrikam では、モノリシック アーキテクチャが、頻繁に利用されるサービスのスケーリングを妨げており、このことがここで見られるパフォーマンスの低下につながっていると考えられています。