Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de desativação de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.
O plano consumo e dedicado Standard 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 mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.
Este artigo se aplica a:✅ Básico/Standard ✅ Enterprise
Este artigo descreve a implantação azul-verde com os Aplicativos de Contêiner do Azure.
Você pode habilitar a implantação azul-verde nos Aplicativos de Contêiner do Azure combinando revisões de aplicativos de contêiner, pesos de tráfego e rótulos de revisão.
Criar um aplicativo de contêiner com várias revisões ativas habilitadas
Para criar um novo aplicativo de contêiner com várias revisões ativas habilitadas, use o seguinte comando:
az containerapp create \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--environment <APP_ENVIRONMENT_NAME> \
--image mcr.microsoft.com/k8se/samples/test-app:<BLUE_COMMIT_ID> \
--revision-suffix <BLUE_SUFFIX> \
--ingress external \
--target-port 80 \
--revisions-mode multiple
Como alternativa, você pode usar o seguinte comando para atualizar um aplicativo existente para habilitar várias revisões:
az containerapp revision set-mode \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--mode multiple
Implantar uma nova revisão e atribuir rótulos
Para implantar uma nova revisão, use o seguinte comando:
az containerapp update \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--image mcr.microsoft.com/k8se/samples/test-app:<GREEN_COMMIT_ID> \
--revision-suffix <GREEN_SUFFIX>
Você pode adicionar rótulos a revisões específicas, conforme mostrado no exemplo a seguir:
az containerapp revision label add \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--label blue \
--revision <APP_NAME>--<BLUE_SUFFIX>
az containerapp revision label add \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--label green \
--revision <APP_NAME>--<GREEN_SUFFIX>
A revisão com a azulcommitId
recebendo 100% do tráfego de produção, enquanto a revisão recém-implantada com verdecommitId
não recebe nenhum tráfego de produção.
Nos Aplicativos Spring do Azure, você pode implantar no máximo duas revisões de um aplicativo: uma definida como Produção e outra como Preparo. No entanto, os Aplicativos de Contêiner do Azure dão suporte à implantação de várias revisões para um único aplicativo.
Adicionar uma nova revisão
Cada revisão nos Aplicativos de Contêiner do Azure tem sua própria URL, permitindo que você teste e verifique sua implantação na URL específica. Use os seguintes comandos para testar a revisão verde com um domínio específico, embora todo o tráfego de produção seja direcionado para a revisão azul:
export GREEN_DOMAIN=$(az containerapp revision show \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--revision <GREEN_REVISION_NAME> \
--query "properties.fqdn" \
--output tsv \
| tr -d '\r\n')
curl -s http://$GREEN_DOMAIN
Use os comandos a seguir para testar com o nome de domínio totalmente qualificado (FQDN) específico do rótulo:
# Get the containerapp environment default ___domain
export APP_DOMAIN=$(az containerapp env show \
--resource-group <RESOURCE_GROUP> \
--name <APP_ENVIRONMENT_NAME> \
--query "properties.defaultDomain" \
--output tsv \
| tr -d '\r\n')
# Test the production FQDN
curl -s https://$APP_NAME.$APP_DOMAIN
# Test the blue label FQDN
curl -s https://$APP_NAME---blue.$APP_DOMAIN
# Test the green label FQDN
curl -s https://$APP_NAME---green.$APP_DOMAIN
Enviar tráfego de produção para a revisão verde
Para alternar o tráfego de produção para a revisão verde, use os seguintes comandos:
# switch based on revision name
az containerapp ingress traffic set \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--revision-weight <BLUE_REVISION_NAME>=0 <GREEN_REVISION_NAME>=100
# switch based on label
az containerapp ingress traffic set \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--label-weight blue=0 green=100
Verifique se o peso total do rótulo não excede 100.
Os Aplicativos de Contêiner do Azure não só permitem alternar o tráfego entre implantações azul-verde, mas também entre várias revisões. Você também pode redirecionar uma quantidade específica de tráfego de produção para a implantação verde.
Para obter mais informações sobre a implantação azul-verde nos Aplicativos de Contêiner do Azure, consulte Implantação Azul-Verde nos Aplicativos de Contêiner do Azure.
Limitação
O Servidor Eureka não é adequado para implantação azul-verde porque todas as revisões do aplicativo são registradas com o Servidor Eureka, impedindo a divisão efetiva do tráfego.
Para habilitar a divisão de tráfego ao usar o Gateway do Spring Cloud Gateway, você precisa definir a URL do aplicativo no campo URI da configuração do gateway. Você pode obter a URL do aplicativo usando o seguinte comando:
az containerapp show \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--query "properties.configuration.ingress.fqdn" \
--output tsv \
| tr -d '\r\n'