Exercício – Implantar um aplicativo monolítico no Serviço de Aplicativo
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.
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.
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
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
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 .
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)"
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
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
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)
Executar um teste de carga no aplicativo
Agora, vamos testar o desempenho do aplicativo em sua arquitetura monolítica.
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.
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.
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.