Implementaciones de valor controlado de Amazon ECS - Amazon Elastic Container Service

Implementaciones de valor controlado de Amazon ECS

Las implementaciones canario primero enrutan un pequeño porcentaje del tráfico a la nueva revisión para realizar las pruebas iniciales y, después, cambian todo el tráfico restante a la vez cuando la fase de la implementación canario finaliza correctamente. Con las implementaciones canario de Amazon ECS, puede validar las nuevas revisiones de servicio con el tráfico de usuarios real y, al mismo tiempo, minimizar la exposición a los riesgos. Este método proporciona una forma controlada de implementar cambios con la capacidad de supervisar el rendimiento y revertirlos rápidamente si se detectan problemas.

Recursos involucrados en una implementación canario

Los siguientes son los recursos que intervienen en las implementaciones canario de Amazon ECS:

  • Cambio de tráfico: el proceso que Amazon ECS utiliza para cambiar el tráfico de producción. En el caso de las implementaciones canario de Amazon ECS, el tráfico se cambia en dos fases: primero hasta el porcentaje de la implementación canario y, después, hasta completar la implementación.

  • Porcentaje de la implementación canario: el porcentaje del tráfico enrutado a la nueva versión durante el periodo de evaluación.

  • Tiempo de incorporación de la implementación canario: el tiempo que se dedica a supervisar la versión canario antes de proceder a la implementación completa.

  • Tiempo de incorporación de la implementación: el tiempo, en minutos, que Amazon ECS espera después de cambiar todo el tráfico de producción a la nueva revisión de servicio antes de finalizar la revisión de servicio antigua. Es el tiempo durante el cual las revisiones de servicio azul y verde se ponen en marcha simultáneamente después de que se haya transferido el tráfico de producción.

  • Etapas del ciclo de vida: serie de eventos de la operación de implementación, como “una transferencia de tráfico posterior a la producción”.

  • Enlace de ciclo de vida: una función de Lambda que se pone en marcha en una etapa específica del ciclo de vida. Puede crear una función que verifique la implementación.

  • Grupo de destino: un recurso de ELB que se utiliza para enrutar las solicitudes a uno o más destinos registrados (por ejemplo, instancias de EC2). Cuando se crea un agente de escucha, especifica un grupo de destino para su acción predeterminada. El tráfico se reenvía al grupo de destino especificado en la regla del agente de escucha.

  • Oyente: un recurso de ELB que comprueba las solicitudes de conexión utilizando el protocolo y el puerto configurados. Las reglas que defina para un oyente determinan cómo Amazon ECS va a enrutar las solicitudes hacia sus destinos registrados.

  • Regla: un recurso de ELB asociado a un oyente. Una regla define cómo se enrutan las solicitudes y consta de una acción, una condición y una prioridad.

Consideraciones

Tenga en cuenta lo siguiente al elegir un tipo de implementación:

  • Uso de recursos: las implementaciones canario ponen en marcha el conjunto de tareas original y el conjunto de tareas canario simultáneamente durante el periodo de evaluación, lo que aumenta el uso de recursos.

  • Volumen de tráfico: asegúrese de que el porcentaje de tráfico canario genere suficiente tráfico para lograr una validación significativa de la nueva versión.

  • Complejidad de la supervisión: las implementaciones canario requieren la supervisión y comparación de las métricas entre dos versiones diferentes de forma simultánea.

  • Velocidad de reversión: las implementaciones canario permiten llevar a cabo una reversión rápida al revertir el tráfico al conjunto de tareas original.

  • Mitigación de riesgos: las implementaciones canario proporcionan una excelente mitigación de riesgos al limitar la exposición a un pequeño porcentaje de usuarios.

  • Duración de la implementación: las implementaciones canario incluyen periodos de evaluación que amplían el tiempo total de implementación, pero ofrecen oportunidades de validación.

Funcionamiento de las implementaciones canario

El proceso de implementación canario de Amazon ECS sigue un método estructurado con seis fases distintas que garantizan actualizaciones de aplicaciones seguras y fiables. Cada fase tiene un propósito específico al validar y hacer la transición de la aplicación de la versión actual (azul) a la nueva versión (verde).

  1. Fase de preparación: cree el entorno verde junto con el entorno azul existente.

  2. Fase de implementación: implemente la nueva revisión de servicio en un entorno verde. Amazon ECS lanza nuevas tareas mediante la revisión de servicio actualizada, mientras que el entorno azul sigue sirviendo al tráfico de producción.

  3. Fase de prueba: valide el entorno verde mediante el enrutamiento del tráfico de prueba. El equilibrador de carga de aplicación dirige las solicitudes de prueba al entorno verde mientras que el tráfico de producción permanece en el entorno azul.

  4. Fase de cambio de tráfico de la implementación canario: durante la fase de implementación canario, se cambia el porcentaje configurado del tráfico a la nueva revisión de servicio verde, seguido de un cambio del 100,0 % del tráfico a la revisión de servicio verde

  5. Fase de monitoreo: monitoree el estado de las aplicaciones, las métricas de rendimiento y los estados de alarma durante el periodo correspondiente al tiempo de incorporación. Cuando se detectan problemas, se inicia una operación de reversión.

  6. Fase de finalización: para completar la implementación, finalice el entorno azul.

La fase de cambio del tráfico canario sigue estos pasos:

  • Inicial: la implementación comienza con el 100 % del tráfico dirigido a la revisión de servicio azul (actual). La revisión de servicio verde (nueva) recibe tráfico de prueba, pero inicialmente no recibe tráfico de producción.

  • Cambio de tráfico canario: se trata de una estrategia de cambio de tráfico en dos pasos.

    • Paso 1: 10,0 % a verde, 90,0 % a azul

    • Paso 2: 100,0 % a verde, 0,0 % a azul

  • Tiempo de incorporación del tráfico canario: espera un tiempo configurable (tiempo de incorporación del tráfico canario) después del cambio del tráfico canario para poder supervisar y validar el rendimiento de la nueva revisión con la carga del tráfico aumentado.

  • Enlaces de ciclo de vida: las funciones de Lambda opcionales se pueden poner en marcha en varias etapas del ciclo de vida durante la implementación para realizar una validación, supervisión o lógica personalizada automatizadas. Las funciones de Lambda o los enlaces de ciclo de vida configurados para PRODUCTION_TRAFFIC_SHIFT se invocarán en cada paso del cambio de tráfico de producción.

Etapas del ciclo de vida de la implementación

El proceso de implementación canario avanza durante las distintas etapas del ciclo de vida, cada una con responsabilidades y puntos de control de validación específicos. Conocer estas etapas le ayuda a monitorear el progreso de la implementación y a solucionar los problemas de forma eficaz.

Cada etapa del ciclo de vida puede durar hasta 24 horas y, además, cada paso del cambio de tráfico de PRODUCTION_TRAFFIC_SHIFT puede durar hasta 24 horas. Recomendamos que el valor se mantenga por debajo de la marca de 24 horas. Esto se debe a que los procesos asíncronos necesitan tiempo para activar los enlaces. El sistema agota el tiempo de espera, no se realiza la implementación y, después, inicia una reversión cuando una etapa alcanza las 24 horas.

Las implementaciones de CloudFormation tienen restricciones de tiempo de espera adicionales. Si bien el límite por etapas de 24 horas sigue vigente, CloudFormation impone un límite de 36 horas para toda la implementación. Si el proceso no se completa en 36 horas, CloudFormation marca un error en la implementación y, a continuación, se inicia una reversión.

Etapas del ciclo de vida
Etapas del ciclo de vida Descripción Compatibilidad con los enlaces de ciclo de vida
RECONCILE_SERVICE Esta etapa solo ocurre cuando se inicia una nueva implementación de servicio con más de una revisión de servicio en estado ACTIVO.
PRE_SCALE_UP La revisión de servicio verde no ha comenzado. La revisión de servicio azul gestiona el 100 % del tráfico de producción. No hay tráfico de prueba.
SCALE_UP El momento en que la revisión de servicio verde se escala verticalmente al 100 % e inicia nuevas tareas. La revisión de servicio verde no sirve ningún tráfico en este momento. No
POST_SCALE_UP La revisión de servicio verde ha comenzado. La revisión de servicio azul gestiona el 100 % del tráfico de producción. No hay tráfico de prueba.
TEST_TRAFFIC_SHIFT Las revisiones de servicio azul y verde están en curso. La revisión de servicio azul gestiona el 100 % del tráfico de producción. La revisión de servicio verde está migrando del 0 % al 100 % del tráfico de prueba.
POST_TEST_TRAFFIC_SHIFT Se ha completado la transferencia de tráfico de prueba. La revisión de servicio verde gestiona el 100 % del tráfico de prueba.
PRODUCTION_TRAFFIC_SHIFT El tráfico de producción canario se enruta a la revisión verde y se invoca el enlace de ciclo de vida con un tiempo de espera de 24 horas. El segundo paso cambia el tráfico de producción restante a la revisión verde.
POST_PRODUCTION_TRAFFIC_SHIFT Se ha completado la transferencia de tráfico de producción.
BAKE_TIME El tiempo durante el cual las revisiones de servicio azul y verde se ejecutan simultáneamente. No
CLEAN_UP La revisión de servicio azul se ha reducido verticalmente por completo a 0 tareas en curso. Tras esta etapa, la revisión de servicio verde es ahora la revisión de servicio de producción. No

Parámetros de configuración

Los siguientes parámetros de configuración son necesarios para las implementaciones canario:

  • Porcentaje canario: porcentaje del tráfico que se enruta a la nueva revisión de servicio durante la fase canario. Esto permite realizar pruebas con un subconjunto controlado del tráfico de producción.

  • Tiempo de incorporación del tráfico canario: el tiempo que se debe esperar durante la fase canario antes de cambiar el tráfico restante a la nueva revisión de servicio. Esto proporciona tiempo para supervisar y validar la nueva versión.

Administración del tráfico

Las implementaciones canario usan grupos de destino con equilibradores de carga para administrar la distribución del tráfico:

  • Grupo de destino original: contiene las tareas de la versión estable actual y recibe la mayor parte del tráfico.

  • Grupo de destino canario: contiene las tareas de la nueva versión y recibe un pequeño porcentaje del tráfico para realizar las pruebas.

  • Enrutamiento ponderado: el equilibrador de carga usa reglas de enrutamiento ponderado para distribuir el tráfico entre los grupos de destino en función del porcentaje de tráfico canario configurado.

Supervisión y validación

Las implementaciones canario eficaces se basan en una supervisión integral:

  • Comprobaciones de estado: ambos conjuntos de tareas deben superar las comprobaciones de estado antes de recibir tráfico.

  • Comparación de métricas: compare los indicadores clave de rendimiento entre la versión original y la versión canario, como el tiempo de respuesta, la tasa de errores y el rendimiento.

  • Reversión automática: configure alarmas de CloudWatch para que activen una reversión automáticamente si la versión canario presenta una reducción del rendimiento.

  • Validación manual: utilice el periodo de evaluación para revisar manualmente los registros, las métricas y los comentarios de los usuarios antes de continuar.

Prácticas recomendadas para las implementaciones canario

Siga estas prácticas recomendadas para garantizar el éxito de las implementaciones canario con servicios.

Selección de los porcentajes de tráfico adecuados

Tenga en cuenta estos factores al seleccionar los porcentajes de tráfico canario:

  • Comience poco a poco: comience con un porcentaje de tráfico de entre el 5 y el 10 % para minimizar el impacto en caso de que surjan problemas.

  • Tenga en cuenta la importancia de las aplicaciones: utilice porcentajes más bajos para las aplicaciones críticas para su empresa y porcentajes más altos para los servicios menos importantes.

  • Tenga en cuenta el volumen de tráfico: asegúrese de que el porcentaje de tráfico canario genere suficiente tráfico para lograr una validación significativa.

Definición de periodos de evaluación adecuados

Configure los periodos de evaluación en función de estas consideraciones:

  • Deje tiempo suficiente: establezca periodos de evaluación lo suficientemente largos como para capturar datos de rendimiento significativos; normalmente de 10 a 30 minutos.

  • Tenga en cuenta los patrones de tráfico: tenga en cuenta los patrones de tráfico y las horas de máximo uso de la aplicación.

  • Equilibre la velocidad y la seguridad: los periodos de evaluación más largos proporcionan más datos, pero reducen la velocidad de implementación.

Implementación de una supervisión integral

Configure medidas de supervisión para realizar un seguimiento del rendimiento de la implementación canario:

  • Métricas clave: supervise el tiempo de respuesta, la tasa de errores, el rendimiento y la utilización de los recursos para ambos conjuntos de tareas.

  • Reversión basada en alarmas: configure alarmas de CloudWatch para que activen una reversión automáticamente cuando las métricas superen los umbrales.

  • Análisis comparativo: configure paneles de control para comparar las métricas entre la versión original y la versión canario de forma detallada.

  • Métricas de empresa: incluya métricas específicas de la empresa, como las tasas de conversión o la interacción de los usuarios, junto con las métricas técnicas.

Planificación de estrategias de reversión

Prepárese para posibles escenarios de reversión con estas estrategias:

  • Reversión automática: configure activadores de reversiones automáticas en función de las comprobaciones de estado y las métricas de rendimiento.

  • Procedimientos de reversión manual: documente procedimientos claros para realizar una reversión manual cuando los activadores automáticos no capturen todos los problemas.

  • Pruebas de reversión: pruebe periódicamente los procedimientos de reversión para asegurarse de que funcionarán correctamente cuando sea necesario.

Validación exhaustiva antes de la implementación

Asegúrese de realizar una validación exhaustiva antes de proceder con las implementaciones canario:

  • Pruebas previas a la implementación: pruebe minuciosamente los cambios en los entornos de ensayo antes de la implementación canario.

  • Configuración de las comprobaciones de estado: asegúrese de que las comprobaciones de estado reflejen con precisión la preparación y la funcionalidad de las aplicaciones.

  • Validación de las dependencias: compruebe que las nuevas versiones sean compatibles con los servicios previos y posteriores.

  • Coherencia de datos: asegúrese de que los cambios en el esquema de la base de datos y las migraciones de datos sean compatibles con las versiones anteriores.

Coordinación de la participación del equipo

Asegúrese de que haya una coordinación eficaz del equipo durante las implementaciones canario:

  • Periodos de implementación: programe las implementaciones canario durante el horario laboral, cuando los equipos estén disponibles para supervisar y responder.

  • Canales de comunicación: establezca canales de comunicación claros para conocer el estado de la implementación y derivar los problemas al equipo adecuado.

  • Asignación de roles: defina los roles y responsabilidades para la supervisión, la toma de decisiones y la puesta en marcha de las reversiones.