Descripción general de Cloud Service Mesh

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

Este documento es para ti si eres un usuario nuevo de Cloud Service Mesh o un cliente continuo 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 administrada, observable y segura entre tus servicios, lo que facilita la creación de aplicaciones empresariales sólidas compuestas por muchos microservicios en la infraestructura que elijas. Las mallas de servicios administran los requisitos comunes de la ejecución de un servicio, como la supervisión, las herramientas de redes y la seguridad, con herramientas coherentes y potentes, lo que facilita a los desarrolladores y operadores de servicios enfocarse en crear y administrar aplicaciones excelentes para sus usuarios.

A nivel de la arquitectura, una malla de servicios consta de uno o más planos de control y un plano de datos. La malla de servicios supervisa todo el tráfico que entra y sale de tus servicios. En Kubernetes, un proxy se implementa mediante un patrón de archivo adicional en los microservicios de la malla. En Compute Engine, puedes implementar proxies en VMs o usar gRPC sin proxy para el plano de datos.

Este patrón separa la lógica empresarial o de la aplicación de las funciones de red y permite que los desarrolladores se enfoquen en las características que la empresa necesita. Las mallas de servicios también permiten que los equipos de operaciones y de desarrollo separen el trabajo entre sí.

Diseñar aplicaciones como microservicios proporciona muchos beneficios. Sin embargo, las cargas de trabajo pueden volverse más complejas y fragmentarse a medida que se escalan. La malla de servicios ayuda a resolver el problema de fragmentación y facilita la administración de los microservicios.

¿Qué es Cloud Service Mesh?

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

  • En Google Cloud: Cloud Service Mesh proporciona APIs que son específicas de la infraestructura de procesamiento en la que se ejecutan tus cargas de trabajo.
  • Fuera de Google Cloud: con Distributed Cloud Virtual o GKE múltiples nubes, Cloud Service Mesh admite las APIs de Istio para las cargas de trabajo de Kubernetes.

Ya sea que esté dentro o fuera de Google Cloud, Cloud Service Mesh te permite administrar, observar y proteger tus servicios sin tener que cambiar el código de la aplicación.

Cloud Service Mesh reduce el trabajo repetitivo de los equipos de operaciones y desarrollo, ya que simplifica la entrega de servicios, desde la administració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 completamente administrados de Google te permite administrar entornos complejos y disfrutar de los beneficios que ofrecen.

Funciones

Cloud Service Mesh tiene un paquete de funciones para la administración del tráfico, la observabilidad, la telemetría y la seguridad.

Administración del tráfico

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

  • Usa el descubrimiento de servicios.
  • Configurar el balanceo de cargas entre servicios
  • Crea implementaciones de versiones canary y azul-verde.
  • Controla con precisión el enrutamiento de tus servicios.
  • Configura disyuntores.

Cloud Service Mesh mantiene una lista de todos los servicios de la malla por nombre y por sus extremos respectivos. Mantiene esta lista para administrar el flujo de tráfico (por ejemplo, las direcciones IP del Pod de Kubernetes o las direcciones IP de las VM de Compute Engine en un grupo de instancias administrado). Si usas este registro de servicios y ejecutas los proxies junto con los servicios, la malla puede dirigir el tráfico al extremo adecuado. Las cargas de trabajo de gRPC sin proxy también se pueden usar en paralelo con cargas de trabajo que usan proxies de Envoy.

Estadísticas de observabilidad

La interfaz de usuario de Cloud Service Mesh en la consola de Google Cloud proporciona estadísticas sobre la malla de servicios. Estas métricas se generan de forma automática para las cargas de trabajo configuradas a través de las APIs de Istio.

  • Las métricas del servicio y los registros del tráfico HTTP dentro del clúster de GKE de tu malla se transfieren automáticamente a Google Cloud.
  • Los paneles de servicio preconfigurados te proporcionan la información que necesitas para comprender los servicios.
  • La telemetría en profundidad, con la tecnología de Cloud Monitoring, Cloud Logging y Cloud Trace, te permite profundizar en las métricas y los registros del servicio. Puedes filtrar y segmentar tus datos según una amplia variedad de atributos.
  • Las relaciones de servicio a servicio te ayudan a comprender a simple vista las dependencias entre servicios y quién se conecta a cada uno de ellos.
  • Puedes ver con rapidez la postura de seguridad de la comunicación no solo de tu servicio, sino también de sus relaciones con otros servicios.
  • Los objetivos de nivel de servicio (SLO) proporcionan información sobre el estado de tus servicios. Puedes definir un SLO y recibir alertas en función de tus propios estándares del estado del servicio.

Obtén más información sobre las funciones de observabilidad de Cloud Service Meshs en nuestra Guía de observabilidad.

Beneficios de seguridad

Cloud Service Mesh proporciona muchos beneficios de seguridad.

  • Se reduce el riesgo ataques de repetición o de robo de identidad con credenciales robadas. Cloud Service Mesh se basa en certificados TLS mutuos (mTLS) para autenticar pares, en lugar de tokens del portador, como los tokens web JSON (JWT).
  • Se garantiza la encriptación en tránsito. El uso de mTLS para la autenticación también garantiza que todas las comunicaciones de TCP estén encriptadas en tránsito.
  • Mitiga el riesgo de que los clientes no autorizados puedan acceder a un servicio con datos sensibles, sin importar la ubicación de red del cliente y las credenciales a nivel de la aplicación.
  • Se reduce el riesgo de violación de la seguridad de los datos del usuario en tu red de producción. Puedes asegurarte de que los usuarios con información privilegiada solo puedan acceder a datos sensibles a través de clientes autorizados.
  • Se identifica qué clientes accedieron a un servicio con datos sensibles. El registro de acceso de Cloud Service Mesh captura la identidad de mTLS del cliente, además de la dirección IP.
  • Todos los componentes del plano de control en el clúster se compilan con módulos de encriptación validados con FIPS 140-2.

Obtén más información sobre los beneficios y las funciones de seguridad de Service Mesh en la Guía de seguridad.

Opciones de implementación

Tienes las siguientes opciones de implementación en Cloud Service Mesh:

  • En Google Cloud:
    • Malla de servicios administrados: control y plano de datos administrados para GKE (recomendado)
    • Cloud Service Mesh administrado: plano de datos y control administrados para Compute Engine con VMs (recomendado)
    • Plano de control en el clúster para GKE con las APIs de Istio (no recomendado)
  • Fuera de Google Cloud
    • Plano de control en el clúster para Kubernetes con las APIs de Istio

Malla de servicios de Cloud administrada

La malla de servicios administrados consta del plano de control administrado para todas las infraestructuras y el plano de datos administrado de GKE. Con Managed Cloud Service Mesh, Google controla las actualizaciones, el escalamiento y la seguridad por ti, lo que minimiza el mantenimiento manual del usuario. Esto abarca el plano de control, el plano de datos y los recursos relacionados.

Implementación del plano de datos

Si usas las APIs de Google Cloud, los proxies de Envoy o las aplicaciones de gRPC sin proxy pueden proporcionar el plano de datos. Si actualizas una aplicación existente, el enfoque basado en archivo adicional permite la integración en la malla sin cambiar la aplicación. Si deseas evitar la sobrecarga de ejecutar un archivo adicional, puedes actualizar tu aplicación para usar gRPC.

Los proxies de Envoy y gRPC sin proxy usan la API de xDS para conectarse al plano de control. Si usas gRPC sin proxy, tienes una variedad de lenguajes compatibles para tus aplicaciones, incluidos Go, C++, Java y Python.

Si usas las APIs de Istio de código abierto, los proxies de Envoy proporcionan el plano de datos.

Implementación del plano de control

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

Implementación del plano de control para usuarios existentes

Para determinar tu plano de control actual, lee Identifica la implementación del plano de control. Para obtener más información sobre la migración del plano de control y del plano de control, consulta Descripción general del plano de control administrado para los clientes continuos.

Implementación del plano de control para usuarios nuevos

Migración del plano de control

Si eres cliente continuo de Anthos Service Mesh y usas las APIs de Istio, tus clústeres comenzará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 todavía usan el plano de control de Istio o si se migraron al nuevo plano de control global, consulta Identifica la implementación del plano de control.

¿Qué sigue?