Estratégia de Deslocamento de Tráfego Canary da API7 Enterprise para Controle Preciso de Tráfego
January 29, 2024
Em uma arquitetura moderna de microsserviços, o gateway de API serve como o ponto de entrada de tráfego dos sistemas, lidando com tarefas cruciais como roteamento de solicitações, autenticação de identidade, limitação de taxa e disjuntor. O API7 Enterprise, como uma plataforma robusta de gerenciamento de API construída sobre o APISIX, oferece aos usuários funcionalidades ricas e flexíveis, com o deslocamento de tráfego canário desempenhando um papel fundamental em cenários como atualizações de serviço contínuas e validação de novas funcionalidades.
Visão Geral das Funcionalidades
Criação de Upstream Baseado em Serviços Existentes
Quando um serviço é implantado nos grupos de gateway do API7 Enterprise, os administradores podem facilmente derivar um novo upstream para deslocamento de tráfego canário a partir de serviços de upstream de linha de base existentes. O upstream pode herdar todas as configurações do upstream de linha de base ou selecionar herdar configurações históricas testadas. Esse design simplifica significativamente o processo de configuração, reduzindo trabalhos repetitivos e possíveis erros de configuração. Além disso, o upstream de deslocamento de tráfego canário suporta a configuração de novos nós ou a integração de mecanismos de descoberta de serviços. Isso significa que, sem afetar a lógica de negócios existente, uma parte do tráfego pode ser redirecionada para novos servidores ou ambientes para testes de desempenho, validação de funcionalidades ou outros tipos de avaliação.
Condições e Pesos Flexíveis de Deslocamento
Ao iniciar estratégias de deslocamento de tráfego canário, os administradores podem definir finamente as condições e pesos para o deslocamento de tráfego:
Condições de Deslocamento: Estas determinam qual tráfego deve ser direcionado para o upstream de deslocamento de tráfego canário. Os administradores podem combinar múltiplas condições usando operadores lógicos (como "AND" e "OR") para garantir que apenas solicitações que atendam a condições específicas entrem no ambiente de deslocamento de tráfego canário.
Propriedades que podem ser usadas para julgamento incluem:
-
Header: Campos específicos no cabeçalho da solicitação, como
User-Agent
. -
Cookie: Informações de cookie enviadas pelo cliente, comumente usadas para identificação de usuário ou reconhecimento de estado de sessão.
-
Parâmetros de Consulta: Parâmetros de string de consulta na URL.
-
Variáveis: Variáveis do sistema ou personalizadas, como localização geográfica ou papéis de usuário.
A lógica de correspondência inclui igual a (==), diferente de (~=), correspondência regular (~~), entre outros métodos, garantindo a flexibilidade e precisão do julgamento de condições.
Por exemplo, os administradores podem definir a seguinte condição de deslocamento: "Quando o campo
User-Agent
no cabeçalho da solicitação contém 'iPhone' e o campouser_group
no Cookie é igual a 'test_group', redirecione a solicitação para o upstream de deslocamento de tráfego."
Pesos de Deslocamento: Estes determinam qual porcentagem do tráfego deve ser direcionada para o upstream de deslocamento de tráfego canário. É um valor percentual que permite aos administradores aumentar ou diminuir gradualmente o tráfego que entra no ambiente de deslocamento de tráfego canário.
Inicialmente, o peso pode ser definido como um valor baixo (por exemplo, 10%) para garantir que novas funcionalidades sejam testadas em um pequeno alcance. À medida que os testes progridem e os resultados são coletados, o peso pode aumentar gradualmente até que, eventualmente, 100% do tráfego seja direcionado para a nova versão.
Ao ajustar flexivelmente as condições e pesos de deslocamento, os administradores podem controlar efetivamente o escopo e o impacto dos testes de deslocamento de tráfego canário, garantindo a implantação suave de novas funcionalidades e a estabilidade do sistema.
Cenários Práticos de Aplicação
-
Validação de Novas Funcionalidades: Quando uma equipe de desenvolvimento conclui uma nova funcionalidade e se prepara para lançá-la, o deslocamento de tráfego canário pode ser usado para liberar inicialmente a nova funcionalidade para um pequeno subconjunto de usuários ou grupos de usuários específicos. Isso permite coletar feedback dos usuários em um ambiente real, garantindo que, se surgirem problemas, o escopo de impacto seja gerenciável.
-
Testes de Desempenho: Durante eventos significativos ou cenários de alta concorrência, os administradores podem usar o deslocamento de tráfego canário para redirecionar uma parte do tráfego para nós recém-configurados e de maior capacidade, a fim de testar os limites de desempenho e a estabilidade do sistema.
-
Migração Gradual: Durante atualizações ou migrações de serviços, o deslocamento de tráfego canário pode ajudar os administradores a transicionar gradualmente o tráfego do ambiente antigo para o novo, garantindo um processo de migração suave.
Melhores Práticas
-
Definição Razoável das Condições de Deslocamento: Escolher condições de deslocamento apropriadas com base nas necessidades reais é crucial. Por exemplo, para testes direcionados a grupos de usuários específicos, o deslocamento preciso pode ser alcançado por meio de identificadores de usuário em Cookies ou Headers.
-
Ajuste Dinâmico dos Pesos: Durante os testes, ajustar dinamicamente os pesos de deslocamento com base nos resultados dos testes e no feedback dos usuários pode acelerar a coleta de dados válidos ou reduzir o escopo de problemas.
-
Monitoramento e Alertas: Fortalecer o monitoramento de métricas relevantes durante o deslocamento de tráfego e configurar mecanismos de alerta apropriados permite a detecção e resolução oportunas de problemas.
Conclusão
Através do deslocamento de tráfego canário do API7 Enterprise, as empresas podem não apenas garantir a estabilidade do serviço, mas também realizar testes de novas funcionalidades, otimização de desempenho e outras operações de forma flexível, fornecendo suporte robusto para o rápido crescimento dos negócios.