Exercício – Implantar um aplicativo monolítico no Serviço de Aplicativo

Concluído

Falamos um pouco sobre arquiteturas monolíticas e de microsserviços. Agora, vamos implantar um aplicativo monolítico e aprofundar-se em como podemos fazer com que ele evolua para uma arquitetura de microsserviços.

Recentemente, a Fabrikam adicionou o serviço de drone ao aplicativo existente.

Neste exercício, vamos implantar um aplicativo monolítico no Serviço de Aplicativo do Azure e habilitar o Azure Monitor para obter visibilidade da telemetria e do desempenho do aplicativo.

Visualization of the resources for the drone delivery application.

Implantar um aplicativo monolítico no Serviço de Aplicativo do Azure

Vamos começar implantando o aplicativo. Primeiro, precisaremos criar os recursos do Azure para hospedar o aplicativo.

  1. Execute o comando a seguir para implantar os recursos necessários para este aplicativo. Essa implantação leva alguns 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. Agora que temos os recursos criados, vamos implantar o aplicativo. Primeiro, execute o comando a seguir para efetuar pull do código-fonte do repositório de exemplo.

    git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture
    cd ~/mslearn-microservices-architecture/src/before
    
  3. Execute o comando a seguir para compactar o código do aplicativo, que usamos para implantar no Serviço de Aplicativo.

    zip -r DroneDelivery-before.zip .
    
  4. Execute o comando a seguir para definir uma variável com o nome do seu Serviço de Aplicativo.

    APPSERVICENAME="$(az webapp list \
                        --resource-group "<rgn>[sandbox resource group]</rgn>" \
                        --query '[].name' \
                        --output tsv)"
    
  5. Execute o comando a seguir para configurar o Serviço de Aplicativo para executar um build como parte da implantação.

    az webapp config appsettings set \
        --resource-group "<rgn>[sandbox resource group]</rgn>" \
        --name $APPSERVICENAME \
        --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
    
  6. E agora, execute o comando a seguir para implantar o aplicativo no Serviço de Aplicativo. Essa implantação leva alguns minutos para ser concluída.

    az webapp deploy \
        --resource-group "<rgn>[sandbox resource group]</rgn>" \
        --name $APPSERVICENAME \
        --src-path DroneDelivery-before.zip
    
  7. Após a conclusão da implantação, você poderá confirmar se ela foi bem-sucedida visitando o site do serviço de aplicativo. Execute o comando a seguir para obter a URL e selecione-a para abrir a 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.

Executar um teste de carga no aplicativo

Agora, vamos testar o desempenho do aplicativo em sua arquitetura monolítica.

  1. Na página inicial do aplicativo implantado, selecione Enviar Solicitações. Essa ação simula o envio de 100 solicitações por meio do aplicativo.

  2. Para a primeira solicitação, você verá um resultado de cerca de 8 a 12 segundos para processar 100 mensagens. Se você atualizar a página e reenviar, caso seja solicitado, esse número poderá cair em cerca de 50%. Ele ainda levará cerca de cinco segundos por solicitação.

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

A Fabrikam suspeita que a arquitetura monolítica está impedindo que serviços amplamente usados sejam dimensionados, o que resulta em um baixo desempenho conforme visto aqui.