Übung: Bereitstellen einer monolithischen Anwendung in App Service

Abgeschlossen

Wir haben ein wenig über monolithische Architekturen und Microservice-Architekturen gesprochen. Eine monolithische Anwendung wird nun bereitgestellt, und es wird tiefer darauf eingegangen, wie sie in eine Microservicesarchitektur weiterentwickelt werden kann.

Fabrikam hat kürzlich den Drohnendienst zur vorhandenen Anwendung hinzugefügt.

In dieser Übung wird eine monolithische Anwendung in Azure App Service bereitgestellt und Azure Monitor aktiviert, um Einblicke in die Telemetriedaten und Anwendungsleistung zu gewinnen.

Visualization of the resources for the drone delivery application.

Bereitstellen einer monolithischen Anwendung in Azure App Service

Wir beginnen mit der Bereitstellung der Anwendung. Zuerst müssen wir die Azure-Ressourcen zum Hosten der Anwendung erstellen.

  1. Führen Sie den folgenden Befehl aus, um die erforderlichen Ressourcen für diese Anwendung bereitzustellen. Die Bereitstellung nimmt einige Minuten in Anspruch.

    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. Nachdem wir nun die Ressourcen erstellt haben, können wir die Anwendung bereitstellen. Führen Sie zuerst den folgenden Befehl aus, um den Quellcode aus dem Beispielrepository abzurufen.

    git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture
    cd ~/mslearn-microservices-architecture/src/before
    
  3. Führen Sie den folgenden Befehl aus, um den Anwendungscode zu zippen, den wir für die Bereitstellung in App Service verwenden.

    zip -r DroneDelivery-before.zip .
    
  4. Führen Sie den folgenden Befehl aus, um eine Variable mit dem Namen Ihrer App Service-Instanz festzulegen.

    APPSERVICENAME="$(az webapp list \
                        --resource-group "<rgn>[sandbox resource group]</rgn>" \
                        --query '[].name' \
                        --output tsv)"
    
  5. Führen Sie den folgenden Befehl aus, um die App Service-Instanz zum Ausführen eines Builds als Teil der Bereitstellung zu konfigurieren.

    az webapp config appsettings set \
        --resource-group "<rgn>[sandbox resource group]</rgn>" \
        --name $APPSERVICENAME \
        --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
    
  6. Führen Sie jetzt folgenden Befehl aus, um die Anwendung in App Service bereitzustellen. Es dauert einige Minuten, bis diese Bereitstellung abgeschlossen ist.

    az webapp deploy \
        --resource-group "<rgn>[sandbox resource group]</rgn>" \
        --name $APPSERVICENAME \
        --src-path DroneDelivery-before.zip
    
  7. Nachdem die Bereitstellung abgeschlossen ist, überprüfen Sie, ob diese erfolgreich war, indem Sie die Website Ihrer App Service-Instanz besuchen. Führen Sie zum Abrufen der URL den folgenden Befehl aus, und klicken Sie darauf, um die Seite zu öffnen.

    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.

Ausführen eines Auslastungstests für die Anwendung

Nun wird die Leistung der Anwendung in der monolithischen Architektur getestet.

  1. Wählen Sie auf der Startseite für die bereitgestellte Anwendung die Schaltfläche Anforderungen senden aus. Mit dieser Aktion wird die Übermittlung von 100 Anforderungen über die Anwendung simuliert.

  2. Für die erste Anforderung wird ein Ergebnis von ungefähr 8 bis 12 Sekunden für die Verarbeitung von 100 Nachrichten angezeigt. Wenn Sie die Seite aktualisieren und bei Aufforderung erneut übermitteln, wird diese Zahl möglicherweise um ungefähr die Hälfte zurückgehen. Es dauert immer noch etwa fünf Sekunden pro Anforderung.

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

Fabrikam vermutet, dass die monolithische Architektur die Skalierung viel verwendeter Dienste verhindert, was zu dieser schlechten Leistung führt.