Migração de tráfego

A migração de tráfego alterna o encaminhamento de pedidos entre as versões num serviço da sua aplicação, movendo o tráfego de uma ou mais versões para uma única nova versão.

Para obter informações sobre a divisão de tráfego entre duas ou mais versões da sua app, consulte o artigo Divisão de tráfego.

Antes de começar

Antes de poder configurar o tráfego para uma versão, certifique-se de que a sua conta de utilizador inclui os privilégios necessários.

Migrar tráfego gradualmente

No ambiente padrão, pode optar por encaminhar pedidos para a versão de destino imediatamente ou de forma gradual.

Por predefinição, os pedidos de preparação estão desativados e o tráfego é migrado imediatamente para uma versão.

Também pode optar por ativar os pedidos de preparação se quiser que o tráfego seja migrado gradualmente para uma versão. Se migrar imediatamente o tráfego para uma nova versão sem instâncias em execução, vai verificar um pico na latência dos pedidos de carregamento. A implementação de uma nova versão com o mesmo nome de uma versão existente provoca uma migração de tráfego imediata. Todas as instâncias da versão antiga são imediatamente encerradas. Vai haver um pico de latência devido a pedidos de carregamento para a nova versão.

Se os pedidos de preparação estiverem ativados, só pode migrar tráfego entre versões que residam em ambientes diferentes se especificar que o tráfego deve ser migrado imediatamente.

Adicionar pedidos de preparação à sua aplicação

Quando os pedidos de preparação estão ativados, o tráfego é migrado gradualmente através do envio de um pedido de preparação para novas instâncias antes de essas instâncias receberem pedidos de utilizadores. Os pedidos de preparação melhoram o tempo de resposta do utilizador, permitindo que a versão que está a receber tráfego processe esses pedidos. No entanto, a migração de tráfego para a nova versão pode demorar algum tempo enquanto as novas instâncias são criadas.

Quando os pedidos de preparação não estão ativados, os pedidos dos utilizadores são enviados para essas novas instâncias antes de terem sido criadas. Devido ao atraso causado pela criação das novas instâncias e pelo carregamento do código da aplicação, pode ocorrer latência nas respostas dos utilizadores.

Para evitar a latência e ativar os pedidos de preparação, inclua o elemento inbound_services no ficheiro de configuração antes de implementar a aplicação no App Engine.

Por exemplo, inclui o seguinte no ficheiro app.yaml antes de o implementar no App Engine:

inbound_services:
- warmup

Para ver detalhes completos sobre a ativação de pedidos de preparação, consulte o artigo Configurar pedidos de preparação para melhorar o desempenho.

Migrar tráfego para uma nova versão

Consola

Para migrar o tráfego na Google Cloud consola, aceda à página Versões:

Aceda à página Versões

  1. Selecione a versão para a qual quer migrar 100% do tráfego.
  2. Clique em Migrar tráfego.
  3. Opcional: quando os pedidos de preparação estão ativados, o seu tráfego é migrado gradualmente. Para migrar o tráfego imediatamente, selecione a opção na secção Mostrar opções avançadas.

gcloud

Depois de instalar a CLI do Google Cloud, execute o comando gcloud app services set-traffic para migrar 100% do tráfego para uma única versão. Por exemplo:

  • Para migrar o tráfego imediatamente:
    gcloud app services set-traffic [MY_SERVICE] --splits [MY_VERSION]=1
  • Para migrar gradualmente o tráfego, inclua a flag opcional --migrate:
    gcloud app services set-traffic [MY_SERVICE] --splits [MY_VERSION]=1 --migrate

API

Para migrar o tráfego de forma programática, pode usar a API Admin. Consulte o artigo Migrar e dividir o tráfego para ver detalhes.