Exercício – Implantar o aplicativo Spring Boot Redis no Azure
Agora que tudo é executado localmente, é possível implantar o aplicativo na nuvem e testar o comportamento dele na produção.
Criar uma instância do Serviço de Aplicativo do Azure
Crie uma instância do Serviço de Aplicativo do Azure para hospedar o aplicativo. Use o código da CLI do Azure a seguir para criar um plano básico do Serviço de Aplicativo que usa o Linux e adicione uma instância do Java no Serviço de Aplicativo do Azure nesse plano.
Para usar o Java 11 ou 17 em vez do Java 8, use "JAVA|<version>-java<version>"
em vez de "JAVA|8-jre8"
como o runtime do aplicativo Web.
az appservice plan create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp-plan \
--is-linux \
--sku B1
az webapp create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp \
--runtime "JAVA|8-jre8" \
--plan $AZ_REDIS_NAME-webapp-plan
Observação
O código anterior reutiliza a variável $AZ_REDIS_NAME
para nomear o plano do Serviço de Aplicativo e a instância do Serviço de Aplicativo, mas é possível usar nomes diferentes. O nome da instância do Serviço de Aplicativo faz parte da URL, que precisa ser exclusiva no Azure.
É possível realizar a próxima etapa enquanto essa implantação é concluída.
Implantar o aplicativo Spring Boot no Serviço de Aplicativo do Azure
No arquivo pom.xml do projeto, adicione o seguinte novo plug-in à seção
<plugins>
:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.11.0</version> <configuration> <schemaVersion>V2</schemaVersion> <resourceGroup>${env.AZ_RESOURCE_GROUP}</resourceGroup> <appName>${env.AZ_REDIS_NAME}-webapp</appName> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
Observação
A configuração anterior usa as variáveis de ambiente configuradas anteriormente. Para que essa configuração funcione, as variáveis
$AZ_RESOURCE_GROUP
e$AZ_REDIS_NAME
precisam ser configuradas corretamente.Após a conclusão da implantação do Serviço de Aplicativo, execute o seguinte comando para empacotar o aplicativo e implantá-lo no Azure:
./mvnw package azure-webapp:deploy
Quando a implantação for concluída com êxito, ela retornará a seguinte linha:
Successfully deployed the artifact to https://<redisName>-webapp.azurewebsites.net
Observe a URL do aplicativo em execução, conforme mostrado na saída anterior, a ser usada na próxima seção.
Testar o aplicativo no Azure
Use a URL do aplicativo para executar os mesmos comandos de URL do cliente (cURL) na nuvem que você usou no servidor local.
Para adicionar um item de dados, execute o seguinte comando:
curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Para recuperar os dados, execute o seguinte:
curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Para incrementar sua sessão, execute o seguinte comando várias vezes:
curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
O servidor local e o serviço de nuvem usam a mesma instância do Redis, portanto, são clusterizados. Todos os dados que você grava em uma instância estarão disponíveis na outra. O serviço de nuvem pode ser escalado horizontalmente: adicionando mais nós que usarão a mesma instância do Redis para armazenar dados corporativos e dados de sessão.