Ćwiczenie — wdrażanie aplikacji monolitycznej w usłudze App Service
Omówiliśmy nieco architektury monolityczne i mikrousługi. Teraz wdrożymy aplikację monolityczną i przyjrzyjmy się bliżej sposobom jej rozwoju w architekturę mikrousług.
Fabrikam niedawno dodała usługę dronów do istniejącej aplikacji.
W tym ćwiczeniu wdrożymy aplikację monolityczną w usłudze Azure App Service i włączymy usługę Azure Monitor, aby uzyskać wgląd w dane telemetryczne i wydajność aplikacji.
Wdrażanie aplikacji monolitycznej w usłudze Azure App Service
Zacznijmy od wdrożenia aplikacji. Najpierw musimy utworzyć zasoby platformy Azure do hostowania aplikacji.
Uruchom następujące polecenie, aby wdrożyć zasoby potrzebne dla tej aplikacji. To wdrożenie trwa kilka 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
Teraz, gdy mamy utworzone zasoby, wdróżmy aplikację. Najpierw uruchom następujące polecenie, aby ściągnąć kod źródłowy z przykładowego repozytorium.
git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture cd ~/mslearn-microservices-architecture/src/before
Uruchom następujące polecenie, aby skompresować kod aplikacji, którego używamy do wdrożenia w usłudze App Service.
zip -r DroneDelivery-before.zip .
Uruchom następujące polecenie, aby ustawić zmienną o nazwie usługi aplikacji.
APPSERVICENAME="$(az webapp list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --query '[].name' \ --output tsv)"
Uruchom następujące polecenie, aby skonfigurować usługę app service do uruchamiania kompilacji w ramach wdrożenia.
az webapp config appsettings set \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Teraz uruchom następujące polecenie, aby wdrożyć aplikację w usłudze App Service. Ukończenie tego wdrożenia trwa kilka minut.
az webapp deploy \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --src-path DroneDelivery-before.zip
Po zakończeniu wdrażania upewnij się, że wdrożenie zakończyło się pomyślnie, odwiedzając witrynę internetową usługi App Service. Uruchom następujące polecenie, aby uzyskać adres URL, a następnie wybierz go, aby otworzyć stronę.
echo https://$(az webapp config hostname list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --webapp-name $APPSERVICENAME \ --query [].name \ --output tsv)
Wykonywanie testu obciążeniowego względem aplikacji
Teraz przetestujmy wydajność aplikacji w architekturze monolitycznej.
Na stronie głównej wdrożonej aplikacji wybierz pozycję Wyślij żądania. Ta akcja symuluje przesyłanie 100 żądań za pośrednictwem aplikacji.
Dla pierwszego żądania zobaczysz wynik wynoszący około 8 do 12 sekund na przetworzenie 100 komunikatów. Jeśli odświeżysz stronę i ponownie wyślesz, jeśli zostaniesz o to poproszony, ta liczba może spaść o około połowę. Nadal trwa około pięciu sekund na każde żądanie.
Firma Fabrikam podejrzewa, że architektura monolityczna uniemożliwia skalowanie intensywnie używanych usług, co prowadzi do niskiej wydajności widocznej tutaj.