Descripción general de la arquitectura de Cloud Endpoints

Endpoints es un sistema distribuido de administración de API compuesto por servicios, entornos de ejecución y herramientas. Endpoints proporciona administración, supervisión y autenticación.

Endpoints está conformado por los siguientes componentes:

  • Proxy de servicio extensible (ESP): para incorporar la funcionalidad de Endpoints.

  • Control de servicios: para aplicar las reglas de administración de API.

  • Administración de servicios: para configurar las reglas de administración de API.

  • SDK de Cloud: para implementación y administración.

  • Google Cloud Platform Console: para registrar, supervisar y compartir.

Arquitectura de Endpoints

Arquitectura de Endpoints

Componentes de Endpoints

ESP

El ESP es un proxy basado en NGINX que se ejecuta frente al backend y que incorpora funcionalidades de Endpoints, como autenticación, supervisión y registro. El ESP recupera una configuración de servicio desde la Administración de servicios y la usa para validar solicitudes entrantes.

El ESP está diseñado para que puedas implementarlo en un entorno en contenedores y validar los JWT y los token de ID de Google. El ESP usa una variedad de técnicas, como almacenamiento en caché pesado y llamadas asíncronas, para mantener su ligereza y alto rendimiento.

Control de servicios

El Control de servicios aplica reglas de administración de API en el entorno de ejecución, como autenticación de clave, supervisión y registro. El Control de servicios proporciona los siguientes métodos:

  • Verificación: comprueba la autenticación y las claves de API, y también indica cuándo se debe permitir una llamada.

  • Informe: notifica a los sistemas de registro para el registro y la supervisión.

Administración de servicios

Puedes describir el comportamiento de tu servicio de gRPC en un archivo YAML denominado configuración de Endpoints. Puedes implementar la configuración de Endpoints y los archivos .proto compilados en la Administración de servicios por medio del SDK de Cloud, que configura las reglas de administración de API. Aquí también tienen lugar otras tareas relacionadas con la configuración, como compartir la API con otros desarrolladores, habilitar o inhabilitar la API en proyectos diferentes y generar claves de API.

SDK de Cloud

El SDK de Cloud proporciona la herramienta de línea de comandos de gcloud que puedes usar para hacer llamadas a varios servicios de GCP. Puedes usar la herramienta de línea de comandos de gcloud para implementar tu configuración de Endpoints en la Administración de servicios.

Google Cloud Platform Console

GCP Console es la interfaz de usuario gráfica para Google Cloud Platform (GCP). Endpoints usa GCP Console a fin de exponer datos de supervisión y registro que se envían desde el ESP y que se registran por medio del Control de servicios; también la usa a fin de compartir las API con otros desarrolladores y que estos generen claves de API para llamar a la API.

Situaciones de implementación

El ESP está diseñado para que puedas implementarlo en un contenedor junto con cada instancia de tu backend. Esta topología de servidor local es ideal para las API de la Web y los microservicios. También evita el salto de red que se suele asociar con los proxies centralizados y permite una administración de la API de alto rendimiento y sumamente escalable.

Por lo general, el balanceo de cargas se aplica antes de que el tráfico alcance el ESP. En Compute Engine, esto se logra mediante Cloud Load Balancing. En implementaciones de Kubernetes, puedes usar un proxy de entrada para el balanceo de cargas. En Google Kubernetes Engine, puedes usar Cloud Load Balancing o un proxy de entrada con el mismo fin.

Al inicio, el ESP obtiene su configuración de servicio de la Administración de servicios. La configuración de servicios se genera desde la especificación de OpenAPI o desde gRPC, la configuración de servicio del archivo YAML. La Administración de servicios le indica al ESP la superficie de la API que se va a administrar y también las políticas, como cuáles métodos requieren autenticación y cuáles necesitan claves de API.

Solicitar enrutamiento

Cuando se recibe una solicitud, el ESP crea un token de seguimiento para Stackdriver Trace.

Después, el ESP hace coincidir la ruta de las solicitudes entrantes con la superficie de la API. Luego de encontrar una ruta de coincidencia, el ESP realiza los pasos de autenticación necesarios para el método especificado.

Si se requiere una validación de JWT, el ESP valida la autenticación por medio de la clave pública adecuada para el firmante y valida el campo del público en el JWT. Si se requiere una clave de API, el ESP llama a la API de Control de servicios para validar la clave.

El Control de servicios busca la clave para validarla y se asegura de que el proyecto asociado a esa clave haya habilitado la API. Si la clave no es válida o si el proyecto no habilitó la API, se rechaza la llamada y se la registra por medio de la API de Control de servicios.

Si el Control de servicios valida la clave correctamente, la solicitud se reenvía al backend con todos los encabezados originales, y con un encabezado de validación de JWT si corresponde.

Cuando se recibe una respuesta del backend, el ESP le muestra la respuesta al emisor y envía la información final sobre el tiempo a Trace. Los puntos de llamada se registran mediante la API de Control de servicios, que escribe métricas y registros para los destinos adecuados.

ESP en Kubernetes

En el siguiente diagrama, se muestra la arquitectura general en la cual el ESP se ejecuta como un contenedor de archivo adicional frente al contenedor de la aplicación de servicio de la API, y donde la API my-api se aloja en my-api.com y cuenta con el respaldo del servicio Kubernetes.

Descripción general de Endpoints en Kubernetes

¿Qué sigue?

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Cloud Endpoints con gRPC
Si necesitas ayuda, visita nuestra página de asistencia.