Ejercicio: Implementación de una aplicación monolítica en App Service
Se han presentado las arquitecturas monolíticas y de microservicios. A continuación, se implementará una aplicación monolítica y se profundizará en cómo puede evolucionar a una arquitectura de microservicios.
Fabrikam ha agregado recientemente el servicio de drones a su aplicación existente.
En este ejercicio, se implementará una aplicación monolítica en Azure App Service y se habilitará Azure Monitor para obtener visibilidad sobre la telemetría y el rendimiento de la aplicación.
Implementación de una aplicación monolítica en App Service
En primer lugar, se implementará la aplicación. Primero es necesario crear los recursos de Azure para hospedar la aplicación.
Ejecute el siguiente comando para implementar los recursos necesarios para esta aplicación. Esta implementación tarda unos minutos.
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
Una vez que se hayan creado los recursos, se implementará la aplicación. En primer lugar, ejecute el siguiente comando para extraer el código fuente del repositorio de ejemplo.
git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture cd ~/mslearn-microservices-architecture/src/before
Ejecute el siguiente comando para comprimir el código de aplicación, que se usará para la implementación en App Service.
zip -r DroneDelivery-before.zip .
Ejecute el siguiente comando para establecer una variable con el nombre de la instancia de App Service.
APPSERVICENAME="$(az webapp list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --query '[].name' \ --output tsv)"
Ejecute el siguiente comando para configurar la instancia de App Service para que ejecute una compilación como parte de la implementación.
az webapp config appsettings set \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Y, ahora, ejecute el comando siguiente para implementar la aplicación en App Service. Esta implementación tarda unos minutos en completarse.
az webapp deploy \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --src-path DroneDelivery-before.zip
Cuando haya finalizado la implementación, visite el sitio web de la instancia de App Service para confirmar que la implementación se ha realizado correctamente. Ejecute el siguiente comando para obtener la dirección URL y selecciónela para abrir la página.
echo https://$(az webapp config hostname list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --webapp-name $APPSERVICENAME \ --query [].name \ --output tsv)
Realización de una prueba de carga en la aplicación
Ahora se probará el rendimiento de la aplicación en su arquitectura monolítica.
En la página principal de la aplicación implementada, seleccione Send Requests (Enviar solicitudes). Esta acción simula el envío de 100 solicitudes a través de la aplicación.
Para la primera solicitud, verá un resultado de aproximadamente 8-12 segundos para procesar 100 mensajes. Si actualiza la página y la vuelve a enviar si se le solicita, este valor se puede reducir a la mitad. Se seguirán tardando unos cinco segundos por solicitud.
Fabrikam sospecha que la arquitectura monolítica impide el escalado de los servicios de uso intensivo, lo que provoca el bajo rendimiento que se muestra aquí.