View a markdown version of this page

Complete las implementaciones continuas de Amazon ECS de forma anticipada con criterios de éxito inicial - Amazon Elastic Container Service

Complete las implementaciones continuas de Amazon ECS de forma anticipada con criterios de éxito inicial

Cuando actualiza un servicio que utiliza la estrategia de implementación continua, Amazon ECS inicia una implementación que reemplaza las tareas de la revisión del servicio de origen por nuevas tareas de la revisión del servicio de destino. Amazon ECS completa la implementación cuando se cumplen todas las condiciones siguientes:

  • La revisión del servicio de destino alcanza el 100 % del recuento deseado, y todas sus tareas están en ejecución y en buen estado.

  • El disyuntor de implementación o una alarma de CloudWatch no activan una reversión.

  • Si utiliza la reversión basada en alarmas, transcurre el tiempo de incorporación.

  • Se limpian las tareas de la revisión del servicio de origen.

Con los criterios de éxito inicial, puede configurar cuándo Amazon ECS debe completar una implementación, en función de la confianza y las necesidades operativas de su carga de trabajo.

Puede utilizar los criterios de éxito inicial en los siguientes casos:

  • Está seguro de que un porcentaje de las tareas en buen estado en la revisión del servicio de destino es suficiente para completar la implementación, y desea completarla antes para poder continuar con las implementaciones posteriores, los procesos de CI/CD y otras operaciones dependientes.

  • Su servicio se ejecuta con una capacidad específica o limitada, como las cargas de trabajo de inferencia aceleradas por GPU, en las que algunas tareas tardan más tiempo en iniciarse debido a la disponibilidad del hardware.

  • Su servicio tiene tareas en la revisión del servicio de origen que tardan en agotarse y que, por lo tanto, mantienen abierta la implementación, como las tareas con conexiones de larga duración.

  • Quiere que el disyuntor de implementación o la reversión de las alarmas de CloudWatch protejan la implementación hasta que la revisión del servicio de destino alcance el nivel de estado definido, y no quiere que se revierta después de ese punto.

Los criterios se definen con los siguientes parámetros en la configuración de implementación.

Porcentaje en buen estado

El parámetro earlySuccessCriteria.healthyPercent representa el número de tareas que deben estar en ejecución y en buen estado en la revisión del servicio de destino antes de que Amazon ECS complete la implementación, expresado como porcentaje del número deseado de tareas para el servicio. Este valor se redondea hacia arriba. Por ejemplo, si el porcentaje en buen estado es 90 y el recuento deseado es 100, Amazon ECS completa la implementación una vez que las 90 tareas estén en buen estado. Si el porcentaje en buen estado es 50 y el recuento deseado es 3, Amazon ECS completa la implementación una vez que 2 tareas estén en buen estado.

Una tarea está en buen estado cuando supera las comprobaciones de estado que usted configure para el servicio.

Amazon ECS inicia las tareas restantes de la revisión del servicio de destino fuera de la implementación mediante el escalado normal del servicio. Cuando Amazon ECS completa la implementación, ya no se aplican el disyuntor de implementación ni la reversión de las alarmas de CloudWatch.

El porcentaje en buen estado debe estar entre el minimumHealthyPercent del servicio y 100.

Limpieza de la revisión del servicio de origen

El parámetro earlySuccessCriteria.sourceServiceRevisionCleanup determina cuándo Amazon ECS limpia las tareas de la revisión del servicio de origen. Tiene dos valores: BLOCKING y DEFERRED.

Con BLOCKING, la implementación se realiza en el siguiente orden:

  1. El porcentaje en buen estado de las tareas está en ejecución y en buen estado en la revisión del servicio de destino.

  2. Si utiliza la reversión basada en alarmas, transcurre el tiempo de incorporación.

  3. Amazon ECS limpia las tareas en la revisión del servicio de origen.

  4. Amazon ECS completa la implementación.

Con DEFERRED, la implementación se realiza en el siguiente orden:

  1. El porcentaje en buen estado de las tareas está en ejecución y en buen estado en la revisión del servicio de destino.

  2. Si utiliza la reversión basada en alarmas, transcurre el tiempo de incorporación.

  3. Amazon ECS completa la implementación.

  4. Amazon ECS limpia las tareas en la revisión del servicio de origen, fuera de la implementación.

Con DEFERRED, Amazon ECS intenta limpiar las tareas en la revisión del servicio de origen durante un máximo de dos semanas.

Utilice DEFERRED para los servicios con conexiones de larga duración o protección de reducción horizontal de tareas, donde es posible que las tareas de la revisión del servicio de origen deban seguir ejecutándose sin mantener abierta la implementación. Esto resulta útil cuando agotar la revisión del servicio de origen es una operación de larga duración y las herramientas de CI/CD tienen límites de tiempo. Amazon ECS completa la implementación cuando se alcanza el porcentaje en buen estado, y las tareas en la revisión del servicio de origen se agotan fuera de la implementación.

Cómo Amazon ECS evalúa los criterios de éxito inicial

Amazon ECS completa una implementación que utiliza criterios de éxito inicial una vez que se cumplen todas las condiciones siguientes:

  • El número de tareas en ejecución y en buen estado en la revisión del servicio de destino corresponde, como mínimo, al porcentaje en buen estado del recuento deseado, redondeado al valor superior.

  • El disyuntor de implementación o una alarma de CloudWatch no activan una reversión.

  • Si utiliza la reversión basada en alarmas, transcurre el tiempo de incorporación.

  • Si la limpieza de la revisión del servicio de origen es BLOCKING, se limpian las tareas en la revisión del servicio de origen.

Amazon ECS inicia al menos una tarea en la revisión del servicio de destino y espera a que esté en buen estado antes de evaluar el porcentaje.

Ejemplo de recuentos de tareas en buen estado
Recuento deseado Porcentaje en buen estado Tareas en buen estado requeridas (redondeadas al valor superior)
2 50 1
3 50 2
10 80 8
100 90 90
10 100 10

Configuración de los criterios de éxito inicial

Puede configurar los criterios de éxito inicial de un servicio nuevo o actual mediante la consola o la AWS CLI.

Consola

En el flujo de creación o actualización del servicio, en Configuración de implementación, active los criterios de éxito inicial. Escriba un valor para Porcentaje en buen estado y elija una opción de Limpieza de la revisión del servicio de origen: Blocking o Deferred.

AWS CLI

Defina los valores de earlySuccessCriteria en el parámetro --deployment-configuration al crear o actualizar un servicio.

aws ecs update-service \ --cluster MyCluster \ --service MyService \ --deployment-configuration '{ "strategy": "ROLLING", "earlySuccessCriteria": { "enable": true, "healthyPercent": 90, "sourceServiceRevisionCleanup": "BLOCKING" } }'

Observaciones

  • DescribeServiceDeployments devuelve el estado de la implementación y los criterios de éxito inicial configurados. Mientras la implementación está en curso, el recuento de tareas está activo. Una vez completada la implementación, los recuentos de tareas representan una instantánea del momento en que se completó la implementación. Esto se aplica tanto a BLOCKING como a DEFERRED.

  • Para consultar los recuentos de tareas en tiempo real de un servicio, utilice DescribeServices.

  • Las implementaciones que se completan antes de tiempo se incluyen al filtrar ListServiceDeployments por un estado de SUCCESSFUL.

  • Los eventos de cambio de estado de la implementación y los registros de AWS CloudTrail muestran el ciclo de vida estándar de IN_PROGRESS a SUCCESSFUL. Los criterios de éxito inicial no incorporan un nuevo estado de implementación.

Consideraciones

Tenga en cuenta los siguientes aspectos antes de utilizar los criterios de éxito inicial.

La supervisión de la reversión se aplica durante la implementación

El disyuntor de implementación y la reversión de las alarmas de CloudWatch son mecanismos de detección de errores de la implementación. Pueden revertir la implementación mientras está en curso. Una vez que Amazon ECS completa la implementación, estos mecanismos ya no revierten el servicio, ni siquiera cuando Amazon ECS inicia las tareas restantes mediante el escalado normal del servicio. No puede detener una implementación una vez que se haya completado. Establezca el porcentaje de tareas en buen estado en un valor en el que esté seguro de que la revisión del servicio de destino es correcta.

DEFERREDeliminación de

Con DEFERRED, Amazon ECS limpia las tareas en la revisión del servicio de origen una vez que completa la implementación. Amazon ECS no podrá limpiar las tareas en la revisión del servicio de origen si están protegidas mediante una protección de reducción horizontal de tareas u otro mecanismo durante más de dos semanas después de la implementación. Utilice DescribeServices para supervisar las tareas en la revisión del servicio de origen.