Configurar um ambiente de preparo no Azure Spring Apps

Nota

Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.

O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.

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

Este artigo aplica-se a:❌ Basic ✔️ 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 Azure DevOps que depende de manter uma versão existente (azul) ativa enquanto uma nova (verde) é implantada. Este artigo mostra como colocar essa implantação de preparo em produção sem alterar a implantação de produção.

Pré-requisitos

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

Este artigo usa um aplicativo criado a partir do Spring Initializr. Se você quiser usar um aplicativo diferente para este exemplo, faça uma alteração em uma parte voltada para o público do aplicativo para diferenciar sua implantação de preparo da implantação de produção.

Gorjeta

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

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

Instalar a extensão da CLI do Azure

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

az extension add --name spring

Preparar o aplicativo e as implantações

Para criar o aplicativo, execute estas etapas:

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

  2. Faça o download do 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 sua 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. Reconstrua 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
    

Exibir aplicativos e implantações

Use as etapas a seguir para exibir aplicativos implantados.

  1. Vá para 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 ecrã do painel Aplicações a mostrar aplicações para a 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 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 preparação.

    Captura de tela que mostra as implantações de aplicativos listadas.

  5. Selecione a URL para abrir o aplicativo implantado no momento.

    Captura de tela que mostra a URL do aplicativo implantado.

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

    Captura de ecrã que mostra o URL da aplicação predefinida.

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

    Captura de ecrã que mostra o URL da aplicação de preparação.

Gorjeta

Confirme se o ponto de extremidade de teste termina com uma barra (/) para garantir que o arquivo CSS seja carregado corretamente. Se o seu navegador exigir que você insira credenciais de login para exibir a página, use a decodificação de URL para decodificar seu 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 este formato para acessar seu ponto de extremidade. Se você quiser desabilitar a autenticação básica para seu ponto de extremidade de teste, execute o seguinte comando da CLI do Azure: az spring app update --resource-group <resource-group-name> --service <Azure-Spring-Apps-instance-name> --name demo --disable-test-endpoint-auth true

Nota

As definições do servidor de configuração aplicam-se ao ambiente de preparação e ao ambiente de produção. Por exemplo, se você definir o caminho de contexto (server.servlet.context-path) para sua demonstração de aplicativo no servidor de configuração como somepath, o caminho para sua implantação verde será alterado para https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/....

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

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

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

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

    Captura de tela que mostra seleções para definir a compilação de preparação para produção.

  3. Confirme se o URL da aplicação apresenta as suas alterações.

    Captura de tela que mostra o URL do aplicativo agora em produção.

Nota

Depois de definir a implantação verde como o ambiente de produção, a implantação anterior se torna 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 de .jar e carregá-lo em sua 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 sua implantação de preparo do portal do Azure, vá para a página de sua 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óximos passos