Exercício - Implantar o aplicativo Spring Boot Redis no Azure

Concluído

Agora que tudo é executado localmente, você pode implantar o aplicativo na nuvem e testar seu comportamento na produção.

Criar uma instância de Serviço de Aplicações do Azure

Crie uma instância do Serviço de Aplicativo do Azure para hospedar seu aplicativo. Use o seguinte código da CLI do Azure para criar um plano básico do Serviço de Aplicativo que usa Linux e, em seguida, adicione uma instância do Java no Serviço de Aplicativo nesse plano.

Para usar Java 11 ou Java 17 em vez de Java 8, use "JAVA|<version>-java<version>" em vez de como o tempo de execução da "JAVA|8-jre8" aplicação 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

Nota

O código anterior reutiliza a variável para nomear o plano do Serviço de Aplicativo e a $AZ_REDIS_NAME instância do Serviço de Aplicativo, mas você pode usar nomes diferentes. O nome da instância do Serviço de Aplicativo faz parte da URL, que deve ser exclusiva no Azure.

Você pode fazer a próxima etapa enquanto essa implantação é concluída.

Implantar o aplicativo Spring Boot no Serviço de Aplicativo do Azure

  1. No arquivo pom.xml do seu projeto, adicione o seguinte novo plug-in na <plugins> seção:

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

    Nota

    A configuração anterior usa as variáveis de ambiente que você configurou anteriormente. Para que essa configuração funcione, verifique se as variáveis e $AZ_REDIS_NAME estão $AZ_RESOURCE_GROUP configuradas corretamente.

  2. Após a conclusão da implantação do Serviço de Aplicativo, execute o seguinte comando para empacotar seu aplicativo e implantá-lo no Azure:

    ./mvnw package azure-webapp:deploy
    
  3. 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 seu aplicativo em execução, conforme mostrado na saída anterior, para usar 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.

  1. 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
    
  2. Para recuperar os dados, execute:

    curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
    
  3. Para incrementar a sessão, execute o seguinte comando várias vezes:

    curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
    

Seu servidor local e seu serviço de nuvem usam a mesma instância Redis, portanto, eles são clusterizados. Os dados que você escreve em uma instância estão disponíveis na outra instância. O serviço de nuvem pode ser expandido adicionando mais nós que usam a mesma instância do Redis para armazenar dados corporativos e dados de sessão.