Descripción general de Cloud Service Mesh
Cloud Service Mesh es una malla de servicios disponible en Google Cloudy en todas las plataformas de GKE compatibles. Admite servicios que se ejecutan en una variedad de infraestructuras de procesamiento. Cloud Service Mesh se controla con 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 conformadas por muchos microservicios en la infraestructura seleccionada. Las mallas de servicios administran los requisitos comunes de la ejecución de un servicio, como la supervisión, las redes y la seguridad, con herramientas coherentes y potentes, lo que facilita que los desarrolladores y operadores de servicios se concentren en crear y administrar aplicaciones excelentes para sus usuarios.
Desde el punto de vista 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, el proxy se implementa mediante un patrón de sidecar 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 tus aplicaciones como microservicios proporciona muchos beneficios. Sin embargo, tus cargas de trabajo pueden volverse más complejas y fragmentadas a medida que se escalan. La malla de servicio ayuda a resolver el problema de fragmentación y facilita la administración de tus microservicios.
¿Qué es Cloud Service Mesh?
Cloud Service Mesh es la solución de Google para los entornos de GKE Enterprise Google Cloudy compatibles.
- Activado Google Cloud: Cloud Service Mesh proporciona APIs específicas para la infraestructura de procesamiento en la que se ejecutan tus cargas de trabajo.
- Para las cargas de trabajo de Compute Engine, Cloud Service Mesh usa APIs de enrutamiento de servicio específicas deGoogle Cloud.
- Para las cargas de trabajo de Google Kubernetes Engine (GKE), Cloud Service Mesh usa las APIs de Istio de código abierto.
- Desactivado Google Cloud: Con Distributed Cloud o GKE Multi-cloud, Cloud Service Mesh admite las APIs de Istio para las cargas de trabajo de Kubernetes.
Ya sea que esté activado o desactivado Google Cloud, Cloud Service Mesh te permite administrar, observar y proteger tus servicios sin tener que cambiar el código de tu aplicación.
Cloud Service Mesh reduce el trabajo repetitivo de tus 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 servicios. La malla de servicios completamente administrados de Google te permite administrar entornos complejos y disfrutar de los beneficios que ofrece.
Funciones
Cloud Service Mesh tiene un conjunto de funciones para la administración del tráfico, la observabilidad y la telemetría, y la seguridad.
Administració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). Configuras y, luego, implementas recursos para administrar este tráfico en la capa de aplicación (L7). Por ejemplo, puedes hacer lo siguiente:
- Usar el descubrimiento de servicios
- Configurar el balanceo de cargas entre los servicios
- Crea implementaciones de versiones canary y azul-verde.
- Controla con precisión el enrutamiento de tus servicios.
- Configura los disyuntores.
Cloud Service Mesh mantiene una lista de todos los servicios de la malla por nombre y por sus respectivos extremos. Mantiene esta lista para administrar 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 administrado). Con este registro de servicios y la ejecución de 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 las 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 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 del tráfico HTTP del servicio dentro del clúster de GKE de tu malla se transfieren de forma automática a Google Cloud.
- Los paneles de servicio preconfigurados te proporcionan la información que necesitas para comprender tus servicios.
- La telemetría profunda, con la tecnología de Cloud Monitoring, Cloud Logging y Cloud Trace, te permite analizar en profundidad los registros y métricas del servicio. Puedes filtrar y segmentar tus datos según una amplia variedad de atributos.
- Las relaciones entre servicios te ayudan a comprender de un vistazo las dependencias entre servicios y quién se conecta a cada uno.
- Puedes ver rápidamente la postura de seguridad de la comunicación, no solo de tu servicio, sino también 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 una alerta en función de tus propios estándares de estado del servicio.
Obtén más información sobre las funciones de observabilidad de Cloud Service Mesh en nuestra guía de observabilidad.
Beneficios de seguridad
Cloud Service Mesh te 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 de TLS mutua (mTLS) para autenticar pares, en lugar de tokens de 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, independientemente de 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 internos solo puedan acceder a los 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 proxies y componentes del plano de control en el clúster se compilan con módulos de encriptación validados por 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
En Cloud Service Mesh, tienes las siguientes opciones de implementación:
- En Google Cloud
- Cloud Service Mesh administrado: Plano de control y de datos administrados para GKE (recomendado)
- Cloud Service Mesh administrado: Plano de control y de datos administrados para Compute Engine con VMs (recomendado)
- Plano de control en el clúster para GKE con APIs de Istio (obsoleto)
- Desactivado Google Cloud
- Plano de control en el clúster para Kubernetes con APIs de Istio
Cloud Service Mesh administrada
Cloud Service Mesh administrado consta del plano de control administrado para todas las infraestructuras y el plano de datos administrado para GKE. Con Managed Cloud Service Mesh, Google se encarga de las actualizaciones, el escalamiento y la seguridad para que puedas minimizar el mantenimiento manual de los usuarios. Esto abarca el plano de control, el plano de datos y los recursos relacionados.
Implementación del plano de datos
Si usas Google Cloud APIs, los proxies de Envoy o las aplicaciones de gRPC sin proxy pueden proporcionar tu plano de datos. Si actualizas una aplicación existente, el enfoque basado en sidecar permite la integración en la malla sin cambiar la aplicación. Si deseas evitar la sobrecarga de ejecutar un sidecar, puedes actualizar tu aplicación para que use gRPC.
Tanto los proxies de Envoy como los gRPC sin proxy usan la API de xDS para conectarse al plano de control. Si usas gRPC sin proxy, tendrás la opción de elegir entre varios lenguajes compatibles con tus aplicaciones, incluidos Go, C++, Java y Python.
Si usas las APIs de Istio de código abierto, los proxies de Envoy proporcionan tu plano de datos.
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 existentes
- Si tu configuración está desactivada Google Cloud, significa que estás usando el plano de control no administrado del clúster de Cloud Service Mesh. Para obtener más información, consulta Funciones compatibles del plano de control en el clúster.
- Si eras usuario de Anthos Service Mesh en Google Cloud, estás usando las APIs de Istio. Para obtener más información, consulta Funciones compatibles con las APIs de Istio (plano de control administrado) .
- Si eras usuario de Traffic Director, ahora usas el plano de control administrado de Cloud Service Mesh con las APIs de Google Cloud . Para obtener más información, consulta Cloud Service Mesh con funciones compatibles con las APIs de Google Cloud .
Para determinar tu plano de control actual, consulta Cómo 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 Descripción general del plano de control administrado para clientes existentes.
Implementación del plano de control para usuarios nuevos
- Si planeas una configuración deGoogle Cloud , eliges el plano de control no administrado en el clúster de Cloud Service Mesh. Para obtener más información, consulta Funciones compatibles del plano de control en el clúster.
- Si planeas una configuración enGoogle Cloud en GKE, usarás las APIs de Istio con la implementación del plano de control de Traffic Director. Para obtener más información, consulta Funciones compatibles con las APIs de Istio (plano de control administrado).
- Si planeas una configuración deGoogle Cloud en VMs de Compute Engine, usarás la implementación del plano de control de Traffic Director. Para obtener más información, consulta Cloud Service Mesh con Google Cloud APIs: Funciones compatibles.
Migración del plano de control
Si eres cliente de Anthos Service Mesh y usas las APIs de Istio, seguirás usando las APIs de Istio para la configuración.
Si alguna de tus flotas aún usa la implementación del plano de control ISTIOD, debes modernizarla.
¿Qué sigue?
- Si eres un usuario existente, consulta Plano de control administrado para clientes existentes.
- Si planeas realizar la configuración con GKE, consulta Aprovisiona un plano de control.
- Si planeas realizar la configuración con Compute Engine y VMs, consulta Preparación para la configuración en las APIs de enrutamiento de servicios con cargas de trabajo de Envoy y sin proxy.