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á.
Usar o deslocamento de tráfego linear
O deslocamento de tráfego linear permite que você transfira gradualmente o tráfego de sua frota antiga (frota azul) para sua nova frota (frota verde). Com deslocamento de tráfego linear, você pode deslocar o tráfego em várias etapas, minimizando a chance de uma interrupção no seu endpoint. Essa opção de implantação azul/verde oferece maior controle da granularidade sobre o deslocamento de tráfego.
Você pode escolher o número de instâncias ou a porcentagem da capacidade da frota verde a ser ativada durante cada etapa. Cada etapa linear deve estar apenas entre 10 e 50% da capacidade da frota verde. Para cada etapa, há um período de baking durante o qual seus alarmes pré-especificados do Amazon CloudWatch monitoram as métricas da frota verde. Quando o período de baking termina e nenhum alarme dispara, a porção ativa da sua frota verde continua recebendo tráfego e uma nova etapa começa. Se qualquer alarme for disparado durante o período de baking, o tráfego do endpoint irá se reverter para sua frota azul.
O diagrama a seguir mostra como o deslocamento de tráfego linear roteia o tráfego para as frotas azul e verde.
Depois que o SageMaker AI provisiona a nova frota, a primeira parte da frota verde é ativada e recebe tráfego. O SageMaker AI desativa a porção de mesmo tamanho da frota azul e o período de incorporação começa. Se qualquer alarme for disparado, todo o tráfego do endpoint irá se reverter para sua frota azul. Se o período de baking terminar, a próxima etapa será iniciada. Outra parte da frota verde é ativada e recebe tráfego, parte da frota azul é desativada e outro período de baking começa. O mesmo processo se repete até que a frota azul seja totalmente desativada e a frota verde esteja totalmente ativa e recebendo todo o tráfego. Se um alarme disparar a qualquer momento, o SageMaker AI encerrará o processo de deslocamento e 100% do tráfego voltará para a frota azul.
Pré-requisitos
Antes de configurar uma implantação deslocamento de tráfego linear, você deve criar alarmes do CloudWatch para monitorar as métricas a partir 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 linear
Quando tudo estiver pronto para a implantação e tiver configurado os alarmes do CloudWatch para o seu endpoint, você poderá usar a API UpdateEndpoint do Amazon SageMaker AI ou o comando update-endpoint na AWS CLI para iniciar a implantação.
Tópicos
Como atualizar um endpoint (API)
O exemplo a seguir da API UpdateEndpoint mostra como você pode atualizar um endpoint com deslocamento de tráfego linear.
import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", DeploymentConfig={ "BlueGreenUpdatePolicy": { "TrafficRoutingConfiguration": { "Type": "LINEAR", "LinearStepSize": { "Type": "CAPACITY_PERCENT", "Value": 20 }, "WaitIntervalInSeconds": 300 }, "TerminationWaitInSeconds": 300, "MaximumExecutionTimeoutInSeconds": 3600 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" } ] } } )
Para configurar a opção de deslocamento de tráfego linear, 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
DeploymentConfigeBlueGreenUpdatePolicy, noTrafficRoutingConfiguration, defina o parâmetroTypecomoLINEAR. Isso especifica que a implantação usa o modo de deslocamento de tráfego linear.No campo
LinearStepSizevocê pode alterar o tamanho das etapas modificando os parâmetrosTypeeValue. ParaType, useCAPACITY_PERCENT, ou seja, a porcentagem de sua frota verde que você deseja usar como tamanho da etapa e, em seguida, definaValuecomo20. Neste exemplo, você ativa 20% da capacidade da frota verde para cada etapa de deslocamento de tráfego. Observe que, ao personalizar o tamanho da etapa linear, você deve usar apenas etapas que representem 10% a 50% da capacidade da frota verde.Para
WaitIntervalInSeconds, use300. O parâmetro instrui o SageMaker AI para aguardar pelo tempo especificado (em segundos) entre cada deslocamento de tráfego. Esse intervalo é a duração do período de baking entre cada etapa linear. No exemplo anterior, o SageMaker AI espera por 5 minutos entre cada deslocamento de tráfego.Para
TerminationWaitInSeconds, use300. 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 5 minutos após o período final de incorporação.Para
MaximumExecutionTimeoutInSeconds, use3600. 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 1 hora para ser concluída.Em
AutoRollbackConfiguration, dentro do campoAlarms, você pode adicionar seus alarmes do CloudWatch por nome. Crie uma entradaAlarmName:para cada alarme que você deseja usar.<your-cw-alarm>
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 linear azul/verde usando o comando atualizar endpoint.
update-endpoint --endpoint-name<your-endpoint-name>--endpoint-config-name<your-config-name>--deployment-config '{"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "LINEAR", "LinearStepSize": {"Type": "CAPACITY_PERCENT", "Value": 20}, "WaitIntervalInSeconds": 300}, "TerminationWaitInSeconds": 300, "MaximumExecutionTimeoutInSeconds": 3600}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'
Para configurar a opção de deslocamento de tráfego linear, 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.