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:
Gere o código para o aplicativo de exemplo usando o Spring Initializr com esta configuração.
Baixe o código.
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!"; } }
Crie o arquivo .jar:
mvn clean package -DskipTests
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
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
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"; } }
Recrie o arquivo .jar:
mvn clean package -DskipTests
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.
Vá para a sua instância do Azure Spring Apps no portal do Azure.
No painel de navegação, abra o painel Aplicativos para exibir aplicativos para sua instância de serviço.
Selecione um aplicativo para ver os detalhes.
Abra Implantações para ver todas as implantações do aplicativo. A grade mostra as implantações de produção e de preparo.
Selecione a URL para abrir o aplicativo atualmente implantado.
Selecione Produção na coluna Estado para ver o aplicativo padrão.
Selecione Preparo na coluna Estado para ver o 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
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.
Selecione as reticências após o Status de registro da implantação verde e, em seguida, selecione Definir como produção.
Confirme se a URL do aplicativo exibe as alterações.
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