Funciones compatibles de Cloud Service Mesh con las APIs de 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 de Envoy de código abierto o el plano de datos de gRPC sin proxy) y Cloud Service Mesh como tu plano de control.

En las siguientes tablas, 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 Cloud Service Mesh. Un espacio en blanco, sin una marca de verificación ni 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.

Versión de xDS compatible

Cloud Service Mesh usa las APIs 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 Cloud Service Mesh.

Solo se admite xDS v3. Migra a xDS v3 si usas xDS v2. Para obtener información sobre cómo migrar, consulta Migra de xDS v2 a xDS v3.

Plataformas para ejecutar servicios de malla

Puedes ejecutar aplicaciones en las siguientes plataformas y adoptarlas en una malla de servicios global que configure Cloud Service Mesh.

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

Función Compatible
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. La malla de servicios de Cloud 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 la malla de servicios de Cloud para comunicarse con otros servicios. Esas aplicaciones pueden enviar tráfico a servicios dentro de la malla y a servicios fuera de la malla.

Función 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

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 ajustan a las necesidades de herramientas de redes de tus servicios.

Atributo Compatible
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 Compatible
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 Compatible
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 en la malla de servicios de Cloud para comunicarse.

Atributo Compatible
HTTP
HTTPS
HTTP/2
TCP
gRPC

Seguridad del servicio

Cloud Service Mesh admite la seguridad del servicio con las siguientes configuraciones.

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

Cloud Service Mesh admite funciones que te ayudan a mejorar la resiliencia de los servicios. Por ejemplo, puedes usar Cloud Service Mesh 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

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

Función Compatible
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. La malla de servicios de Cloud admite estos tipos de implementaciones mediante la habilitación de la redundancia de varias zonas o varias regiones.

Atributo Compatible
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.

Función 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 capacidades 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.

Función 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
Varios enredados 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 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?