

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Effectuer des blue/green mises à jour pour les environnements informatiques
<a name="blue-green-updates"></a>

Une blue/green mise à jour est une stratégie de mise à jour qui réduit les temps d'arrêt et les risques en créant un nouvel environnement informatique (vert) en plus de votre environnement informatique existant (bleu). Cette approche vous permet de transférer progressivement les charges de travail vers le nouvel environnement tout en maintenant le fonctionnement de l'environnement existant. Blue/green les mises à jour fournissent le chemin de mise à jour le plus sûr et fonctionnent avec tous les types de rôles de service ou de stratégie d'allocation.

## Présentation de
<a name="blue-green-overview"></a>

Les mises à jour bleu/vert offrent plusieurs avantages qui les rendent idéales pour les environnements de production. Ils *n'offrent aucun temps d'arrêt* en assurant le fonctionnement continu de vos charges de travail pendant le processus de mise à jour. Cette approche permet des fonctionnalités de *restauration faciles*, vous permettant de revenir rapidement à l'environnement d'origine en cas de problème. Vous pouvez mettre en œuvre une stratégie de *transition progressive*, en vérifiant les performances du nouvel environnement avant de transférer complètement vos charges de travail de production. Cette méthode permet également une excellente *atténuation des risques* puisque l'environnement d'origine reste inchangé et opérationnel jusqu'à ce que vous choisissiez de le supprimer.

### Quand des blue/green mises à jour sont nécessaires
<a name="blue-green-when-required"></a>

Vous devez utiliser les blue/green mises à jour dans les situations suivantes :
+ Lorsque votre environnement informatique utilise une stratégie `BEST_FIT` d'allocation (ne prend pas en charge les mises à jour de l'infrastructure)
+ Lorsque votre environnement informatique n'utilise pas le rôle lié à *AWSServiceRoleForBatch*un service
+ Quand vous devez passer d'un type de rôle de service à un autre

### Quand des blue/green mises à jour sont recommandées
<a name="blue-green-when-recommended"></a>

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/greenmises à jour lorsque la fonctionnalité de restauration rapide est importante pour vos opérations, en particulier si vous effectuez une mise à jour personnalisée AMIs avec des modifications importantes. Cette méthode est également idéale lorsque vous souhaitez valider les caractéristiques de performance et le comportement avant de procéder entièrement aux modifications, afin de garantir la confiance dans votre processus de mise à jour.

### Conditions préalables
<a name="blue-green-prerequisites"></a>

Avant d'effectuer une blue/green mise à jour, assurez-vous d'avoir :
+ [Autorisations IAM](IAM_policies.md#IAM_policies.title) appropriées pour créer et gérer des environnements informatiques
+ Accès pour afficher et modifier les paramètres de la file d'attente des tâches
+ Stratégies de nouvelle tentative de tâche configurées pour vos définitions de tâches afin de gérer les échecs potentiels pendant la transition. Pour de plus amples informations, veuillez consulter [Nouvelles tentatives de travail automatisées](job_retries.md).
+ ID AMI du nouvel environnement informatique. Cela peut être soit :
  + Une version récente et approuvée de l'AMI optimisée pour Amazon ECS (utilisée par défaut)
  + Une AMI personnalisée qui répond aux spécifications de l'AMI d'instance de conteneur Amazon ECS. Lorsque vous utilisez une AMI personnalisée, vous pouvez la spécifier de l'une des manières suivantes :
    + Utilisation du champ **Image ID override** dans la configuration EC2
    + Le spécifier dans un modèle de lancement

    Pour plus d'informations sur la création de AMIs personnalisations, consultez[Tutoriel : Création d'une AMI de ressources de calcul](create-batch-ami.md).

Avant de créer le nouvel environnement, vous devez enregistrer la configuration de votre environnement informatique existant. Vous pouvez le faire en utilisant le AWS Management Console ou le AWS CLI. 

**Note**  
Les procédures suivantes expliquent comment effectuer une blue/green mise à jour qui modifie uniquement l'AMI. Vous pouvez mettre à jour d'autres paramètres pour le nouvel environnement.

**Important**  
Lorsque vous supprimez l'ancien environnement informatique (bleu), toutes les tâches en cours d'exécution sur ces instances échoueront car les instances seront arrêtées. Configurez des stratégies de nouvelle tentative dans vos définitions de tâches afin de gérer automatiquement ces échecs. Pour de plus amples informations, veuillez consulter [Nouvelles tentatives de travail automatisées](job_retries.md).  
Une fois que vous aurez confiance dans le nouvel environnement :  
Modifiez la file d'attente des tâches pour supprimer l'ancien environnement informatique.
Attendez que toutes les tâches en cours dans l'ancien environnement soient terminées.
Supprimez l'ancien environnement de calcul.

------
#### [ Performing blue/green updates using the AWS Management Console ]

1. Clonez votre environnement informatique actuel

   1. Ouvrez la AWS Batch console à l'adresse [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

   1. Sélectionnez votre environnement informatique existant.

   1. Choisissez **Actions**, puis **Cloner**.

   1. Dans **Nom**, entrez un nom unique pour votre nouvel environnement informatique. 

   1. Choisissez **Suivant**.

   1. Dans la section **Configuration de l'instance**, mettez à jour les paramètres de l'AMI :

      1. Développez **Additional configuration (Configuration supplémentaire)**.

      1. Pour la **configuration EC2**, spécifiez le nouveau type d'AMI dans **Type d'image** et l'ID d'AMI dans le champ **Image ID override**.

   1. Choisissez **Suivant**.

   1. Pour **Configuration réseau**, choisissez **Next**.

   1. Passez en revue les autres paramètres qui sont automatiquement copiés depuis votre environnement existant.

   1. Choisissez **Créer un environnement informatique**.

   1. Attendez que le nouvel état de l'environnement informatique soit atteint`VALID`.

1. Modifier l'ordre de la file d'attente des tâches

   1. Dans le volet de navigation, choisissez **Job queues**.

   1. Sélectionnez la file d'attente de tâches associée à votre environnement informatique existant.

   1. Choisissez **Modifier**.

   1. Sous **Environnement informatique connecté**, ajoutez le nouvel environnement de calcul :
      + Ajoutez le nouvel environnement informatique avec un numéro de commande supérieur à celui de l'environnement existant pour transférer la charge de travail.
      + Une fois que vous avez vérifié que le nouvel environnement fonctionne correctement, vous pouvez en faire l'environnement principal en lui attribuant un numéro de commande inférieur.

   1. Choisissez **Mettre à jour la file d'attente des tâches**.

1. Nettoyage

   1. Surveillez l'exécution des tâches dans le nouvel environnement pour vous assurer que tout fonctionne comme prévu.

   1. Une fois que vous aurez confiance dans le nouvel environnement :

      1. Modifiez la file d'attente des tâches pour supprimer l'ancien environnement informatique.

      1. Attendez que toutes les tâches en cours dans l'ancien environnement soient terminées.

      1. Supprimez l'ancien environnement de calcul.

------
#### [ Performing blue/green updates using the AWS CLI ]

1. Pour obtenir la configuration à l'aide de AWS CLI, utilisez la commande suivante :

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

   Enregistrez la sortie pour référence lors de la création du nouvel environnement.

1. Créez un nouvel environnement informatique en utilisant la configuration de votre environnement existant, mais avec la nouvelle AMI. Voici un exemple de structure de commande :

   Remplacez les valeurs d'exemple par votre configuration réelle de l'étape précédente :

   ```
   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
   ```

1. Attendez que le nouvel environnement soit disponible :

   ```
   aws batch describe-compute-environments \
     --compute-environments your-new-compute-environment-name \
     --query 'computeEnvironments[].status'
   ```

1. Ajoutez le nouvel environnement informatique à votre file d'attente de tâches :

   ```
   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
   ```

1. Une fois vérifié, effectuez une nouvelle mise à jour pour rendre le nouvel environnement principal :

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

   Une fois toutes les tâches terminées dans l'ancien environnement, désactivez-le puis supprimez-le :

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

   ```
   aws batch delete-compute-environment \
     --compute-environment your-existing-environment
   ```

------