Cvičení – nasazení monolitické aplikace v App Service

Dokončeno

Mluvili jsme o monolitických architekturách a architekturách mikroslužeb. Teď nasadíme monolitickou aplikaci a podrobněji se podíváme, jak ji můžeme vyvíjet v architektuře mikroslužeb.

Společnost Fabrikam nedávno přidala službu dronů do své stávající aplikace.

V tomto cvičení nasadíme monolitickou aplikaci ve službě Aplikace Azure Service a umožníme službě Azure Monitor získat přehled o telemetrii a výkonu aplikací.

Visualization of the resources for the drone delivery application.

Nasazení monolitické aplikace v Azure App Service

Začneme nasazením aplikace. Nejdřív musíme vytvořit prostředky Azure pro hostování aplikace.

  1. Spuštěním následujícího příkazu nasaďte prostředky potřebné pro tuto aplikaci. Toto nasazení trvá několik minut.

    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. Teď, když jsou prostředky vytvořené, nasadíme aplikaci. Nejprve spuštěním následujícího příkazu stáhněte zdrojový kód z ukázkového úložiště.

    git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture
    cd ~/mslearn-microservices-architecture/src/before
    
  3. Spuštěním následujícího příkazu zazipujte kód aplikace, který používáme k nasazení do služby App Service.

    zip -r DroneDelivery-before.zip .
    
  4. Spuštěním následujícího příkazu nastavte proměnnou s názvem vaší služby App Service.

    APPSERVICENAME="$(az webapp list \
                        --resource-group <rgn>[sandbox resource group]</rgn> \
                        --query '[].name' \
                        --output tsv)"
    
  5. Spuštěním následujícího příkazu nakonfigurujte službu App Service tak, aby v rámci nasazení spustila sestavení.

    az webapp config appsettings set \
        --resource-group <rgn>[sandbox resource group]</rgn> \
        --name $APPSERVICENAME \
        --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
    
  6. A spuštěním následujícího příkazu nasaďte aplikaci do App Service. Toto nasazení trvá několik minut.

    az webapp deployment source config-zip \
        --resource-group <rgn>[sandbox resource group]</rgn> \
        --name $APPSERVICENAME \
        --src DroneDelivery-before.zip
    
  7. Po dokončení nasazení ověřte, že nasazení proběhlo úspěšně, a to tak, že navštívíte web vaší služby App Service. Spuštěním následujícího příkazu získejte adresu URL a výběrem této adresy otevřete stránku.

    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.

Provedení zátěžového testu aplikace

Teď otestujeme výkon aplikace v monolitické architektuře.

  1. Na domovské stránce nasazené aplikace vyberte Send Requests (Odeslat žádosti). Tím se provede simulace odeslání 100 žádostí přes aplikaci.

  2. Při první žádosti bude výsledný čas pro zpracování 100 zpráv přibližně 8–12 sekund. Pokud stránku aktualizujete a po zobrazení výzvy znovu odešlete, může se toto číslo o polovinu vyřadit. I tak jedna žádost bude trvat přibližně 5 sekund.

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

Společnost Fabrikam se domnívá, že monolitická architektura zabraňuje škálování velmi využívaných služeb, což vede, jak jsme zde viděli, k nedostatečnému výkonu.