Funciones compatibles con las APIs de Cloud Service Mesh Google Cloud

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

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

En las tablas siguientes, el valor N/A (no aplicable) significa que una función no se puede admitir porque no es compatible con la configuración concreta de Cloud Service Mesh. Si hay un espacio en blanco, sin una marca de verificación ni la opción N/A, significa que la función no está disponible.

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

Versión de xDS compatible

Cloud Service Mesh usa APIs de plano de control 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 ofrecer las funciones de redes de aplicaciones de Cloud Service Mesh.

Solo se admite xDS v3. Migra a xDS v3 si estás usando xDS v2. Para obtener información sobre cómo migrar, consulta Migrar de xDS v2 a xDS v3.

Plataformas para ejecutar servicios de malla

Puedes ejecutar aplicaciones en las siguientes plataformas e incorporarlas a una malla de servicios global que Cloud Service Mesh configura.

Función Compatible
Instancias de máquina virtual (VM) de Compute Engine
Instancias de contenedor de Google Kubernetes Engine (GKE)
Instancias de contenedor de Kubernetes en Compute Engine

Gestión de servicios

Los servicios de una malla que configura Cloud Service Mesh se benefician de lo siguiente:

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

  • Autoescalado de backend. Las instancias que ejecutan el código de tu aplicación se escalan verticalmente de forma dinámica en función de tus necesidades.

  • Registro automático de endpoints. A medida que se creen o eliminen instancias, se asociarán automáticamente a tu servicio.

Función Compatible
Despliegue automatizado de proxies sidecar para máquinas virtuales de Compute Engine
Inyección automatizada de proxies de sidecar para pods de GKE
Descubrimiento de servicios basado en el nombre de host
Autoescalado de instancias basado en el uso de CPU
Autoescalado de instancias en función de la carga de tráfico o de la capacidad de servicio
(solo máquinas virtuales de Compute Engine en grupos de instancias gestionados o MIGs)
Reparación automática de instancias basada en comprobaciones de estado configurables
Registro automático de endpoints para máquinas virtuales de Compute Engine
Registro automático de endpoints para instancias de contenedor o pods de GKE
API para añadir o quitar endpoints mediante programación

Endpoints para el tráfico de tu plano de datos

Los microservicios usan el plano de datos para acceder a los servicios de tu malla y a los que están fuera de ella. Cloud Service Mesh te permite separar la lógica de la aplicación de la lógica de la red para que tu aplicación solo tenga que enviar solicitudes al plano de datos (por ejemplo, el proxy sidecar que se ejecuta junto a la aplicación). A continuación, el plano de datos envía solicitudes al endpoint correcto.

En la siguiente tabla, las aplicaciones que se describen como aplicaciones de la malla son aquellas que usan el plano de datos gestionado por Cloud Service Mesh para comunicarse con otros servicios. Estas aplicaciones pueden enviar tráfico a servicios de la malla y a servicios externos a la malla.

Función Compatible
Aplicaciones basadas en máquinas virtuales en la malla
Aplicaciones basadas en contenedores en la malla
Aplicaciones basadas en máquinas virtuales fuera de la malla
Aplicaciones basadas en contenedores fuera de la malla
Aplicaciones que se ejecutan en centros de datos locales
Aplicaciones en entornos multinube

Topologías del plano de datos

En el modelo de malla de servicios, tus aplicaciones usan un plano de datos para comunicarse. Este plano de datos suele estar formado por proxies sidecar implementados junto con tus aplicaciones. Cloud Service Mesh es muy flexible y admite topologías de plano de datos que se adaptan a tus necesidades de redes de servicios.

Función Compatible
Proxies de sidecar que se ejecutan junto con las aplicaciones
Aplicaciones de gRPC sin proxy
Proxies intermedios entre dos aplicaciones de una malla
Proxies perimetrales en el límite de tu malla
Malla que abarca varios clústeres de GKE o máquinas virtuales de Compute Engine en varias regiones

Configuración programática basada en APIs

Toda la configuración se expone a través de nuestra API REST y del panel de control preconfigurado, lo que te permite automatizar los cambios en equipos grandes y gestionarlos mediante programación. Algunas funciones no se pueden configurar mediante la consola de Google Cloud .

Función Compatible
APIs REST
Google Cloud consola
Google Cloud CLI
Cloud Deployment Manager
Compatibilidad con Terraform

Compatibilidad de idiomas con aplicaciones gRPC sin proxy

Puedes crear aplicaciones gRPC sin proxy que funcionen con Cloud Service Mesh con los siguientes lenguajes de programación. Las funciones de malla de servicios admitidas en varias implementaciones y versiones de gRPC se indican en GitHub.

Idioma Compatible
Java
Go
C++
Python
Ruby
PHP
Nodo

Protocolos de solicitud

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

Función Compatible
HTTP
HTTPS
HTTP/2
TCP
gRPC

Seguridad del servicio

Cloud Service Mesh admite la seguridad de los servicios con las siguientes configuraciones.

Función Envoy gRPC
TLS con pods de GKE
mTLS con pods de GKE
Control de acceso y autorización

Rutas y gestión del tráfico

Cloud Service Mesh admite políticas de gestión del tráfico avanzadas que puedes usar para dirigir, dividir y dar forma al tráfico a medida que pasa por tu plano de datos.

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

Las siguientes funciones no se admiten cuando Cloud Service Mesh gestiona el tráfico TCP (no HTTP(S)).

Función Compatible con el proxy Envoy configurado para gestionar el tráfico HTTP(S) o gRPC Compatible con gRPC sin proxy
Enrutamiento de solicitudes HTTP o de capa 7 basado en coincidencias de sufijos, prefijos, completas o de expresiones regulares en:
• Nombre de host
• Ruta
• Encabezados
• Método N/A
• Cookies
• Parámetros de solicitud N/A
Inyección de fallos
Tiempos de espera configurables No disponible
Consulta Duración máxima de la emisión.
Reintentos
Excepto tiempo de espera por reintento
Redireccionamientos
Reescrituras de URIs
Transformaciones de encabezados de solicitud y respuesta
División del tráfico
Duplicación del tráfico
Detección de valores atípicos
Interrupción de circuitos
Solo maxRequests
Duración máxima de la transmisión

Balanceo de carga

Puedes configurar métodos y algoritmos de balanceo de carga avanzados para balancear la carga a nivel de servicio, de grupo de backend (grupos de instancias o grupos de endpoints de red) y de backend o endpoint individual. Para obtener más información, consulta la descripción general de los servicios de backend y la descripción general del balanceo de carga avanzado.

Función Compatible con el proxy Envoy configurado para gestionar el tráfico HTTP(s), TCP o gRPC Compatible con gRPC sin proxy
Selección de backend (grupo de instancias o grupo de endpoints de red) en función de la región (se prefiere la región más cercana con capacidad de backend correcta)
Selección de backend mediante el modo de balanceo basado en la frecuencia (solicitudes por segundo).
No se admite con tráfico TCP (que no sea HTTP(S)).
Selección de backend basada en el modo de balanceo basado en la utilización (solo máquinas virtuales de grupos de instancias de Compute Engine)
Capacidad máxima configurable por backend (solo en Compute Engine y GKE)

Selección de backend basada en políticas de balanceo de carga configurables.

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

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

    • Orden aleatorio
    • Mínimo de solicitudes
    • Hash en anillo
    • Aleatoria
    • 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 despliegue azul-verde, pruebas canary o interrupción de circuitos (Envoy, gRPC).

Función Compatible con el proxy Envoy configurado para gestionar el tráfico HTTP(s), TCP o gRPC Compatible con gRPC sin proxy
Selección de servicios basada en divisiones de tráfico por peso
Interrupción de circuitos
Solo maxRequests

Gestión de la capacidad de servicios y backends

Cloud Service Mesh tiene en cuenta la capacidad de los servicios y los backends para asegurar una distribución óptima del tráfico entre los backends de tus servicios. Cloud Service Mesh se integra con la infraestructura para recoger automáticamente datos de capacidad. Google Cloud También puedes definir y configurar la capacidad manualmente.

Función Compatible
Monitoriza automáticamente la capacidad y el uso del backend, en función de la CPU, de las instancias de VM de un grupo de instancias gestionado (MIG).
Capacidad manual y anulaciones de instancias de máquinas virtuales y contenedores en grupos de instancias gestionados y grupos de puntos de conexión de red en función de la tasa de solicitudes.
Drenaje manual de la capacidad.

Conmutación por error

Las cargas de trabajo empresariales suelen depender de implementaciones de alta disponibilidad para asegurar el tiempo de actividad del servicio. Cloud Service Mesh admite estos tipos de implementaciones al habilitar la redundancia multizona o multirregión.

Función Compatible
Se activa una conmutación por error automática hacia otra zona de la misma región que tenga capacidad de backend en buen estado.
Conmutación automática por error a la región más cercana con capacidad de backend correcta.

Comprobaciones del estado

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

Para obtener información de referencia, consulta el artículo Información general sobre las comprobaciones del estado.

Función Compatible
Comprobaciones del estado de gRPC
Comprobaciones de estado HTTP
Comprobaciones de estado HTTPS
Comprobaciones del estado de HTTP/2
Comprobaciones del estado de TCP

Comprobaciones del estado configurables:

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

Observabilidad

Las herramientas de observabilidad proporcionan información sobre la monitorización, la depuración y el 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 tiene que hacer nada especial para generar estos datos de observabilidad.

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

Función Admitido con proxies Compatible con servicios gRPC sin proxy
Panel de control de estado del servicio
Registro del plano de datos
Monitorización del plano de datos

Afinidad de sesión

Las comunicaciones cliente-servidor suelen implicar varias solicitudes sucesivas. En ese caso, es útil dirigir las solicitudes de clientes sucesivas al mismo backend o servidor. Cloud Service Mesh ofrece opciones configurables para enviar solicitudes de un cliente concreto, de la mejor forma posible, al mismo backend siempre que esté en buen estado y tenga capacidad. Para obtener más información, consulta la descripción general de los servicios backend.

Función Compatible con proxies HTTP(S) Compatible con proxies TCP Compatible con servicios gRPC sin proxy
Dirección IP del cliente
Cookie de HTTP N/A
Encabezado HTTP N/A
Cookie generada (define la cookie de cliente en la primera solicitud) N/A

Topologías de red

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

Función Compatible
Una sola red en un proyecto Google Cloud
Varias mallas en un Google Cloud proyecto
Varias pasarelas en un Google Cloud proyecto
VPC compartida (una sola red compartida entre varios proyectos) Google Cloud

Para obtener una explicación detallada de cómo se admite la VPC compartida con Cloud Service Mesh, consulta la sección Limitaciones.

Cumplimiento

Cloud Service Mesh cumple los siguientes estándares.

Certificación de cumplimiento Compatible
HIPAA
ISO 27001, ISO 27017 e ISO 27018
SOC 1, SOC 2 y SOC 3
PCI DSS

Siguientes pasos