No Cloud-native Gateway, as versões de serviço são usadas principalmente para roteamento baseado em tags. Configure políticas de roteamento adequadas para ativar casos de uso como lançamentos canário, roteamento por tags e implantações de alta disponibilidade.
O gerenciamento de versões de serviço não oferece suporte a serviços do tipo Fixed Address ou DNS Domain Name.
Contexto
Em uma arquitetura de microsserviços, um serviço representa uma unidade funcional de uma aplicação com domínio de negócio independente, como um serviço de pedidos ou de usuários. Fisicamente, o serviço executa em contêineres, máquinas virtuais ou servidores físicos com endereços de rede. Logicamente, ele consiste em um conjunto de instâncias de rede que fornecem a mesma funcionalidade.
Uma versão de serviço é um subconjunto das instâncias desse serviço, agrupadas com base em seus metadados. Os casos de uso mais comuns incluem canary release, tag-based routing e high-availability deployment.
Lançamento canário: Para implantar novas versões de serviço com segurança, utilize a estratégia de lançamento canário. Ela direciona uma pequena parcela do tráfego para a nova versão a fim de validá-la. Após confirmar o funcionamento conforme o esperado, migre gradualmente todo o tráfego da versão antiga para a nova.
Roteamento baseado em tags: Um serviço pode ter múltiplas versões com funcionalidades distintas, cada uma destinada a requisições específicas. Por exemplo, para uma mesma API, requisições com um valor de cabeçalho específico podem ser roteadas para uma versão particular do serviço. Também é possível usar versões de serviço para direcionar requisições ao ambiente de desenvolvimento correto (teste, homologação ou produção) com base nos atributos da requisição.
Implantação de alta disponibilidade: Para garantir a disponibilidade do serviço, implante-o em vários clusters Kubernetes (K8s). Ao tratar as instâncias de cada cluster como uma versão de serviço separada, você ajusta o peso do tráfego roteado para cada um deles. Caso um cluster falhe, redirecione o tráfego definindo seu peso como 0.
O gerenciamento de versões de serviço depende dos metadados associados às instâncias.
No Container Service for Kubernetes (ACK), os metadados das instâncias derivam do atributo
Labelsdos Pods. Por exemplo, ao usar uma aplicação Spring Cloud associada a um Kubernetes Service, adicione uma chave e um valor de tag emspec.template.metadata.labelsno arquivo YAML do Deployment do Kubernetes.Em um registro Nacos, os metadados das instâncias baseiam-se nas informações fornecidas pela aplicação durante o registro. Se você utilizar uma aplicação Spring Cloud com registro Nacos, defina os metadados da instância por meio do campo
spring.cloud.nacos.discovery.metadata.
Adicionar versão de serviço
Faça login no console MSE. Na barra de navegação superior, selecione uma região.
No painel de navegação à esquerda, escolha Cloud-native Gateway > Gateways. Na página Gateways, clique em ID do gateway desejado.
No painel de navegação à esquerda, clique em Routes. Em seguida, clique em aba Services.
Clique em nome do serviço a ser modificado. Na seção Service Version, clique em Add Version.
-
Na nova linha exibida na lista de versões de serviço, configure os parâmetros e clique em ícone
na coluna Actions.Parâmetro
Descrição
Version Name
Insira um nome para a versão do serviço. Utilize um nome descritivo e fácil de identificar.
Tag Name
Chaves de metadados disponíveis em todas as instâncias do serviço. Selecione uma chave para agrupar as instâncias desta nova versão.
Tag Value
Valores disponíveis para a tag key selecionada. Escolha um valor para definir o grupo de instâncias da nova versão.
Number of Instances/Proportion
-
Número de instâncias: Quantidade de instâncias que correspondem à chave e ao valor de tag especificados.
-
Proporção: Percentual do total de instâncias do serviço que pertencem a esta versão.
NotaOs campos Tag Name e Tag Value determinam, em conjunto, o conjunto de instâncias da versão atual.
-
-
Na caixa de diálogo de confirmação, clique em OK.
A nova versão de serviço aparece na seção Service Version.
Edite versão de serviço
Faça login no console MSE. Na barra de navegação superior, selecione uma região.
No painel de navegação à esquerda, escolha Cloud-native Gateway > Gateways. Na página Gateways, clique em ID do gateway desejado.
No painel de navegação à esquerda, clique em Routes. Em seguida, clique em aba Services.
Clique em nome do serviço a ser modificado. Na seção Service Version, clique em ícone
na coluna Actions.Selecione um novo Tag Name e uma nova Tag Value e clique em ícone
na coluna Actions.Na caixa de diálogo de confirmação, clique em OK.
Exclua versão de serviço
Faça login no console MSE. Na barra de navegação superior, selecione uma região.
No painel de navegação à esquerda, escolha Cloud-native Gateway > Gateways. Na página Gateways, clique em ID do gateway desejado.
No painel de navegação à esquerda, clique em Routes. Em seguida, clique em aba Services.
Clique em nome do serviço a ser modificado. Na lista Service Version, clique em ícone
na coluna Actions.Na caixa de diálogo de confirmação, clique em OK.