Realizar actualizaciones azul/verde para entornos de computación - AWS Batch

Realizar actualizaciones azul/verde para entornos de computación

Una actualización azul/verde es una estrategia de actualización que disminuye el tiempo de inactividad y el riesgo al crear un nuevo entorno de computación (verde) junto con el entorno de computación existente (azul). Este enfoque permite realizar la transición progresiva de las cargas de trabajo al nuevo entorno, sin dejar de mantener operativo el entorno existente. Las actualizaciones azul/verde brindan la ruta de actualización más segura y funcionan con cualquier tipo de rol de servicio o estrategia de asignación.

Descripción general

Las actualizaciones azul/verde ofrecen varias ventajas que las hacen ideales para los entornos de producción. Proporcionan un mínimo tiempo de inactividad al mantener sus cargas de trabajo en funcionamiento continuo durante el proceso de actualización. Este enfoque ofrece funciones de reversión sencillas, lo que permite volver rápidamente al entorno original en caso de que surjan problemas. Puede implementar una estrategia de transición progresiva verificando el rendimiento del nuevo entorno antes de cambiar por completo las cargas de trabajo de producción. Este método también proporciona una excelente mitigación de riesgos, ya que el entorno original permanece inalterado y operativo hasta que se decida su eliminación.

Cuando se requieren actualizaciones azul/verde

Debe utilizar las actualizaciones azul/verde en las siguientes situaciones:

  • cuando su entorno de computación utiliza una estrategia de asignación BEST_FIT (no admite actualizaciones de infraestructura),

  • cuando su entorno de computación no utiliza el rol vinculado al servicio AWSServiceRoleForBatch,

  • cuando necesite realizar la transición entre distintos tipos de rol de servicio.

Las actualizaciones azul/verde se recomiendan especialmente para los entornos de producción donde es fundamental que las cargas de trabajo no sufran ningún tiempo de inactividad. Este enfoque funciona bien cuando se necesita probar nuevas configuraciones antes de realizar la transición de las cargas de trabajo de producción, lo que garantiza que los cambios cumplan los requisitos de rendimiento y fiabilidad. Elija actualizaciones azul/verde cuando la capacidad de reversión rápida sea esencial para sus operaciones, especialmente si va a actualizar las AMI personalizadas con cambios importantes. Además, este método es ideal para validar las características y el comportamiento del rendimiento antes de realizar cambios por completo, ya que entrega confianza en el proceso de actualización.

Requisitos previos

Antes de realizar una actualización azul/verde, asegúrese de que dispone de lo siguiente:

  • Permisos de IAM adecuados para crear y administrar entornos de computación

  • Acceso para ver y modificar la configuración de la cola de trabajos

  • Estrategias de reintento de trabajo que estén configuradas para las definiciones de trabajo a fin de gestionar los posibles errores durante la transición. Para obtener más información, consulte Reintentos automáticos de trabajo.

  • El ID de AMI para el nuevo entorno de computación. Puede ser:

    • Una versión aprobada y reciente de la AMI optimizada para Amazon ECS (utilizada de manera predeterminada)

    • Una AMI personalizada que cumple con la especificación de la AMI de instancia de contenedor de Amazon ECS. Con una AMI personalizada, puede especificarla de una de las siguientes formas:

      • Uso del campo de Anulación del ID de imagen en la configuración de EC2

      • Especificación de la información en una plantilla de lanzamiento

      Para obtener más información sobre la creación de las AMI personalizadas, consulte Tutorial: creación de una AMI de recursos de computación.

Antes de crear el nuevo entorno, debe registrar la configuración del entorno de computación existente. Para ello, puede utilizar la Consola de administración de AWS o la AWS CLI.

nota

Los siguientes procedimientos detallan cómo realizar una actualización azul/verde que solo cambia la AMI. Puede actualizar otros ajustes para el nuevo entorno.

importante

Al eliminar el entorno de computación anterior (azul), cualquier trabajo que se esté ejecutando ahora en esas instancias fallará porque las instancias se cancelarán. Configure las estrategias de reintento de tareas en las definiciones de tareas para gestionar estos errores de forma automática. Para obtener más información, consulte Reintentos automáticos de trabajo.

Una vez que confíe en el nuevo entorno:

  1. Edite la cola de trabajos para eliminar el entorno de computación anterior.

  2. Espere a que se complete cualquier trabajo en ejecución en el entorno anterior.

  3. Elimine el entorno informático antiguo.

Performing blue/green updates using the Consola de administración de AWS
  1. Clone su entorno de computación actual.

    1. Abra la consola AWS Batch en https://console.aws.amazon.com/batch/.

    2. Seleccione su entorno de computación actual.

    3. Elija Actions (Acciones) y, a continuación, elija Clone (Clonar).

    4. En Name (Nombre), ingrese un nombre único para el nuevo entorno de computación.

    5. Elija Siguiente.

    6. En la sección Instance configuration (Configuración de instancia), actualice la configuración de AMI:

      1. Expanda Configuración adicional.

      2. En Configuración de EC2, especifique el nuevo tipo de AMI en Tipo de imagen y el ID de AMI en el campo Anulación del ID de imagen.

    7. Elija Siguiente.

    8. En Network configuration (Configuración de red), seleccione Next (Siguiente).

    9. Revise las demás configuraciones que se copian automáticamente del entorno actual.

    10. Seleccione Create compute environment (Crear entorno de computación).

    11. Espere a que el estado del nuevo entorno de comutación cambie a VALID.

  2. Cambie el orden de la cola de trabajos

    1. En el panel de navegación, elija Colas de trabajos.

    2. Seleccione la cola de trabajos asociada al entorno de computación actual.

    3. Seleccione Editar.

    4. En Connected Compute environment (Entorno de computación conectado), agregue el nuevo entorno de computación:

      • Agregue el nuevo entorno de computación con un número de orden superior al del entorno existente para realizar la transición de la carga de trabajo.

      • Una vez que compruebe que el nuevo entorno funciona correctamente, puede convertirlo en el entorno principal asignándole un número de orden inferior.

    5. Seleccione Actualizar cola de trabajos.

  3. Limpieza

    1. Supervise la ejecución de los trabajos en el nuevo entorno para asegurarse de que todo funcione según lo esperado.

    2. Una vez que confíe en el nuevo entorno:

      1. Edite la cola de trabajos para eliminar el entorno de computación anterior.

      2. Espere a que se complete cualquier trabajo en ejecución en el entorno anterior.

      3. Elimine el entorno informático antiguo.

Performing blue/green updates using the AWS CLI
  1. Para obtener la configuración que utiliza AWS CLI, use el siguiente comando:

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

    Guarde la salida como referencia al crear el nuevo entorno.

  2. Cree un nuevo entorno de computación con la configuración de su entorno existente, pero con la nueva AMI. A continuación, se muestra un ejemplo de la estructura del comando:

    Sustituya los valores de ejemplo por la configuración actual del paso 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. Espera para que el nuevo entorno esté disponible:

    aws batch describe-compute-environments \ --compute-environments your-new-compute-environment-name \ --query 'computeEnvironments[].status'
  4. Agregue el entorno de computación a la cola de trabajos:

    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. En cuanto lo verifique, vuelva a actualizarlo para que el nuevo entorno sea principal:

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

    Una vez finalizados todos los trabajos en el entorno anterior, desactívelo y elimínelo:

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