Execute blue/green atualizações para ambientes computacionais - AWS Batch

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á.

Execute blue/green atualizações para ambientes computacionais

Uma blue/green atualização é uma estratégia de atualização que reduz o tempo de inatividade e o risco criando um novo ambiente computacional (verde) junto com seu ambiente computacional existente (azul). Essa abordagem permite que você faça a transição gradual das cargas de trabalho para o novo ambiente, mantendo o ambiente existente operacional. Blue/green as atualizações fornecem o caminho de atualização mais seguro e funcionam com qualquer tipo de função de serviço ou estratégia de alocação.

Visão geral

As atualizações em azul/verde oferecem várias vantagens que as tornam ideais para ambientes de produção. Eles fornecem zero tempo de inatividade, mantendo suas cargas de trabalho em execução contínua durante o processo de atualização. A abordagem permite recursos fáceis de reversão, permitindo que você volte rapidamente para o ambiente original se surgirem problemas. Você pode implementar uma estratégia de transição gradual, verificando o desempenho do novo ambiente antes de mudar totalmente suas cargas de trabalho de produção. Esse método também oferece excelente mitigação de riscos, pois o ambiente original permanece inalterado e operacional até que você decida removê-lo.

Quando blue/green atualizações são necessárias

Você deve usar blue/green as atualizações nas seguintes situações:

  • Quando seu ambiente computacional usa a estratégia de BEST_FIT alocação (não suporta atualizações de infraestrutura)

  • Quando seu ambiente computacional não usa a função vinculada ao AWSServiceRoleForBatchserviço

  • Quando você precisa fazer a transição entre diferentes tipos de função de serviço

Blue/green updates are particularly recommended for production environments where zero downtime is critical for your workloads. This approach works well when you need to test new configurations before transitioning production workloads, ensuring that changes meet your performance and reliability requirements. Choose blue/greenatualiza quando a capacidade de reversão rápida é importante para suas operações, especialmente se você estiver atualizando de forma personalizada AMIs com alterações significativas. Esse método também é ideal quando você deseja validar as características de desempenho e o comportamento antes de se comprometer totalmente com as mudanças, proporcionando confiança em seu processo de atualização.

Pré-requisitos

Antes de realizar uma blue/green atualização, verifique se você tem:

  • Permissões apropriadas do IAM para criar e gerenciar ambientes computacionais

  • Acesso para visualizar e modificar as configurações da fila de trabalhos

  • Estratégias de repetição de tarefas configuradas para suas definições de tarefas para lidar com possíveis falhas durante a transição. Para obter mais informações, consulte Repetições de trabalho automatizadas.

  • O ID da AMI para o novo ambiente computacional. Isso pode ser:

    • Uma versão recente e aprovada da AMI otimizada do Amazon ECS (usada por padrão)

    • Uma AMI personalizada que atende à especificação AMI de instância de contêiner do Amazon ECS. Ao usar uma AMI personalizada, você pode especificá-la de uma das seguintes formas:

      • Usando o campo de substituição do ID da imagem na configuração EC2

      • Especificando isso em um modelo de lançamento

      Para obter mais informações sobre a criação personalizada AMIs, consulteTutorial: criar uma AMI de recurso de computação.

Antes de criar o novo ambiente, você precisa registrar a configuração do seu ambiente computacional existente. Você pode fazer isso usando o AWS Management Console ou AWS CLI o.

nota

Os procedimentos a seguir detalham como realizar uma blue/green atualização que só altera a AMI. Você pode atualizar outras configurações para o novo ambiente.

Importante

Quando você remove o ambiente de computação antigo (azul), qualquer trabalho atualmente em execução nessas instâncias falhará porque as instâncias serão encerradas. Configure estratégias de repetição de tarefas em suas definições de tarefas para lidar com essas falhas automaticamente. Para obter mais informações, consulte Repetições de trabalho automatizadas.

Quando você estiver confiante no novo ambiente:

  1. Edite a fila de trabalhos para remover o ambiente computacional antigo.

  2. Aguarde a conclusão de qualquer trabalho em execução no ambiente antigo.

  3. Exclua o antigo ambiente de computação.

Performing blue/green updates using the AWS Management Console
  1. Clone seu ambiente computacional atual

    1. Abra o AWS Batch console em https://console.aws.amazon.com/batch/.

    2. Selecione seu ambiente computacional existente.

    3. Escolha Ações e depois Clonar.

    4. Em Nome, insira um nome exclusivo para seu novo ambiente computacional.

    5. Escolha Próximo.

    6. Na seção Configuração da instância, atualize as configurações da AMI:

      1. Expanda Configuração Adicional.

      2. Para EC2 configuração, especifique o novo tipo de AMI em Tipo de imagem e ID de AMI no campo Substituição de ID de imagem.

    7. Escolha Próximo.

    8. Para Configuração de rede, escolha Avançar.

    9. Revise as outras configurações que são copiadas automaticamente do seu ambiente existente.

    10. Escolha Criar ambiente computacional.

    11. Aguarde até que o novo status do ambiente computacional se torneVALID.

  2. Alterar a ordem da fila de trabalhos

    1. No painel de navegação, escolha Filas de Tarefas.

    2. Selecione a fila de trabalhos associada ao seu ambiente computacional existente.

    3. Escolha Editar.

    4. Em Ambiente de computação conectado, adicione o novo ambiente de computação:

      • Adicione o novo ambiente de computação com um número de pedido maior do que o ambiente existente para fazer a transição da carga de trabalho.

      • Depois de verificar se o novo ambiente está funcionando corretamente, você pode torná-lo o ambiente principal fornecendo a ele um número de pedido menor.

    5. Escolha Atualizar fila de trabalhos.

  3. Limpeza

    1. Monitore a execução do trabalho no novo ambiente para garantir que tudo esteja funcionando conforme o esperado.

    2. Quando você estiver confiante no novo ambiente:

      1. Edite a fila de trabalhos para remover o ambiente computacional antigo.

      2. Aguarde a conclusão de qualquer trabalho em execução no ambiente antigo.

      3. Exclua o antigo ambiente de computação.

Performing blue/green updates using the AWS CLI
  1. Para obter a configuração usando o AWS CLI, use o seguinte comando:

    aws batch describe-compute-environments \ --compute-environments your-compute-environment-name

    Salve a saída para referência ao criar o novo ambiente.

  2. Crie um novo ambiente computacional usando a configuração do seu ambiente atual, mas com a nova AMI. Aqui está um exemplo de estrutura de comando:

    Substitua os valores de exemplo pela configuração real da etapa anterior:

    cat <<EOF > ./blue-green-compute-environment.json { "computeEnvironmentName": "your-new-compute-environment-name", "type": "MANAGED", "state": "ENABLED", "computeResources": { "instanceRole": "arn:aws:iam::012345678901:instance-profile/ecsInstanceRole", "type": "EC2", "minvCpus": 2, "desiredvCpus": 2, "maxvCpus": 256, "instanceTypes": [ "optimal" ], "allocationStrategy": "BEST_FIT_PROGRESSIVE", "ec2Configuration": [ { "imageType": "ECS_AL2023", "imageIdOverride": "ami-0abcdef1234567890" } ], "subnets": [, "subnet-0abcdef1234567890" ], "securityGroupIds": [ "sg-0abcdef1234567890" ] } } EOF
    $ aws batch create-compute-environment --cli-input-json file://./blue-green-compute-environment.json
  3. Aguarde até que o novo ambiente esteja disponível:

    aws batch describe-compute-environments \ --compute-environments your-new-compute-environment-name \ --query 'computeEnvironments[].status'
  4. Adicione o novo ambiente de computação à sua fila de trabalhos:

    aws batch update-job-queue \ --job-queue your-job-queue \ --compute-environment-order order=1,computeEnvironment=your-existing-environment \ order=2,computeEnvironment=your-new-compute-environment-name
  5. Depois de verificado, atualize novamente para tornar o novo ambiente primário:

    aws batch update-job-queue \ --job-queue your-job-queue \ --compute-environment-order order=1,computeEnvironment=your-new-compute-environment-name

    Depois que todos os trabalhos forem concluídos no ambiente antigo, desative-o e exclua-o:

    aws batch update-compute-environment \ --compute-environment your-existing-environment \ --state DISABLED
    aws batch delete-compute-environment \ --compute-environment your-existing-environment