Cvičení – nasazení monolitické aplikace ve službě 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ě Azure App Service a umožníme službě Azure Monitor získat přehled o telemetrii a výkonu aplikací.

Vizualizace prostředků pro aplikaci pro doručování pomocí dronů.

Nasazení monolitické aplikace ve službě Azure App Service

Začněme nasazením aplikace. Nejprve 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ž máme vytvořené prostředky, 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 teď spuštěním následujícího příkazu nasaďte aplikaci do služby App Service. Dokončení tohoto nasazení trvá několik minut.

    az webapp deploy \
        --resource-group "<rgn>[sandbox resource group]</rgn>" \
        --name $APPSERVICENAME \
        --src-path 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)
    

    snímek obrazovky webu pro doručování pomocí dronů

Provedení zátěžového testu v aplikaci

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

  1. Na domovské stránce nasazené aplikace vyberte Odeslat žádosti. Tato akce simuluje odeslání 100 požadavků prostřednictvím aplikace.

  2. U prvního požadavku uvidíte výsledek přibližně 8 až 12 sekund pro zpracování 100 zpráv. Pokud stránku aktualizujete a bude-li to možné, znovu odešlete, může toto číslo poklesnout asi na polovinu. Stále to trvá přibližně pět sekund pro každý požadavek.

    snímek obrazovky webu pro doručování pomocí dronů po spuštění testu výkonnosti

Společnost Fabrikam má podezření, že monolitická architektura brání výrazně využívané službě v škálování, což vede k nízkému výkonu, který zde vidíte.