Use o deslocamento de tráfego do canário - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use o deslocamento de tráfego do canário

Com o deslocamento de tráfego do canário, você pode testar uma parte do seu tráfego de endpoints na nova frota enquanto a frota antiga atende ao restante do tráfego. Essa etapa de testes é uma barreira de proteção que valida a funcionalidade da nova frota antes de transferir todo o tráfego para a nova frota. Você ainda tem os benefícios de uma implantação azul/verde e o atributo de canário adicionado permite garantir que sua nova frota (verde) possa realizar inferências antes de permitir que ela processe 100% do tráfego.

A parte da sua frota verde que é ativada para receber tráfego é chamada de canário e você pode escolher o tamanho desse canário. Observe que o tamanho do canário deve ser menor que ou igual a 50% da capacidade da nova frota. Quando o período de baking termina e nenhum alarme pré-especificado do Amazon CloudWatch dispara, o restante do tráfego se desloca da frota antiga (azul) para a frota verde. A mudança de tráfego do canário oferece mais segurança durante a sua implantação, pois qualquer problema com o modelo atualizado impacta apenas o canário.

O diagrama a seguir mostra como o deslocamento de tráfego do canário gerencia a distribuição do tráfego entre as frotas azul e verde.

Uma mudança em duas etapas e bem-sucedida do tráfego de canários da frota anterior para a nova frota.

Depois que o SageMaker AI provisiona a frota verde, ele roteia uma parte do tráfego de entrada (por exemplo, 25%) para o canário. Em seguida, começa o período de baking, durante o qual os seus alarmes do CloudWatch monitoram o desempenho da frota verde. Durante esse período, tanto a frota azul quanto a frota verde estão parcialmente ativas e recebendo tráfego. Se algum dos alarmes disparar durante o período de incorporação, o SageMaker AI iniciará uma reversão e todo o tráfego retornará à frota azul. Se nenhum dos alarmes disparar, todo o tráfego será transferido para a frota verde e haverá um período final de baking. Se o período final de incorporação terminar sem acionar nenhum alarme, a frota verde atenderá a todo tráfego e o SageMaker AI encerrará a frota azul.

Pré-requisitos

Antes de configurar uma implantação com mudança de tráfego do canário, você deve criar alarmes no Amazon CloudWatch para monitorar as métricas do seu endpoint. Os alarmes ficam ativos durante o período de baking e, se algum alarme disparar, todo o tráfego do endpoint será revertido para a frota azul. Para saber como configurar os alarmes do CloudWatch em um endpoint, consulte a página de pré-requisitos Configuração de reversão automática e monitoramento. Para obter mais informações sobre alarmes do CloudWatch, consulte Usando alarmes do Amazon CloudWatch, no Guia do usuário do Amazon CloudWatch.

Configurar o deslocamento de tráfego de canários

Quando estiver tudo pronto para a implantação e já tiver configurado os alarmes do Amazon CloudWatch para o endpoint, você poderá usar a API UpdateEndpoint do Amazon SageMaker AI ou o comando update-endpoint na AWS CLI para iniciar a implantação.

Como atualizar um endpoint (API)

O exemplo a seguir da API UpdateEndpoint mostra como você pode atualizar um endpoint com o deslocamento de tráfego do canário.

import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", DeploymentConfig={ "BlueGreenUpdatePolicy": { "TrafficRoutingConfiguration": { "Type": "CANARY", "CanarySize": { "Type": "CAPACITY_PERCENT", "Value": 30 }, "WaitIntervalInSeconds": 600 }, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" } ] } } )

Para configurar a opção de deslocamento de tráfego do canário, faça o seguinte:

  • Em EndpointName, use o nome do endpoint existente que você deseja atualizar.

  • Em EndpointConfigName, use o nome da configuração de endpoint que deseja usar.

  • Em DeploymentConfig e BlueGreenUpdatePolicy, em TrafficRoutingConfiguration, defina o parâmetro Type como CANARY. Isso especifica que a implantação usa o deslocamento de tráfego do canário.

  • No campo CanarySize, você pode alterar o tamanho do canário modificando os parâmetros Type e Value. Para Type, use CAPACITY_PERCENT, ou seja, a porcentagem da frota verde que você deseja usar como canário e, em seguida, defina Value como 30. Neste exemplo, você usa 30% da capacidade da frota verde como canário. Observe que o tamanho do canário deve ser igual ou menor que 50% da capacidade da frota verde.

  • Para WaitIntervalInSeconds, use 600. O parâmetro instrui o SageMaker AI para que aguarde o tempo especificado (em segundos) entre cada mudança de intervalo. Esse intervalo é a duração do período de baking do canário. No exemplo anterior, o SageMaker AI espera 10 minutos após a troca de canário e, em seguida, conclui o segundo e último deslocamento de tráfego.

  • Para TerminationWaitInSeconds, use 600. Esse parâmetro instrui o SageMaker AI para aguardar pelo tempo especificado (em segundos) depois que sua frota verde estiver totalmente ativa para só então encerrar as instâncias na frota azul. Neste exemplo, antes de encerrar a frota azul, o SageMaker AI espera 10 minutos após o período final de incorporação.

  • Para MaximumExecutionTimeoutInSeconds, use 1800. Esse parâmetro define o tempo máximo em que a implantação pode ser executada antes de o tempo limite ser atingido. No exemplo anterior, sua implantação tem um limite de 30 minutos para ser concluída.

  • Em AutoRollbackConfiguration, dentro do campo Alarms, você pode adicionar seus alarmes do CloudWatch por nome. Crie uma entrada AlarmName: <your-cw-alarm> para cada alarme que você deseja usar.

Como atualizar um endpoint com uma política de atualização azul/verde existente (API)

Ao usar a API CreateEndpoint para criar um endpoint, você pode, opcionalmente, especificar uma configuração de implantação para reutilizar em futuras atualizações de endpoint. Você pode usar as mesmas opções DeploymentConfig do exemplo anterior da API UpdateEndpoint. Não há alterações no comportamento da API CreateEndpoint. Especificar a configuração da implantação não executa automaticamente uma atualização azul/verde no seu endpoint.

A opção de usar uma configuração de implantação anterior acontece ao usar a API UpdateEndpoint para atualizar seu endpoint. Ao atualizar seu endpoint, você pode usar a opção RetainDeploymentConfig para manter a configuração da implantação especificada ao criar o endpoint.

Ao chamar a API UpdateEndpoint, defina RetainDeploymentConfig como True para manter as opções DeploymentConfig da configuração de endpoint originais.

response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", RetainDeploymentConfig=True )

Como atualizar um endpoint (CLI)

Se você estiver usando o AWS CLI, o exemplo a seguir mostra como iniciar uma implantação do canário azul/verde usando o comando update-endpoint.

update-endpoint --endpoint-name <your-endpoint-name> --endpoint-config-name <your-config-name> --deployment-config '"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "CANARY", "CanarySize": {"Type": "CAPACITY_PERCENT", "Value": 30}, "WaitIntervalInSeconds": 600}, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'

Para configurar a opção de deslocamento de tráfego do canário, faça o seguinte:

  • Em endpoint-name, use o nome do endpoint que você deseja atualizar.

  • Em endpoint-config-name, use o nome da configuração de endpoint que deseja usar.

  • Para deployment-config, use um objeto JSON da BlueGreenUpdatePolicy.

nota

Se você preferir salvar seu objeto JSON em um arquivo, consulte a Geração de esqueleto AWS CLI e parâmetros de entrada no Guia do usuário AWS CLI.