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

完了

モノリシック アーキテクチャとマイクロサービス アーキテクチャについて少し説明しました。 次に、モノリシック アプリケーションをデプロイし、マイクロサービス アーキテクチャに進化させる方法についてさらに詳しく説明します。

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

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

ドローン配送アプリケーションのリソースの視覚化。

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 圧縮します。

    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 deploy \
        --resource-group "<rgn>[sandbox resource group]</rgn>" \
        --name $APPSERVICENAME \
        --src-path DroneDelivery-before.zip
    
  7. デプロイが完了したら、App Service の Web サイトにアクセスして、デプロイが成功したことを確認します。 次のコマンドを実行して URL を取得し、それを選択してページを開きます。

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

    ドローン配送 Web サイトのスクリーンショット。

アプリケーションに対してロード テストを実行する

次に、モノリシック アーキテクチャでアプリケーションのパフォーマンスをテストしてみましょう。

  1. デプロイしたアプリケーションのホーム ページで、[ 要求の送信] を選択します。 このアクションは、アプリケーションを通じて 100 件の要求の送信をシミュレートします。

  2. 最初の要求では、約 8 ~ 12 秒の結果が表示され、100 個のメッセージが処理されます。 ページを更新し、メッセージが表示されたら再送信すると、この数が約半分低下する可能性があります。 要求ごとに約 5 秒かかります。

    パフォーマンス テストを実行した後のドローン配送 Web サイトのスクリーンショット。

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