Recursos de Service Connect para implementaciones azul/verde de Amazon ECS - Amazon Elastic Container Service

Recursos de Service Connect para implementaciones azul/verde de Amazon ECS

Al utilizar Service Connect con implementaciones azul/verde, debe configurar componentes específicos para habilitar el enrutamiento de tráfico adecuado entre las revisiones de servicio azul y verde. En esta sección se explican los componentes necesarios y su configuración.

Información general de la arquitectura

Service Connect crea capacidades tanto de detección de servicios como de malla de servicios a través de un proxy sidecar administrado que se incorpora automáticamente a las tareas de Amazon ECS. Estos proxies gestionan las decisiones de enrutamiento, los reintentos y la recopilación de métricas, a la vez que AWS Cloud Map proporciona el backend del registro de servicios. Al implementar un servicio con Service Connect habilitado, el servicio se registra en AWS Cloud Map y los servicios de cliente lo detectan a través del espacio de nombres.

En una implementación estándar de Service Connect, los servicios de cliente se conectan a nombres de servicios lógicos y el proxy sidecar gestiona el enrutamiento a las instancias de servicio reales. Con las implementaciones azul/verde, este modelo se amplía para incluir el enrutamiento del tráfico de prueba a través de la configuración de testTrafficRules.

Durante una implementación azul/verde, los siguientes componentes clave trabajan juntos:

  • Proxy de Service Connect: todo el tráfico entre los servicios pasa a través del proxy de Service Connect, que toma las decisiones de enrutamiento en función de la configuración.

  • Registro de AWS Cloud Map: las implementaciones azul y verde se registran con AWS Cloud Map, pero la implementación verde se registra inicialmente como un punto de conexión de “prueba”.

  • Enrutamiento de tráfico de prueba: las testTrafficRules en la configuración de Service Connect determinan cómo identificar y enrutar el tráfico de prueba a la implementación verde. Esto se logra mediante el enrutamiento basado en encabezados, donde los encabezados HTTP específicos de las solicitudes dirigen el tráfico a la revisión de prueba. De forma predeterminada, Service Connect reconoce el encabezado x-amzn-ecs-blue-green-test de los protocolos basados en HTTP cuando no se especifican reglas personalizadas.

  • Configuración del cliente: todos los clientes del espacio de nombres reciben automáticamente las rutas de producción y de prueba, pero solo las solicitudes que coincidan con las reglas de prueba se destinarán a la implementación verde.

Lo que hace que este método sea eficaz es que gestiona la complejidad de la detección de servicios durante las transiciones. A medida que el tráfico pasa de la implementación azul a la verde, todos los mecanismos de conectividad y detección se actualizan automáticamente. No es necesario actualizar los registros de DNS, reconfigurar los equilibradores de carga ni implementar los cambios de detección de servicios por separado, ya que la malla de servicios se encarga de todo.

Enrutamiento y comprobación del tráfico

Service Connect proporciona capacidades avanzadas de enrutamiento de tráfico para implementaciones azul/verde, incluido el enrutamiento basado en encabezados y la configuración de alias de cliente para escenarios de prueba.

Reglas de encabezado de tráfico de prueba

Durante las implementaciones azul/verde, puede configurar las reglas de los encabezados de tráfico de prueba para enrutar solicitudes específicas a la (nueva) revisión de servicio verde con fines de prueba. Esto le permite validar la nueva versión con tráfico controlado antes de completar la implementación.

Service Connect utiliza el enrutamiento basado en encabezados para identificar el tráfico de prueba. De forma predeterminada, Service Connect reconoce el encabezado x-amzn-ecs-blue-green-test de los protocolos basados en HTTP cuando no se especifican reglas personalizadas. Cuando este encabezado está presente en una solicitud, el proxy de Service Connect enruta automáticamente la solicitud a la implementación verde para su prueba.

Las reglas de los encabezados de tráfico de prueba le permiten hacer lo siguiente:

  • Enrutar solicitudes con encabezados específicos a la revisión de servicio verde

  • Comprobar la nueva funcionalidad con un subconjunto de tráfico

  • Validar el comportamiento del servicio antes de la transición total del tráfico

  • Implementar estrategias de pruebas canarias

  • Realizar pruebas de integración en un entorno similar al de producción

El mecanismo de enrutamiento basado en encabezados funciona a la perfección con la arquitectura de aplicaciones existente. Los servicios de cliente no necesitan conocer el proceso de implementación azul/verde, simplemente incluyen los encabezados apropiados al enviar las solicitudes de prueba y el proxy de Service Connect gestiona la lógica de enrutamiento automáticamente.

Para más información acerca de cómo configurar reglas de encabezado de tráfico de prueba, consulte ServiceConnectTestTrafficHeaderRules en la Referencia de la API de Amazon Elastic Container Service.

Reglas de coincidencia de encabezados

Las reglas de coincidencia de encabezados definen los criterios para enrutar el tráfico de prueba durante las implementaciones azul/verde. Puede configurar varias condiciones de coincidencia para controlar con precisión qué solicitudes se enrutan a la revisión de servicio verde.

La coincidencia de encabezados admite lo siguiente:

  • Coincidencias exactas con el valor del encabezado

  • Comprobación de la presencia de encabezados

  • Coincidencias basadas en patrones

  • Múltiples combinaciones de encabezados

Los ejemplos de casos de uso incluyen el enrutamiento de solicitudes con cadenas de agentes de usuario específicas, versiones de API o indicadores de características al servicio verde para llevar a cabo pruebas.

Para más información sobre la configuración de coincidencias de encabezados, consulte ServiceConnectTestTrafficHeaderMatchRules en la Referencia de la API de Amazon Elastic Container Service.

Alias de cliente para implementaciones azul/verde

Los alias de cliente proporcionan puntos de conexión de DNS estables para los servicios durante las implementaciones azul/verde. Permiten enrutar el tráfico sin problemas entre las revisiones de servicio azul y verde sin necesidad de que las aplicaciones de cliente cambien sus puntos de conexión.

Durante una implementación azul/verde, los alias de cliente:

  • Mantienen nombres de DNS coherentes para las conexiones de cliente

  • Habilitan la transferencia automática del tráfico entre las revisiones de servicio

  • Respaldan estrategias de migración gradual del tráfico

  • Proporcionan capacidades de reversión al redireccionar el tráfico a la revisión azul

Puede configurar varios alias de cliente para distintos puertos o protocolos, lo que permite que las arquitecturas de servicios complejas mantengan la conectividad durante las implementaciones.

Para más información acerca de la configuración de alias de cliente, consulte ServiceConnectClientAlias en la Referencia de la API de Amazon Elastic Container Service.

Prácticas recomendadas para el enrutamiento de tráfico

Al implementar el enrutamiento de tráfico para las implementaciones azul/verde con Service Connect, tenga en cuenta las siguientes prácticas recomendadas:

  • Comience con las pruebas basadas en encabezados: utilice las reglas de encabezado de tráfico de prueba para validar el servicio verde con tráfico controlado antes de transferir todo el tráfico.

  • Configure las comprobaciones de estado: asegúrese de que los servicios azul y verde tengan configuradas las comprobaciones de estado adecuadas para evitar que el tráfico se enrute a instancias en mal estado.

  • Monitoree las métricas del servicio: realice un seguimiento de los indicadores clave de rendimiento de ambas revisiones de servicio durante la implementación para identificar los problemas de forma temprana.

  • Planifique una estrategia de reversión: configure los alias de los clientes y las reglas de enrutamiento para permitir una reversión rápida al servicio azul en caso de que se detecten problemas.

  • Compruebe la lógica de coincidencia de encabezados: valide las reglas de coincidencia de encabezados en un entorno que no sea de producción antes de aplicarlas a las implementaciones de producción.

Flujo de trabajo de las implementaciones azul/verde de Service Connect

Comprender cómo Service Connect administra el proceso de implementación azul/verde le ayuda a implementar y solucionar los problemas de las implementaciones de forma eficaz. El siguiente flujo de trabajo muestra cómo interactúan los distintos componentes durante cada fase de la implementación.

Fases de la implementación

La implementación azul/verde de Service Connect pasa por varias fases distintas:

  1. Estado inicial: el servicio azul gestiona el 100 % del tráfico de producción. Todos los servicios de cliente del espacio de nombres se conectan al servicio azul mediante el nombre lógico del servicio configurado en Service Connect.

  2. Registro de servicio verde: cuando se inicia la implementación verde, se registra con AWS Cloud Map como punto de conexión de “prueba”. El proxy de Service Connect en los servicios de cliente recibe automáticamente las configuraciones de ruta de producción y prueba.

  3. Enrutamiento de tráfico de prueba: el proxy de Service Connect enruta automáticamente las solicitudes que contienen los encabezados de tráfico de prueba (por ejemplo, x-amzn-ecs-blue-green-test) al servicio verde. El tráfico de producción sigue fluyendo hacia el servicio azul.

  4. Preparación para la transferencia de tráfico: tras realizar satisfactoriamente las pruebas, el proceso de implementación se prepara para la transferencia de tráfico de producción. Tanto los servicios azules como los verdes permanecen registrados y en buen estado.

  5. Transferencia de tráfico de producción: la configuración de Service Connect se actualiza para enrutar el tráfico de producción al servicio verde. Esto ocurre automáticamente sin necesidad de actualizar el servicio del cliente ni cambiar el DNS.

  6. Tiempo de incorporación: el tiempo durante el cual las revisiones de servicio azul y verde se ejecutan simultáneamente después de que se haya transferido el tráfico de producción.

  7. Cancelación del registro de servicio azul: tras la validación y la transferencia de tráfico correctos, se anula el registro de servicio azul de AWS Cloud Map y se cancela, completándose así la implementación.

Comportamiento del proxy de Service Connect

El proxy de Service Connect desempeña un papel crucial en la administración del tráfico durante las implementaciones azul/verde. Comprender su comportamiento le ayuda a diseñar estrategias de implementación y comprobación eficaces.

Comportamientos de proxy clave durante las implementaciones azul/verde:

  • Detección automática de rutas: el proxy detecta automáticamente las rutas de producción y de prueba de AWS Cloud Map sin necesidad de reiniciar la aplicación ni cambiar la configuración.

  • Enrutamiento basado en encabezados: el proxy examina los encabezados de las solicitudes entrantes y enruta el tráfico a la revisión de servicio correspondiente en función de las reglas de tráfico de prueba configuradas.

  • Integración de comprobaciones de estado: el proxy solo enruta el tráfico a las instancias de servicio en buen estado y excluye automáticamente las tareas en mal estado del grupo de enrutamiento.

  • Reintento y desconexión de circuitos: el proxy ofrece funciones integradas de lógica de reintento y desconexión de circuitos, lo que mejora la resiliencia durante las implementaciones.

  • Recopilación de métricas: el proxy recopila métricas detalladas de los servicios azules y verdes, lo que permite un monitoreo exhaustivo durante las implementaciones.

Actualizaciones de la detección de servicios

Una de las principales ventajas de usar Service Connect para las implementaciones azul/verde es la gestión automática de las actualizaciones de detección de servicios. Las implementaciones azul/verde tradicionales suelen requerir actualizaciones de DNS complejas o una reconfiguración del equilibrador de carga, pero Service Connect administra estos cambios de forma transparente.

Durante una implementación, Service Connect gestiona:

  • Actualizaciones del espacio de nombres: el espacio de nombres de Service Connect incluye automáticamente los puntos de conexión de servicio azules y verdes, con las reglas de enrutamiento adecuadas.

  • Configuración del cliente: todos los servicios de cliente del espacio de nombres reciben automáticamente la información de enrutamiento actualizada sin necesidad de reiniciarlos ni volver a distribuirlos.

  • Transición gradual: las actualizaciones de detección de servicios se realizan de forma gradual y segura, lo que garantiza que no se interrumpan las solicitudes en curso.

  • Compatibilidad con las reversiones: si es necesario llevar a cabo una reversión, Service Connect puede revertir rápidamente las configuraciones de detección de servicios para enrutar el tráfico hacia el servicio azul.