Implementaciones lineales de Amazon ECS
Las implementaciones lineales cambian gradualmente el tráfico de la revisión de servicio antigua a la nueva en incrementos iguales a lo largo del tiempo, lo que le permite supervisar cada paso antes de continuar con el siguiente. Con las implementaciones lineales de Amazon ECS, controla el ritmo de cambio del tráfico y validar las nuevas revisiones de servicio con cantidades crecientes de tráfico de producción. Este método proporciona una forma controlada de implementar cambios con la capacidad de supervisar el rendimiento en cada incremento.
Recursos involucrados en una implementación lineal
Los siguientes son los recursos que intervienen en las implementaciones lineales 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 lineales de Amazon ECS, el tráfico se cambia en incrementos porcentuales iguales con tiempos de espera entre incrementos que se pueden configurar.
-
Porcentaje del paso: el porcentaje del tráfico que se va a cambiar en cada incremento durante una implementación lineal. El valor de este campo es doble y los valores válidos oscilan entre 3,0 y 100,0.
-
Tiempo de incorporación del paso: el tiempo de espera entre cada incremento del cambio de tráfico durante una implementación lineal. Los valores válidos oscilan entre 0 y 1440 minutos.
-
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. 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.
-
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 lineales ponen en marcha temporalmente las revisiones de servicio azul y verde simultáneamente, lo que puede duplicar el uso de recursos durante las implementaciones.
-
Supervisión de la implementación: las implementaciones lineales proporcionan información detallada sobre el estado de la implementación, lo que le permite supervisar cada etapa del proceso de implementación y cada incremento del cambio de tráfico.
-
Reversión: las implementaciones lineales facilitan la reversión a la versión anterior si se detectan problemas, ya que la revisión azul se mantiene activa hasta que vence el tiempo de incorporación.
-
Validación gradual: las implementaciones lineales permiten validar la nueva revisión con cantidades crecientes de tráfico de producción, lo que aumenta la confianza en la implementación.
-
Duración de la implementación: las implementaciones lineales tardan más en completarse que las implementaciones únicas debido a los cambios incrementales del tráfico y a los tiempos de espera entre los pasos.
Funcionamiento de la implementación lineal
El proceso de implementación lineal 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).
-
Fase de preparación: cree el entorno verde junto con el entorno azul existente.
-
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.
-
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.
-
Fase de cambio del tráfico lineal: cambie el tráfico de producción de azul a verde gradualmente en incrementos porcentuales iguales en función de la estrategia de implementación que haya configurado.
-
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.
-
Fase de finalización: para completar la implementación, finalice el entorno azul.
La fase de cambio lineal del tráfico 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 incremental: el tráfico cambia gradualmente de azul a verde en incrementos porcentuales iguales. Por ejemplo, con una configuración de pasos del 10,0 %, los cambios de tráfico se producen de la siguiente manera:
-
Paso 1: 10,0 % a verde, 90,0 % a azul
-
Paso 2: 20,0 % a verde, 80,0 % a azul
-
Paso 3: 30,0 % a verde, 70,0 % a azul
-
Y así sucesivamente hasta que el 100 % alcance el entorno verde
-
-
Tiempo de incorporación del paso: entre cada incremento del cambio de tráfico, la implementación espera un tiempo configurable (tiempo de incorporación del paso) para poder supervisar y validar el rendimiento de la nueva revisión con la carga del tráfico aumentado. Tenga en cuenta que el tiempo de incorporación del último paso se omite una vez que el tráfico se ha cambiado un 100,0 %.
-
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 lineal 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 | 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. | Sí |
| 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. | Sí |
| 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. | Sí |
| 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. | Sí |
| 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. | Sí |
| PRODUCTION_TRAFFIC_SHIFT | El tráfico cambia gradualmente del entorno azul al verde en incrementos porcentuales iguales hasta que el entorno verde recibe el 100 % del tráfico. Cada cambio de tráfico invoca un enlace de ciclo de vida con un tiempo de espera de 24 horas. | |
| POST_PRODUCTION_TRAFFIC_SHIFT | Se ha completado la transferencia de tráfico de producción. | Sí |
| 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 |