Realizar atualizações em azul/verde para ambientes computacionais - AWS Batch

Realizar atualizações em azul/verde para ambientes computacionais

Uma atualização azul/verde é 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 dos workloads para o novo ambiente, mantendo o ambiente existente operacional. As atualizações azul/verde fornecem o caminho de atualização mais seguro e funcionam com qualquer tipo de perfil de serviço ou estratégia de alocação.

Visão geral

As atualizações azul/verde oferecem várias vantagens que as tornam ideais para ambientes de produção. Elas fornecem zero tempo de inatividade, mantendo seus workloads em execução contínua durante o processo de atualização. A abordagem permite recursos como reversão fácil, 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 seus workloads 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 atualizações azul/verde são necessárias

Você deve usar atualizações azul/verde nas seguintes situações:

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

  • Quando seu ambiente computacional não usa o perfil vinculado ao serviço AWSServiceRoleForBatch

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

As atualizações em azul e verde são especialmente recomendadas para ambientes de produção em que o tempo de inatividade zero é essencial para seus workloads. Essa abordagem funciona bem quando você precisa testar novas configurações antes de fazer a transição dos workloads de produção, garantindo que as alterações atendam aos seus requisitos de desempenho e confiabilidade. Escolha atualizações azul/verde quando a capacidade de reversão rápida for importante para suas operações, especialmente se você estiver atualizando AMIs personalizadas 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 atualização azul/verde, verifique se você tem:

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

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

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

  • O AMI ID para o novo ambiente computacional. Ele 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 da AMI da instância de contêiner do Amazon ECS. Ao usar uma AMI personalizada, você pode especificá-la em uma das formas a seguir:

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

      • Especificando em um modelo de inicialização

      Para obter mais informações sobre como criar AMIs personalizadas, consulte Tutorial: 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 Console de gerenciamento da AWS ou a AWS CLI.

nota

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

Importante

Quando você remove o ambiente computacional 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 trabalhos em suas definições de trabalhos 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. Remova o antigo ambiente computacional da fila de trabalhos.

  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 Console de gerenciamento da AWS
  1. Clone seu ambiente computacional atual

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

    2. Selecione seu ambiente computacional existente.

    3. Escolha Ações e então Clonar.

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

    5. Escolha Próximo.

    6. Na seção Configuração da instância, defina estes valores:

      1. Expanda Configuração Adicional.

      2. Para a Configuração EC2, 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 torne VALID.

  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 computacional conectado, adicione o novo ambiente computacional:

      • Adicione o novo ambiente computacional com um número de pedido maior do que o ambiente existente para fazer a transição do workload.

      • 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. Remova o antigo ambiente computacional da fila de trabalhos.

      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. Veja 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 fique disponível:

    aws batch describe-compute-environments \ --compute-environments your-new-compute-environment-name \ --query 'computeEnvironments[].status'
  4. Adicione o ambiente computacional a 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 e exclua o ambiente antigo:

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