Funciones de Traffic Director

Traffic Director te ayuda a ejecutar microservicios en una malla de servicios global. La malla maneja las herramientas de redes para tus microservicios a fin de que puedas escribir el código de la aplicación que no necesita saber sobre la complejidad de las redes subyacentes. Esta separación entre la lógica de la aplicación y la lógica de herramientas de redes te permite mejorar tu velocidad de desarrollo, aumentar la disponibilidad del servicio y presentar prácticas modernas de DevOps a tu organización.

Tu malla de servicios consta de tus aplicaciones, un plano de datos compatible con xDS (por lo general, el proxy de código abierto de Envoy) y Traffic Director como tu plano de control de malla.

Para implementar servicios de gRPC sin proxy con Traffic Director en tu malla de servicios, puedes usar una versión compatible de gRPC.

En este documento, se resumen las funciones disponibles en Traffic Director. El valor N/A (no aplicable) significa que una función no se admite porque no es compatible con la configuración específica de Traffic Director. Un espacio en blanco, sin una marca de verificación ni N/A, significa que la función no es compatible, pero podría serlo en el futuro.

Plano de control completamente administrado para la malla de servicios

Traffic Director es un servicio de plano de control administrado y con alta disponibilidad que se ejecuta en Google Cloud. Debido a que no necesitas instalar ni actualizar tu plano de control, tienes un componente menos que administrar en la infraestructura de la malla de servicios.

Versiones xDS compatibles

Traffic Director usa las API de plano de control de xDS de código abierto para configurar clientes de Envoy y de gRPC sin proxy. Estos clientes actúan en nombre del código de tu aplicación para entregar las funciones de red de la aplicación de Traffic Director.

Versión Asistencia
xDS v2 Disponibilidad general. Algunas funciones, incluida la seguridad del servicio, solo están disponibles con xDS v3. La compatibilidad con xDS v2 finalizará el 20 de junio de 2024.
xDS v3 Disponibilidad general

Plataformas para ejecutar servicios de malla

Puedes ejecutar aplicaciones en las siguientes plataformas y adoptarlas en una malla de servicios global que configure Traffic Director.

Atributo Admitido
Instancias de máquina virtual (VM) de Compute Engine
Instancias de contenedor de Google Kubernetes Engine (GKE)
Kubernetes en instancias de contenedor de Compute Engine

Administración de servicios

Los servicios en una malla que Traffic Director configura se benefician de los siguientes elementos:

  • Descubrimiento de servicios Cuando una aplicación en tu malla desea llegar a otra aplicación, puede llamar en ese servicio por su nombre.

  • Ajuste de escala automático de backend. Las instancias que ejecutan el código de la aplicación aumentan o reducen la escala de forma dinámica según tus necesidades.

  • Registro automático de extremos. A medida que se crean o quitan instancias nuevas, se asocian de manera automática con tu servicio.

Atributo Admitido
Implementación automatizada de proxies de sidecar para VM de Compute Engine
Inyección automática de proxies de sidecar para pods de GKE
Descubrimiento de servicios según el nombre de host
Ajuste de escala automático de instancias según el uso de CPU
Ajuste de escala automático de instancias basado en la capacidad de carga/entrega de tráfico
(VM de Compute Engine en grupos de instancias administrados o MIG, solo)
Reparación automática de instancias según verificaciones de estado configurables
Registro automático de extremos para las VM de Compute Engine
Registro automático de extremos para los pods y las instancias de contenedor de GKE
Vincula servicios en el Directorio de servicios a un servicio de backend
API para agregar o quitar extremos de forma programática

Extremos para el tráfico de tu plano de datos

Los microservicios usan el plano de datos para acceder a los servicios en la malla y fuera de ella. Traffic Director te permite separar la lógica de la aplicación de la lógica de redes. De ese modo, la aplicación solo necesita enviar solicitudes al plano de datos (por ejemplo, el proxy de sidecar que se ejecuta junto con la aplicación). Luego, el plano de datos envía solicitudes al extremo correcto.

En la siguiente tabla, las aplicaciones descritas como que están en la malla son aquellas que usan el plano de datos administrado por Traffic Director para comunicarse con otros servicios. Esas aplicaciones pueden enviar tráfico a servicios dentro de la malla y a servicios fuera de la malla.

Atributo Compatible
Aplicaciones basadas en VM en la malla
Aplicaciones basadas en contenedores en la malla
Aplicaciones basadas en VM fuera de la malla
Aplicaciones basadas en contenedores fuera de la malla
Aplicaciones que se ejecutan en centros de datos locales
Aplicaciones en entornos de múltiples nubes
Extremos en el Directorio de servicios

Topologías de plano de datos

En el modelo de malla de servicios, las aplicaciones usan un plano de datos para comunicarse. Este plano de datos a menudo consiste en proxies de sidecar implementados junto con tus aplicaciones. Traffic Director es muy flexible y admite topologías de plano de datos que se ajustan a las necesidades de herramientas de redes de tus servicios.

Atributo Admitido
Proxies de sidecar que se ejecutan junto con las aplicaciones
Aplicaciones gRPC sin proxy
Proxies intermedios entre dos aplicaciones en una malla
Proxies perimetrales en el límite de la malla
Malla que abarca varios clústeres de GKE o VM de Compute Engine en varias regiones

Configuración programática basada en API

Toda la configuración se expone a través de nuestra API de REST y panel listo para usar, lo que te permite automatizar los cambios en equipos grandes y administrar los cambios de manera programática. Algunas funciones no se pueden configurar mediante la consola de Google Cloud.

Atributo Admitido
API de REST
Consola de Google Cloud
Google Cloud CLI
Cloud Deployment Manager
Compatibilidad con Terraform

Compatibilidad de lenguaje con aplicaciones de gRPC sin proxy

Puedes crear aplicaciones de gRPC sin proxy que funcionen con Traffic Director mediante los siguientes lenguajes de programación. Las funciones de la malla de servicios compatibles con varias implementaciones y versiones de gRPC se enumeran en GitHub.

Idioma Admitido
Java
Go
C++
Python
Ruby
PHP
Node

Protocolos de solicitud

Las aplicaciones pueden usar los siguientes protocolos de solicitud cuando usan el plano de datos que configura Traffic Director para comunicarse.

Atributo Admitido
HTTP
HTTPS
HTTP/2
TCP
gRPC

Seguridad del servicio

Traffic Director admite la seguridad del servicio con las siguientes opciones de configuración.

Atributo Envoy gRPC
TLS con Pods de GKE
mTLS con Pods de GKE
Control de acceso y autorización

Enrutamiento y administración del tráfico

Traffic Director admite políticas avanzadas de administración de tráfico que puedes usar para desviar, dividir y definir el tráfico a medida que atraviesa tu plano de datos.

Algunas funciones avanzadas de administración de tráfico no están disponibles con los servicios de gRPC sin proxy y ninguna de las funciones avanzadas de administración de tráfico está disponible con el recurso de proxy TCP de destino.

Las siguientes funciones no son compatibles cuando Traffic Director controla el tráfico de TCP (no HTTP(S)).

Atributo Compatible con el proxy de Envoy configurado para manejar el tráfico HTTP(S) o gRPC Compatible con gRPC sin proxy
Enrutamiento de solicitud HTTP/capa 7 basado en la coincidencia de suffix/prefix/full/regex en:
• Nombre de host
• Ruta
• Encabezados
• Método No disponible
• Cookies
• Parámetros de solicitud No disponible
Inyección de fallas
Tiempos de espera configurables N/A
Consulta Duración máxima de la transmisión.
Reintentos
Excepto por tiempo de espera de reintento
Redireccionamientos
Reescrituras de URI
Transformaciones de los encabezados de solicitud o respuesta
División de tráfico
Duplicación de tráfico
Detección de valores atípicos
Interrupción de circuitos
Solo maxRequests
Duración máxima de la transmisión

Balanceo de cargas

Puedes configurar métodos y algoritmos avanzados de balanceo de cargas para balancear las cargas en el servicio, el grupo de backend (grupos de instancias o grupos de extremos de red) y los niveles de extremo o backend individuales. Para obtener información detallada, consulta Descripción general de los servicios de backend.

Atributo Compatible con el proxy de Envoy configurado para controlar el tráfico HTTP(s), TCP o gRPC Compatible con gRPC sin proxy
Selección de backend (grupo de instancias o grupo de extremos de red) según la región (se prefiere la región más cercana con capacidad de backend en buen estado)
Selección de backend mediante modo de balanceo basado en tasas (solicitudes por segundo)
No compatible con tráfico de TCP (no HTTP(S)).
Selección de backend según el modo de balanceo basado en el uso (solo VM en grupos de instancias de Compute Engine)
Capacidad máxima configurable por backend (solo Compute Engine y GKE)

Selección de backend según las políticas de balanceo de cargas configurables.

Para obtener información sobre cada política integrada, consulta localityLbPolicy.

  • Usa una política integrada única. Elige una de las siguientes opciones:

    • Round robin
    • Solicitud mínima
    • Anillo de hash
    • Aleatorio
    • Destino original
    • Maglev

Resiliencia del servicio

Traffic Director admite funciones que te ayudan a mejorar la resiliencia de los servicios. Por ejemplo, puedes usar Traffic Director para implementar un patrón de implementación azul-verde, pruebas canary o interrupción de circuitos (Envoy, gRPC.

Atributo Compatible con el proxy de Envoy configurado para controlar el tráfico HTTP(s), TCP o gRPC Compatible con gRPC sin proxy
Selección de servicios según las divisiones de tráfico basadas en el peso
Interrupción de circuitos
Solo maxRequests

Administración de capacidad de backend y servicios

Traffic Director considera la capacidad de servicio y backend para garantizar una distribución óptima del tráfico a través de los backends de tus servicios. Traffic Director está integrado en la infraestructura de Google Cloud para que recopila datos de capacidad de forma automática. También puedes establecer y configurar la capacidad de forma manual.

Atributo Admitido
Realiza un seguimiento automático de la capacidad y el uso del backend, basados en CPU, para las instancias de VM en un grupo de instancias administrado.
Capacidad manual y anulaciones para instancias de VM y de contenedores en MIG y grupos de extremos de red (NEG) según el porcentaje de solicitudes.
Desvío manual de capacidad.

Conmutación por error

Por lo general, las cargas de trabajo empresariales dependen de implementaciones de alta disponibilidad para garantizar el tiempo de actividad del servicio. Traffic Director admite estos tipos de implementaciones mediante la habilitación de la redundancia de varias zonas o varias regiones.

Atributo Admitido
Conmutación por error automática a otra zona dentro de la misma región que tiene capacidad de backend en buen estado.
Conmutación por error automática a la región más cercana con capacidad de backend en buen estado.

Verificaciones de estado

Traffic Director admite la verificación de estado centralizada para determinar el estado del backend. Sin embargo, no puedes configurar una verificación de estado cuando un servicio de backend contiene una vinculación del servicio para un servicio del Directorio de servicios.

Para obtener información de referencia, consulta Descripción general de las verificaciones de estado.

Atributo Compatible
Verificaciones de estado de gRPC
Verificaciones de estado de HTTP
Verificaciones de estado de HTTPS
Verificaciones de estado de HTTP/2
Verificaciones de estado de TCP

Verificaciones de estado configurables:

  • Puerto
  • Intervalos de verificación
  • Tiempos de espera
  • Umbrales de buen estado y mal estado
Ruta configurable de solicitud (HTTP, HTTPS, HTTP/2)
String o ruta configurable de solicitud (TCP o SSL)
String configurable de respuesta esperada

Observabilidad

Las herramientas de observabilidad proporcionan información de supervisión, depuración y rendimiento para ayudarte a comprender tu malla de servicios. Las siguientes funciones se proporcionan de forma predeterminada o se configuran en tu plano de datos. El código de tu aplicación no necesita hacer nada especial para generar estos datos de observabilidad.

El panel de estado del servicio está disponible con servicios de gRPC sin proxy, pero no puedes configurar el registro y el seguimiento del plano de datos. Traffic Director no puede configurar el registro y el seguimiento de una aplicación de gRPC. Puedes habilitar el registro y el seguimiento si sigues las instrucciones en las secciones de solución de problemas o en las guías de gRPC disponibles en sitios de código abierto. Por ejemplo, para habilitar la recopilación y el seguimiento de métricas en tus servicios de gRPC sin proxy, puedes usar Opencensus.

Función Compatible con proxies Compatible con los servicios de gRPC sin proxy
Panel del estado de los servicios
Registro del plano de datos
Seguimiento del plano de datos

Afinidad de sesión

Las comunicaciones cliente-servidor a menudo implican varias solicitudes sucesivas. En ese caso, es útil enrutar las solicitudes sucesivas del cliente al mismo backend o servidor. Traffic Director proporciona opciones configurables para enviar solicitudes de un cliente en particular, según el mejor esfuerzo, al mismo backend, siempre que el backend esté en buen estado y tenga capacidad. Para obtener información detallada, consulta Descripción general de los servicios de backend.

Atributo Compatible con proxies HTTP(S) Compatible con proxies TCP Compatible con los servicios de gRPC sin proxy
Dirección IP de cliente
Cookie HTTP No disponible
Encabezado HTTP No disponible
Cookie generada (configura la cookie del cliente en la primera solicitud) No disponible

Topologías de red

Traffic Director admite topologías de red comunes de Google Cloud.

Atributo Compatible
Red única en un proyecto de Google Cloud
Varias mallas en un proyecto de Google Cloud
Varias puertas de enlace en un proyecto de Google Cloud
VPC compartida (una sola red que se comparte en varios proyectos de Google Cloud)

Para obtener una explicación detallada de cómo se admite la VPC compartida con Traffic Director, consulta Limitaciones.

Cumplimiento

Traffic Director cumple con los siguientes estándares.

Certificación de cumplimiento Compatible
HIPAA
ISO 27001, ISO 27017, ISO 27018
SOC1, SOC2, SOC3
PCI DSS

¿Qué sigue?