Esercizio - Distribuire un'applicazione monolitica nel servizio app
Abbiamo parlato di architetture monolitiche e di microservizi. A questo punto, si distribuirà un'applicazione monolitica e si esaminerà ulteriormente come è possibile evolverla in un'architettura di microservizi.
Fabrikam ha aggiunto di recente il servizio drone all'applicazione esistente.
In questo esercizio si distribuisce un'applicazione monolitica nel servizio app di Azure e si abilita Monitoraggio di Azure per ottenere visibilità sui dati di telemetria e sulle prestazioni dell'applicazione.
Distribuire un'applicazione monolitica nel servizio app di Azure
Per iniziare, distribuire l'applicazione. Prima di tutto, è necessario creare le risorse di Azure per ospitare l'applicazione.
Eseguire il comando seguente per distribuire le risorse necessarie per questa applicazione. Questa distribuzione richiede alcuni minuti.
az deployment group create \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --template-uri https://raw.githubusercontent.com/MicrosoftDocs/mslearn-microservices-architecture/master/deployment/azuredeploy.jsonDopo aver creato le risorse, distribuire l'applicazione. Eseguire prima di tutto il comando seguente per eseguire il pull del codice sorgente dal repository di esempio.
git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture cd ~/mslearn-microservices-architecture/src/beforeEseguire il comando seguente per comprimere il codice dell'applicazione, che viene usato per la distribuzione nel servizio app.
zip -r DroneDelivery-before.zip .Eseguire il comando seguente per impostare una variabile con il nome del servizio app.
APPSERVICENAME="$(az webapp list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --query '[].name' \ --output tsv)"Eseguire il comando seguente per configurare il servizio app per eseguire una compilazione come parte della distribuzione.
az webapp config appsettings set \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --settings SCM_DO_BUILD_DURING_DEPLOYMENT=trueEseguire ora il comando seguente per distribuire l'applicazione nel servizio app. La distribuzione richiede alcuni minuti.
az webapp deploy \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --src-path DroneDelivery-before.zipAl termine della distribuzione, verificare che la distribuzione sia riuscita visitando il sito Web del servizio app. Eseguire il comando seguente per ottenere l'URL e selezionarlo per aprire la pagina.
echo https://$(az webapp config hostname list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --webapp-name $APPSERVICENAME \ --query [].name \ --output tsv)
Eseguire un test di carico sull'applicazione
Si esaminerà ora le prestazioni dell'applicazione nell'architettura monolitica.
Nella home page dell'applicazione distribuita selezionare Invia richieste. Questa azione simula l'invio di 100 richieste tramite l'applicazione.
Per la prima richiesta, viene visualizzato un risultato di circa 8-12 secondi per elaborare 100 messaggi. Se si aggiorna la pagina e si invia di nuovo se richiesto, questo numero potrebbe scendere di circa la metà. La richiesta richiede ancora circa cinque secondi.
Fabrikam sospetta che l'architettura monolitica impedisca il ridimensionamento dei servizi usati di frequente, che comporta prestazioni scarse.