O que é traffic shifting?
Traffic shifting é a técnica de mover gradualmente a carga de requisições ao vivo de uma versão de um serviço para outra ajustando os pesos de roteamento.
O traffic shifting é o mecanismo que torna os rollouts graduais concretos. Em vez de uma troca instantânea, você direciona, digamos, 5% das requisições para a nova versão, depois 25%, depois 100% - ajustando o botão à medida que sua confiança cresce e recuando no instante em que algo parece errado.
Como funciona
Um router, load balancer ou service mesh divide as requisições recebidas entre as versões de acordo com os pesos configurados. Definir a nova versão em 10% envia aproximadamente uma a cada dez requisições para ela. Alterar os pesos reroteia o tráfego ao vivo sem precisar fazer deploy de nada, então a mudança é imediata e reversível.
Roteamento ponderado
O controle é o peso atribuído a cada versão. O roteamento ponderado permite que você expresse qualquer divisão - 95/5, 50/50, 0/100 - e faça a rampa através delas ao longo do tempo. É essa granularidade que transforma uma virada binária em uma progressão suave e controlável.
Viabilizando rollouts seguros
O traffic shifting é o motor por trás dos canary releases e das viradas blue-green. Ao expor a nova versão a uma parcela pequena e crescente do tráfego real, ele limita o raio de impacto de um release ruim e lhe dá tempo para observar o comportamento antes de comprometer a carga total.
Rollback instantâneo
Como a versão antiga ainda está rodando e servindo a maior parte do tráfego durante uma mudança, fazer o rollback é tão simples quanto redefinir o peso da nova versão para zero. Não há necessidade de fazer deploy do código antigo novamente - ele nunca foi embora - o que torna a recuperação de um rollout ruim quase instantânea.
Sticky sessions e estado
Mudar percentuais brutos de requisições pode ser complicado quando os usuários precisam de consistência - alternar entre versões no meio de uma sessão é confuso. Rotear por usuário ou sessão (de modo que um determinado usuário fique preso a uma versão) evita isso, ao custo de um controle um pouco mais grosseiro sobre a divisão exata do tráfego.
Principais conclusões
- O traffic shifting move a carga entre versões ajustando os pesos de roteamento.
- Ele sustenta as estratégias canary e blue-green e limita o raio de impacto.
- O rollback é instantâneo porque a versão antiga continua rodando o tempo todo.