Use o recurso de roteamento baseado em tags para marcar tráfego ou máquinas. Isso permite direcionar o tráfego com características específicas para nós determinados. Esse recurso é ideal para cenários como blue-green deployments e canary releases.
Pré-requisitos
O Microservices Governance está ativado. Para mais informações, consulte Ativar o Microservices Governance.
Você criou um cluster dedicado do Container Service for Kubernetes (ACK) ou um cluster gerenciado do ACK. Para mais informações, consulte Criar um cluster dedicado do ACK (descontinuado) ou Criar um cluster gerenciado do ACK.
Limites
Esta seção descreve os limites aplicáveis às aplicações com o Microservices Governance habilitado.
Para mais informações sobre as versões do Java e os frameworks compatíveis com o roteamento baseado em tags, consulte Frameworks Java compatíveis com o Microservices Governance.
Cenários
Desenvolvimento e teste de múltiplas versões
O desenvolvimento simultâneo de várias versões exige um ambiente específico para cada uma, o que eleva os custos. Para reduzir despesas, use o roteamento baseado em tags e implemente o ajuste de tráfego ponta a ponta. Esse mecanismo direciona fluxos específicos para ambientes de desenvolvimento dedicados. Por exemplo, no Ambiente de Desenvolvimento 1, crie a Tag 1 para a Aplicação B (V1.1) e a Aplicação D (V1.1) e configure uma regra de roteamento baseada em tags. Assim, quando a Aplicação A chamar a Aplicação B, o sistema verificará se o tráfego atende às condições da regra. Em caso positivo, o tráfego será roteado para a Aplicação B (V1.1) no Ambiente de Desenvolvimento 1; caso contrário, seguirá para a Aplicação B (V1) no ambiente base. Nas chamadas da Aplicação C para a Aplicação D, o roteamento ocorrerá para a versão V1 ou V1.1 conforme a regra definida.
Ajuste de tráfego para aplicação com múltiplas versões
Se diversas versões de uma aplicação estiverem online simultaneamente e implantadas em ambientes distintos, como comum e especial, use o roteamento baseado em tags para isolar o tráfego destinado a cada versão. É possível, por exemplo, enviar pedidos de promoções relâmpago ou de canais específicos para o ambiente especial e manter o tráfego regular no ambiente comum. Isso garante que falhas no ambiente especial não afetem o ambiente comum, pois o isolamento impede o redirecionamento indevido de requisições.
Testes A/B
Com múltiplas versões da aplicação rodando simultaneamente online, use o ajuste de tráfego ponta a ponta para realizar testes A/B. Direcione o tráfego originado na Região A para a Aplicação V1 e o da Região B para a Aplicação V1.1. Essa estratégia valida diferentes versões com segurança, reduz riscos no lançamento de novos produtos ou recursos e facilita a inovação.
Habilitar o Microservices Governance para a aplicação no cluster ACK e adicionar tags às instâncias
Nesta seção, adicione as tags tag1 e tag2 às instâncias de uma aplicação chamada spring-cloud-a e divida-as em dois grupos. Se uma requisição corresponder a uma regra, ela será roteada para a instância com a tag específica. Caso nenhuma regra seja atendida, o roteamento seguirá a porcentagem de tráfego configurada.
Faça login no console do ACK.
No painel de navegação à esquerda, clique em Clusters. Em seguida, clique no nome do cluster que deseja gerenciar.
No painel de navegação à esquerda, escolha .
No canto superior direito da página Deployments, clique em Create from Image.
-
No assistente Create, crie dois deployments chamados spring-cloud-a-tag1 e spring-cloud-a-tag2. Para mais informações, consulte Criar uma carga de trabalho sem estado (Deployment).
Parâmetro
Descrição
Replicas
Defina este parâmetro como 1.
Type
Selecione Deployment.
Image Name
Escolha a imagem criada. Clique em Select images ao lado do campo Image Name. Na caixa de diálogo Select images and image tags, selecione China (Hangzhou) na lista suspensa de região e escolha
registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-a:3.0.1. -
Habilite o Microservices Governance para spring-cloud-a-tag1 e spring-cloud-a-tag2 e adicione tags a ambos.
Acesse a página Deployments. Selecione o namespace ao qual spring-cloud-a-tag1 pertence na lista suspensa Namespace. Localize spring-cloud-a-tag1 e escolha More > View in YAML na coluna Actions. Repita as mesmas operações para spring-cloud-a-tag2.
-
Na caixa de diálogo Edit YAML, adicione os seguintes rótulos em para spring-cloud-a-tag1. Execute a mesma operação para spring-cloud-a-tag2. Após esta etapa, o Microservices Governance estará habilitado para ambas as aplicações.
labels: msePilotAutoEnable: "on" msePilotCreateAppName: <your-app-name> alicloud.service.tag: <tag>NotaSubstitua <your-app-name> pelo nome da aplicação utilizado no Microservices Governance. Neste exemplo, o nome é spring-cloud-a.
Substitua <tag> por tag1 ou tag2.
Clique em Update.
Criar regras de roteamento baseado em tags para a aplicação no console MSE
Faça login no console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Governance > Application Governance.
Na página Application list, selecione o namespace desejado, pesquise a aplicação spring-cloud-a criada no cluster ACK e clique nela.
No painel de navegação à esquerda, clique em Traffic management. Na página exibida, clique na aba Label routing para visualizar as configurações de roteamento baseado em tags.
-
Na aba Label Routing, configure a Flow ratio específica para tags e clique em Save.

-
Localize a tag à qual deseja adicionar uma regra de tráfego e clique em Add na coluna Traffic rules. No painel Create Tag-based Routing, configure os parâmetros e clique em OK.
NotaAo usar o roteamento baseado em tags, as condições de roteamento definidas na regra têm prioridade. Se o tráfego atender à regra, ele será direcionado ao pod correspondente à tag especificada. Caso contrário, o roteamento seguirá a porcentagem de tráfego definida.
Parâmetro
Descrição
Routing Rule Name
Nome da regra de roteamento baseada em tags. Exemplo: test-springcloud.
Application
Nome da aplicação. Exemplo: spring-cloud-a.
Tag
Tag adicionada à aplicação no cluster ACK. Exemplo: tag2.
Application Instance
Endereço IP e número da porta da instância da aplicação associada a esta tag.
Traffic Rules
Framework Type
Selecione Spring Cloud ou Dubbo conforme o framework da aplicação.
Spring Cloud: Escolha um caminho de URL na lista suspensa, como
/getIp, ou especifique um caminho personalizado.Dubbo: Selecione um serviço e uma interface específicos.
Condition Mode
Escolha Meet All Conditions ou Meet One of Conditions de acordo com seus requisitos de negócio.
Conditions
Se Framework Type estiver definido como Spring Cloud, selecione Parameter, Cookie, Header ou Body Content na lista suspensa Parameter Type. Exemplos de configuração:
name=xiaomingpara Parameter ehello = "world" or hello = "world2"para Cookie.Para Framework Type definido como Dubbo, configure o parâmetro Expression for Getting Parameter Values.
Verificar o resultado
Valide o resultado conforme seus requisitos de negócio.
-
Crie uma regra para rotear todo o tráfego para spring-cloud-a-tag1.

-
Configure uma regra para direcionar o tráfego que atenda a condições específicas para aplicações determinadas.

Referências
Para mais detalhes sobre como implementar canary releases ponta a ponta, consulte Canary release ponta a ponta.