Esegui blue/green aggiornamenti per gli ambienti di elaborazione - AWS Batch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui blue/green aggiornamenti per gli ambienti di elaborazione

Un blue/green aggiornamento è una strategia di aggiornamento che riduce i tempi di inattività e i rischi creando un nuovo ambiente di elaborazione (verde) accanto all'ambiente di elaborazione esistente (blu). Questo approccio consente di trasferire gradualmente i carichi di lavoro al nuovo ambiente mantenendo operativo l'ambiente esistente. Blue/green gli aggiornamenti forniscono il percorso di aggiornamento più sicuro e funzionano con qualsiasi tipo di ruolo di servizio o strategia di allocazione.

Panoramica

Gli aggiornamenti blu/verdi offrono diversi vantaggi che li rendono ideali per gli ambienti di produzione. Garantiscono zero tempi di inattività mantenendo i carichi di lavoro in esecuzione ininterrottamente durante il processo di aggiornamento. L'approccio consente semplici funzionalità di rollback, che consentono di ripristinare rapidamente l'ambiente originale in caso di problemi. È possibile implementare una strategia di transizione graduale, verificando le prestazioni del nuovo ambiente prima di passare completamente ai carichi di lavoro di produzione. Questo metodo offre anche un'eccellente mitigazione del rischio, poiché l'ambiente originale rimane invariato e operativo fino a quando non si sceglie di rimuoverlo.

Quando sono necessari blue/green aggiornamenti

È necessario utilizzare blue/green gli aggiornamenti nelle seguenti situazioni:

  • Quando l'ambiente di elaborazione utilizza la strategia di BEST_FIT allocazione (non supporta gli aggiornamenti dell'infrastruttura)

  • Quando l'ambiente di elaborazione non utilizza il ruolo collegato ai servizi AWSServiceRoleForBatch

  • Quando è necessario passare da un tipo di ruolo di servizio all'altro

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/greenaggiornamenti quando la funzionalità di rollback rapido è importante per le tue operazioni, specialmente se esegui aggiornamenti personalizzati AMIs con modifiche significative. Questo metodo è ideale anche quando si desidera convalidare le caratteristiche e il comportamento delle prestazioni prima di impegnarsi completamente nelle modifiche, in modo da avere fiducia nel processo di aggiornamento.

Prerequisiti

Prima di eseguire un blue/green aggiornamento, assicuratevi di avere:

  • Autorizzazioni IAM appropriate per creare e gestire ambienti di elaborazione

  • Accesso per visualizzare e modificare le impostazioni della coda di lavoro

  • Strategie di rielaborazione dei lavori configurate per le definizioni dei lavori per gestire potenziali errori durante la transizione. Per ulteriori informazioni, consulta Tentativi di processo automatici.

  • L'ID AMI per il nuovo ambiente di calcolo. Questo può essere uno dei seguenti:

    • Una versione recente e approvata dell'AMI ottimizzata Amazon ECS (utilizzata per impostazione predefinita)

    • Un'AMI personalizzata che soddisfa le specifiche AMI dell'istanza di container Amazon ECS. Quando si utilizza un'AMI personalizzata, è possibile specificarla in uno dei seguenti modi:

      • Utilizzo del campo Image ID override nella configurazione EC2

      • Specificandolo in un modello di lancio

      Per ulteriori informazioni sulla creazione di contenuti personalizzati AMIs, consultaTutorial: Creare un'AMI per risorse di calcolo.

Prima di creare il nuovo ambiente, è necessario registrare la configurazione dell'ambiente di elaborazione esistente. È possibile eseguire questa operazione utilizzando il AWS Management Console o il AWS CLI.

Nota

Le seguenti procedure descrivono in dettaglio come eseguire un blue/green aggiornamento che modifichi solo l'AMI. È possibile aggiornare altre impostazioni per il nuovo ambiente.

Importante

Quando rimuovi il vecchio ambiente di calcolo (blu), tutti i processi attualmente in esecuzione su tali istanze falliranno perché le istanze verranno terminate. Configura le strategie di ripetizione dei job nelle definizioni dei job per gestire automaticamente questi errori. Per ulteriori informazioni, consulta Tentativi di processo automatici.

Una volta acquisita fiducia nel nuovo ambiente:

  1. Modifica la coda dei lavori per rimuovere il vecchio ambiente di calcolo.

  2. Attendi il completamento di tutti i processi in esecuzione nel vecchio ambiente.

  3. Eliminare il vecchio ambiente di calcolo.

Performing blue/green updates using the AWS Management Console
  1. Clona il tuo ambiente di elaborazione attuale

    1. Apri la AWS Batch console all'indirizzo. https://console.aws.amazon.com/batch/

    2. Seleziona l'ambiente di calcolo esistente.

    3. Scegli Azioni e poi Clona.

    4. In Nome, inserisci un nome univoco per il tuo nuovo ambiente di calcolo.

    5. Scegli Next (Successivo).

    6. Nella sezione Configurazione dell'istanza, aggiorna le impostazioni AMI:

      1. Espandere Additional configuration (Configurazione aggiuntiva).

      2. Per la EC2 configurazione, specifica il nuovo tipo di AMI in Tipo di immagine e ID AMI nel campo Image ID override.

    7. Scegli Next (Successivo).

    8. Per la configurazione di rete, scegli Avanti.

    9. Controlla le altre impostazioni che vengono copiate automaticamente dall'ambiente esistente.

    10. Scegli Crea ambiente di calcolo.

    11. Attendi che diventi lo stato del nuovo ambiente di calcolo. VALID

  2. Modifica l'ordine della coda dei lavori

    1. Nel riquadro di navigazione, scegli Job queues.

    2. Seleziona la coda di lavoro associata all'ambiente di calcolo esistente.

    3. Scegli Modifica.

    4. In Ambiente Connected Compute, aggiungi il nuovo ambiente di calcolo:

      • Aggiungi il nuovo ambiente di elaborazione con un numero d'ordine più alto rispetto all'ambiente esistente per trasferire il carico di lavoro.

      • Dopo aver verificato che il nuovo ambiente funzioni correttamente, puoi renderlo l'ambiente principale assegnandogli un numero d'ordine inferiore.

    5. Scegli Aggiorna coda lavori.

  3. Eliminazione

    1. Monitora l'esecuzione dei lavori nel nuovo ambiente per assicurarti che tutto funzioni come previsto.

    2. Una volta acquisita fiducia nel nuovo ambiente:

      1. Modifica la coda dei lavori per rimuovere il vecchio ambiente di calcolo.

      2. Attendi il completamento di tutti i processi in esecuzione nel vecchio ambiente.

      3. Eliminare il vecchio ambiente di calcolo.

Performing blue/green updates using the AWS CLI
  1. Per ottenere la configurazione utilizzando il AWS CLI, utilizzate il seguente comando:

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

    Salvate l'output come riferimento durante la creazione del nuovo ambiente.

  2. Crea un nuovo ambiente di calcolo utilizzando la configurazione dell'ambiente esistente, ma con la nuova AMI. Ecco un esempio di struttura di comando:

    Sostituisci i valori di esempio con la configurazione effettiva del passaggio precedente:

    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. Attendi che il nuovo ambiente diventi disponibile:

    aws batch describe-compute-environments \ --compute-environments your-new-compute-environment-name \ --query 'computeEnvironments[].status'
  4. Aggiungi il nuovo ambiente di elaborazione alla tua coda di lavoro:

    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. Una volta verificato, esegui nuovamente l'aggiornamento per rendere principale il nuovo ambiente:

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

    Una volta completati tutti i job nel vecchio ambiente, disattivatelo e poi cancellatelo:

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