Funciones compatibles con Cloud Service Mesh con las APIs de Google Cloud

En este documento, se resumen las funciones disponibles en Cloud Service Mesh.

Cloud Service Mesh consta de tus aplicaciones, un plano de datos compatible con xDS (el proxy de código abierto de Envoy o el plano de datos sin proxy de gRPC) y Cloud Service Mesh como el plano de control.

En las siguientes tablas, el valor N/A (no aplicable) significa que una función no se puede admitir porque no es compatible con la configuración particular de Cloud Service Mesh. Un espacio en blanco, sin una marca de verificación o N/A, significa que la función no es compatible.

Algunas de estas funciones solo están disponibles con las APIs de balanceo de cargas. Te recomendamos que uses las APIs de enrutamiento de servicios y que no crees implementaciones nuevas con las APIs de balanceo de cargas.

Versiones xDS compatibles

Cloud Service Mesh usa las APIs del plano de control de xDS de código abierto para configurar envoy y los clientes de gRPC sin proxy. Estos clientes actúan en nombre del código de tu aplicación para entregar las capacidades de red de aplicaciones de Cloud Service Mesh.

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 configura Cloud Service Mesh.

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 configura Cloud Service Mesh se benefician de lo siguiente:

  • 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
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. Cloud Service Mesh te permite separar la lógica de la aplicación de la lógica de red para que tu aplicación solo necesite 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 que se describen como en la malla son aquellas que usan el plano de datos administrado por Cloud Service Mesh 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 Admitido
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

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. Cloud Service Mesh es muy flexible y admite topologías de plano de datos que se adaptan a las necesidades 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 Cloud Service Mesh 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 la solicitud

Las aplicaciones pueden usar los siguientes protocolos de solicitud cuando usan el plano de datos configurado con Cloud Service Mesh para comunicarse.

Atributo Admitido
HTTP
HTTPS
HTTP/2
TCP
gRPC

Seguridad del servicio

Cloud Service Mesh admite la seguridad de los servicios con los siguientes parámetros 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

Cloud Service Mesh admite políticas avanzadas de administración del tráfico que puedes usar para dirigir, dividir y darle forma al tráfico a medida que pasa por 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 Cloud Service Mesh controla el tráfico de TCP (que no es 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 N/A
• Cookies
• Parámetros de solicitud N/A
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 más información, consulta la Descripción general de los servicios de backend y la Descripción general del balanceo de cargas avanzado.

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 configurables de balanceo de cargas.

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

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

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

Resiliencia del servicio

Cloud Service Mesh admite funciones que te ayudan a mejorar la resiliencia de tus servicios. Por ejemplo, puedes usar Cloud Service Mesh para implementar un patrón de implementación azul-verde, pruebas canary o interrupciones 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

Cloud Service Mesh tiene en cuenta la capacidad del servicio y el backend para garantizar una distribución óptima del tráfico entre los backends de los servicios. Cloud Service Mesh está integrado en la infraestructura de Google Cloud para que recopile 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. Cloud Service Mesh admite estos tipos de implementaciones mediante la habilitación de la redundancia de varias zonas o multirregionales.

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

Cloud Service Mesh admite la verificación de estado centralizada para determinar el estado del backend.

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. Cloud Service Mesh 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. Cloud Service Mesh 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 N/A
Encabezado HTTP N/A
Cookie generada (configura la cookie del cliente en la primera solicitud) N/A

Topologías de red

Cloud Service Mesh admite topologías de red comunes de Google Cloud.

Atributo Compatible
Red única en un proyecto de Google Cloud
Múltiples 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 la VPC compartida es compatible con Cloud Service Mesh, consulta Limitaciones.

Cumplimiento

Cloud Service Mesh 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?