Información general sobre Cloud Service Mesh

Cloud Service Mesh es una malla de servicios disponible en Google Cloud y en las plataformas de GKE Enterprise compatibles. Admite servicios que se ejecutan en una amplia gama de infraestructuras informáticas. Cloud Service Mesh se controla mediante APIs diseñadas para Google Cloud, para código abierto o para ambos.

Este documento está dirigido a los nuevos usuarios de Cloud Service Mesh y a los clientes de Anthos Service Mesh o Traffic Director.

¿Qué es una malla de servicios?

Una malla de servicios es una arquitectura que permite una comunicación gestionada, observable y segura entre tus servicios, lo que te facilita la creación de aplicaciones empresariales sólidas formadas por muchos microservicios en la infraestructura que elijas. Las mallas de servicios gestionan los requisitos comunes para ejecutar un servicio, como la monitorización, las redes y la seguridad, con herramientas coherentes y potentes, lo que facilita a los desarrolladores y operadores de servicios centrarse en crear y gestionar aplicaciones excelentes para sus usuarios.

Desde el punto de vista de la arquitectura, una malla de servicios consta de uno o varios planos de control y un plano de datos. La malla de servicios monitoriza todo el tráfico que entra y sale de tus servicios. En Kubernetes, un proxy se despliega mediante un patrón sidecar en los microservicios de la malla. En Compute Engine, puedes desplegar proxies en máquinas virtuales o usar gRPC sin proxy para el plano de datos.

Este patrón desacopla la lógica de la aplicación o de la empresa de las funciones de red y permite a los desarrolladores centrarse en las funciones que necesita la empresa. Las mallas de servicios también permiten que los equipos de operaciones y los de desarrollo desvinculen su trabajo.

Diseñar las aplicaciones como microservicios tiene muchas ventajas. Sin embargo, tus cargas de trabajo se pueden complicar y fragmentar a medida que se escalan. La malla de servicios ayuda a resolver el problema de la fragmentación y facilita la gestión de los microservicios.

¿Qué es Cloud Service Mesh?

Cloud Service Mesh es la solución de Google para Google Cloud y los entornos de GKE Enterprise compatibles.

  • Activado: Cloud Service Mesh proporciona APIs específicas de la infraestructura de computación en la que se ejecutan tus cargas de trabajo. Google Cloud
  • Desactivado Google Cloud: con Distributed Cloud o GKE Multicloud, Cloud Service Mesh admite las APIs de Istio para cargas de trabajo de Kubernetes.

Tanto si está activado como desactivado Google Cloud, Cloud Service Mesh te permite gestionar, observar y proteger tus servicios sin tener que cambiar el código de tu aplicación.

Cloud Service Mesh reduce el trabajo repetitivo de los equipos de operaciones y desarrollo, ya que simplifica la prestación de servicios, desde la gestión del tráfico y la telemetría de la malla hasta la protección de las comunicaciones entre los servicios. La malla de servicios totalmente gestionada de Google te permite gestionar entornos complejos y disfrutar de las ventajas que ofrece.

Funciones

Cloud Service Mesh incluye un conjunto de funciones de gestión del tráfico, observabilidad y telemetría, y seguridad.

Gestión del tráfico

Cloud Service Mesh controla el flujo de tráfico entre los servicios de la malla, hacia la malla (entrada) y hacia los servicios externos (salida). Configura y despliega recursos para gestionar este tráfico en la capa de aplicación (L7). Por ejemplo, puedes hacer lo siguiente:

  • Usa el descubrimiento de servicios.
  • Configura el balanceo de carga entre servicios.
  • Crea despliegues canary y azul-verde.
  • Controla el enrutamiento de tus servicios con precisión.
  • Configura interruptores.

Cloud Service Mesh mantiene una lista de todos los servicios de la malla por nombre y por sus respectivos endpoints. Mantiene esta lista para gestionar el flujo de tráfico (por ejemplo, las direcciones IP de los pods de Kubernetes o las direcciones IP de las VMs de Compute Engine en un grupo de instancias gestionado). Al usar este registro de servicios y ejecutar los proxies junto a los servicios, la malla puede dirigir el tráfico al endpoint adecuado. Las cargas de trabajo de gRPC sin proxy también se pueden usar en paralelo con las cargas de trabajo que utilizan proxies de Envoy.

Estadísticas de observabilidad

La interfaz de usuario de Cloud Service Mesh en la Google Cloud consola proporciona información valiosa sobre tu malla de servicios. Estas métricas se generan automáticamente para las cargas de trabajo configuradas a través de las APIs de Istio.

  • Las métricas y los registros de servicio del tráfico HTTP de tu clúster de GKE de malla se ingieren automáticamente en Google Cloud.
  • Los paneles de servicio preconfigurados te proporcionan la información que necesitas para entender tus servicios.
  • La telemetría detallada, basada en Cloud Monitoring, Cloud Logging y Cloud Trace, te permite analizar en profundidad las métricas y los registros de tu servicio. Puede filtrar y segmentar sus datos por una gran variedad de atributos.
  • Las relaciones entre servicios te ayudan a entender de un vistazo las dependencias entre servicios y quién se conecta a cada servicio.
  • Puede ver rápidamente el nivel de seguridad de las comunicaciones no solo de su servicio, sino también de sus relaciones con otros servicios.
  • Los objetivos de nivel de servicio te permiten conocer el estado de tus servicios. Puedes definir un objetivo de nivel de servicio y recibir alertas según tus propios estándares de estado del servicio.

Consulta más información sobre las funciones de observabilidad de Cloud Service Mesh en nuestra guía de observabilidad.

Ventajas para la seguridad

Cloud Service Mesh te ofrece muchas ventajas en materia de seguridad.

  • Mitiga el riesgo de sufrir ataques de repetición o de suplantación de identidad que usen credenciales robadas. Cloud Service Mesh usa certificados TLS mutuos (mTLS) para autenticar a los peers, en lugar de tokens de portador, como los JSON Web Tokens (JWT).
  • Asegura el cifrado en tránsito. Usar mTLS para la autenticación también asegura que todas las comunicaciones TCP se cifren en tránsito.
  • Mitiga el riesgo de que clientes no autorizados puedan acceder a un servicio con datos sensibles, independientemente de la ubicación de red del cliente y de las credenciales a nivel de aplicación.
  • Mitiga el riesgo de que se produzcan brechas de seguridad en los datos de los usuarios en tu red de producción. Puede asegurarse de que los usuarios internos solo puedan acceder a datos sensibles a través de clientes autorizados.
  • Identifica qué clientes han accedido a un servicio con datos sensibles. El registro de acceso de Cloud Service Mesh captura la identidad mTLS del cliente, además de la dirección IP.
  • Todos los componentes y proxies del plano de control en clústeres se han creado con módulos de cifrado validados por el estándar FIPS 140-2.

Consulta más información sobre las ventajas y las funciones de seguridad de Service Mesh en la guía de seguridad.

Opciones de implementación

En Cloud Service Mesh, tienes las siguientes opciones de implementación:

  • On Google Cloud
    • Cloud Service Mesh gestionado: plano de control y de datos gestionados para GKE (opción recomendada)
    • Cloud Service Mesh gestionado: plano de control y plano de datos gestionados para Compute Engine con máquinas virtuales (opción recomendada)
    • Plano de control en clústeres para GKE con APIs de Istio (no recomendado)
  • Desactivado Google Cloud
    • Plano de control en clústeres para Kubernetes con APIs de Istio

Cloud Service Mesh gestionado

Managed Cloud Service Mesh consta del plano de control gestionado para todas las infraestructuras y del plano de datos gestionado para GKE. Con Managed Cloud Service Mesh, Google se encarga de las actualizaciones, el escalado y la seguridad, lo que minimiza el mantenimiento manual por parte del usuario. Esto incluye el plano de control, el plano de datos y los recursos relacionados.

Implementación del plano de datos

Si usas APIs, tu plano de datos puede proporcionarlo proxies de Envoy o aplicaciones gRPC sin proxy. Google Cloud Si vas a actualizar una aplicación, el enfoque basado en sidecar permite la integración en la malla sin cambiar la aplicación. Si quieres evitar la sobrecarga de ejecutar un sidecar, puedes actualizar tu aplicación para que use gRPC.

Los proxies de Envoy y gRPC sin proxy utilizan la API xDS para conectarse al plano de control. Si usas gRPC sin proxy, puedes elegir entre los lenguajes admitidos para tus aplicaciones, como Go, C++, Java y Python.

Si usas APIs de Istio de código abierto, el plano de datos se proporciona mediante proxies de Envoy.

Implementación del plano de control

Tu plano de control de Cloud Service Mesh depende de si tu configuración está activada o desactivada Google Cloud y de si eres un cliente nuevo.

Implementación del plano de control para usuarios actuales

Para determinar tu plano de control actual, consulta Identificar la implementación del plano de control. Para obtener más información sobre los planos de control y la migración de planos de control, consulta el artículo Descripción general del plano de control gestionado para clientes actuales.

Implementación del plano de control para nuevos usuarios

Migración del plano de control

Si eres cliente de Anthos Service Mesh y usas las APIs de Istio, tus clústeres empezarán a migrar al plano de control de Traffic Director. Puedes seguir usando las APIs de Istio para la configuración.

Para determinar si tus clústeres siguen usando el plano de control de Istio o si han migrado al nuevo plano de control global, consulta Identificar la implementación del plano de control.

Siguientes pasos