Ejercicio: Implementación de una aplicación monolítica en App Service

Completado

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.

Visualization of the resources for the drone delivery application.

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.

  1. 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
    
  2. 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
    
  3. 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 .
    
  4. 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)"
    
  5. 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
    
  6. 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
    
  7. 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)
    

    Screenshot of the Drone Delivery website.

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.

  1. 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.

  2. 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.

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

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í.