Descubrimiento de servicios
Cloud Service Mesh proporciona descubrimiento de servicios y extremos. Estas funciones permiten agrupar las instancias de máquina virtual (VM) y el contenedor que ejecuta tu código como extremos de tus servicios.
Cloud Service Mesh supervisa estos servicios para que pueda compartir información actualizada de la verificación de estado con sus clientes. Por lo tanto, cuando una de tus aplicaciones usa su de la malla de servicios de Cloud (como un proxy de sidecar de Envoy o un aplicación de gRPC sin proxy) para enviar una solicitud, se beneficia de la actualización información sobre tus servicios.
En el contexto de Cloud Service Mesh, un cliente es un código de la aplicación que se ejecuta en una VM o contenedor y que formula solicitudes que se envían a un servidor. Un servidor es un código de la aplicación que recibe esas solicitudes. Un cliente de Cloud Service Mesh es un cliente de xDS de Envoy o gRPC u otro que se conecta a Cloud Service Mesh y es parte del plano de datos.
En el plano de datos, Envoy o gRPC realiza lo siguiente:
- Examina una solicitud y hace coincidir la solicitud con un servicio de backend, un recurso que configuras durante la implementación.
- Cuando la solicitud coincide, Envoy o gRPC aplican cualquier de las políticas de seguridad o del tráfico, elige un backend o un extremo, y la solicitud a ese backend o extremo.
Descubrimiento de servicios
Cloud Service Mesh proporciona el descubrimiento de servicios. Cuando configuras Cloud Service Mesh, creas servicios de backend. También puedes definir reglas de enrutamiento que especifican cómo una solicitud saliente (una solicitud enviada por el código de la aplicación) y manejadas por un cliente de Cloud Service Mesh) coincidan con un servicio en particular. Cuando un cliente de la malla de servicios de Cloud maneja una solicitud que coincide con una regla, puede elige el servicio que debe recibir la solicitud.
Por ejemplo:
- Tienes una VM que ejecuta tu aplicación. Esta VM tiene un proxy de sidecar de Envoy que está conectado a Cloud Service Mesh y controla las solicitudes salientes en nombre de la aplicación.
- Configuraste un servicio de backend llamado
payments
. Este servicio de backend tiene dos backends de grupos de extremos de red (NEG) que apuntan a varias instancias de contenedor que ejecutan el código para tu serviciopayments
. - Configuraste un recurso
Mesh
que define una malla llamadasidecar-mesh
. - Configuraste un recurso
Route
que define los destinos de tráfico para el servicio de backendpayments
y el nombre de hosthelloworld-gce
.
Con esta configuración, cuando tu aplicación (en la VM) envía una solicitud HTTP a payments.example.com
, el cliente de Cloud Service Mesh sabe que esta es una solicitud dirigida al servicio payments
.
Cuando usas Cloud Service Mesh con servicios de gRPC sin proxy, el descubrimiento de servicios funciona de manera similar. Sin embargo, una biblioteca de gRPC que actúa como un cliente de Cloud Service Mesh solo obtiene información sobre los servicios para los que especificas un agente de resolución de xDS. De forma predeterminada, Envoy obtiene información sobre todos los servicios configurados en la red de nube privada virtual (VPC) especificada en el archivo de arranque de Envoy.
Descubrimiento de extremos
Service Discovery permite que los clientes conozcan tus servicios. La detección de extremos permite que los clientes conozcan las instancias que ejecutan tu código.
Cuando creas un servicio, también especificas sus backends. Estos backends son VM en grupos de instancias administrados (MIG) o contenedores en NEG. Cloud Service Mesh supervisa estos MIG y NEG para que sepa cuándo se crean y quitan las instancias y los extremos.
Cloud Service Mesh comparte de manera continua información actualizada sobre estas y servicios con los clientes. Esto permite que los clientes eviten enviar tráfico a extremos que ya no existen. También permite a los clientes obtener información sobre extremos nuevos y aprovechar la capacidad adicional que proporcionan estos extremos.
Además de agregar extremos a MIG o NEG y configurar Cloud Service Mesh, no necesitas ninguna configuración adicional para habilitar el descubrimiento de servicios con Cloud Service Mesh.
Interceptación de tráfico del proxy de sidecar en Cloud Service Mesh
Cloud Service Mesh admite el modelo de proxy de sidecar. En este modelo, cuando una aplicación envía tráfico a su destino, el tráfico se intercepta y se redirecciona a un puerto en el proxy de sidecar en el host donde se ejecuta la aplicación. El proxy de sidecar decide cómo balancear las cargas del tráfico y, luego, envía el tráfico a su destino.
Con la malla de servicios de Cloud y las APIs de enrutamiento de servicios, la intercepción del tráfico es se administran automáticamente.
¿Qué sigue?
- Si deseas obtener información sobre cómo Cloud Service Mesh ofrece balanceo de cargas global para tus microservicios internos con proxies de sidecar, consulta Balanceo de cargas de Cloud Service Mesh.
- Para obtener más información sobre Cloud Service Mesh, consulta el Descripción general de Cloud Service Mesh.