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 | ✔ | ✔ |
Limitación de la frecuencia con Google Cloud Armor | ✔ |
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 |
|
|
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 promover 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 mejorar 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:
|
✔ |
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 de gRPC sin proxy, puedes usar OpenTelemetry.
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
- Para obtener más información sobre Cloud Service Mesh, consulta la información general sobre Cloud Service Mesh.
- Para consultar casos prácticos y patrones de arquitectura de los servicios de gRPC sin proxy, consulta la información general sobre los servicios de gRPC sin proxy.