Configurar um ambiente de preparo no Aplicativos Spring do Azure

Observação

Azure Spring Apps é o novo nome do serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais por um tempo enquanto trabalhamos para atualizar ativos como capturas de tela, vídeos e diagramas.

Este artigo aplica-se a: ✔️ Java ❌ C#

Este artigo se aplica aos níveis:❌ ✔️ Básico ✔️ Standard ✔️ Enterprise

Este artigo explica como configurar uma implantação de preparo usando o padrão de implantação azul-verde no Azure Spring Apps. A implantação azul-verde é um padrão de entrega contínua do DevOps do Azure que se baseia em manter uma versão existente (azul) ativa, enquanto uma nova (verde) é implantada. Este artigo demonstra como colocar essa implantação de preparo em produção sem alterar diretamente a implantação de produção.

Pré-requisitos

  • Uma instância existente dos Aplicativos Spring do Azure no plano Standard.
  • CLI do Azure.

Este artigo usa um aplicativo criado a partir do Spring Initializr. Para usar um aplicativo diferente neste exemplo, faça uma alteração em uma parte pública do aplicativo a fim de diferenciar sua implantação de preparo da implantação de produção.

Dica

O Azure Cloud Shell é um shell gratuito e interativo que pode ser usado para seguir as instruções deste artigo. Ele tem ferramentas comuns e pré-instaladas do Azure, incluindo as versões mais recentes do Git, do JDK, do Maven e da CLI do Azure. Se estiver conectado à sua assinatura do Azure, inicie a instância do Azure Cloud Shell. Para saber mais, consulte Visão geral do Azure Cloud Shell.

Para configurar a implantação azul-verde no Azure Apps, siga as instruções nas próximas seções.

Instale a extensão da CLI do Azure

Instale a extensão dos Aplicativos Spring do Azure para a CLI do Azure usando o seguinte comando:

az extension add --name spring

Prepare o aplicativo e as implantações

Para criar a aplicação, siga estes passos:

  1. Gere o código para o aplicativo de exemplo usando o Spring Initializr com esta configuração.

  2. Baixe o código.

  3. Adicione o seguinte arquivo de origem HelloController.java à pasta *\src\main\java\com\example\hellospring*:

    package com.example.hellospring;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @RestController
    
    public class HelloController {
    
    @RequestMapping("/")
    
      public String index() {
          return "Greetings from Azure Spring Apps!";
      }
    
    }
    
  4. Crie o arquivo .jar:

    mvn clean package -DskipTests
    
  5. Crie o aplicativo em sua instância do Azure Spring Apps:

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --runtime-version Java_17 \
        --assign-endpoint
    
  6. Implante o aplicativo no Azure Spring Apps:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    
  7. Modifique o código para a implantação de preparo:

    package com.example.hellospring;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @RestController
    
    public class HelloController {
    
    @RequestMapping("/")
    
      public String index() {
          return "Greetings from Azure Spring Apps! THIS IS THE GREEN DEPLOYMENT";
      }
    
    }
    
  8. Recrie o arquivo .jar:

    mvn clean package -DskipTests
    
  9. Crie a implantação verde:

    az spring app deployment create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --app demo \
        --name green \
        --runtime-version Java_17 \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    

Exiba os aplicativos e as implantações

Siga as etapas a seguir para exibir os aplicativos implantados.

  1. Vá para a sua instância do Azure Spring Apps no portal do Azure.

  2. No painel de navegação, abra o painel Aplicativos para exibir aplicativos para sua instância de serviço.

    Captura de tela do painel “Aplicativos” mostrando os aplicativos da sua instância de serviço.

  3. Selecione um aplicativo para ver os detalhes.

    Captura de tela do aplicativo de demonstração que mostra a página de visão geral com as configurações disponíveis.

  4. Abra Implantações para ver todas as implantações do aplicativo. A grade mostra as implantações de produção e de preparo.

    Captura de tela exibindo as implantações de aplicativo listadas.

  5. Selecione a URL para abrir o aplicativo atualmente implantado.

    Captura de tela mostrando a URL do aplicativo implantado.

  6. Selecione Produção na coluna Estado para ver o aplicativo padrão.

    Captura de tela mostrando a URL do aplicativo padrão.

  7. Selecione Preparo na coluna Estado para ver o aplicativo de preparo.

    Captura de tela mostrando a URL do aplicativo de preparo.

Dica

Confirme se o ponto de extremidade de teste termina com uma barra (/) para garantir que o arquivo CSS seja carregado corretamente. Se o navegador exigir que você insira as credenciais de logon para exibir a página, use Decodificação de URL para decodificar o ponto de extremidade de teste. A decodificação de URL retorna uma URL no formato https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green. Use esse formato para acessar seu ponto de extremidade.

Observação

As configurações do servidor de configuração se aplicam tanto ao ambiente de preparo quanto ao ambiente de produção. Por exemplo, se o caminho do contexto (server.servlet.context-path) for definido para a demonstração do aplicativo no servidor de configuração como somepath, o caminho para suas alterações de implantação verde muda para https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/....

Se você visitar a demonstração de aplicativo voltada para o público agora, verá a página antiga sem a nova alteração.

Defina a implantação verde como o ambiente de produção

  1. Depois de verificar a alteração no ambiente de preparo, você pode enviá-la por push para a produção. Na página Implantações>de Aplicativo, selecione o aplicativo atualmente em Produção.

  2. Selecione as reticências após o Status de registro da implantação verde e, em seguida, selecione Definir como produção.

    Captura de tela exibindo as seleções para configurar a compilação de preparo para produção.

  3. Confirme se a URL do aplicativo exibe as alterações.

    Captura de tela mostrando a URL do aplicativo agora em produção.

Observação

Quando a implantação verde estiver definida como ambiente de produção, a implantação anterior se tornará a implantação de preparo.

Modificar a implantação de preparo

Se não estiver satisfeito com a alteração, você pode modificar o código do aplicativo, criar um novo pacote .jar e fazer seu upload na implantação verde usando a CLI do Azure:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name demo \
    --deployment green \
    --artifact-path demo.jar

Excluir a implantação de preparo

Para excluir a implantação de preparo do portal do Azure, acesse a página da implantação de preparo e selecione o botão Excluir.

Como alternativa, exclua sua implantação de preparo da CLI do Azure executando o seguinte comando:

az spring app deployment delete \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name <staging-deployment-name> \
    --app demo

Próximas etapas