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 |
|
|
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:
|
✔ |
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?
- Para obtener más información sobre Cloud Service Mesh, consulta la descripción general de Cloud Service Mesh.
- Si deseas encontrar casos prácticos y patrones de arquitectura para servicios de gRPC sin proxy, consulta la descripción general de los servicios de gRPC sin proxy.