API gateway
El API gateway es un punto de entrada único para todas las solicitudes de los clientes en una arquitectura de microservicios. Recibe las solicitudes, las enruta a los servicios necesarios, realiza la autenticación, la limitación de la frecuencia de las solicitudes, la agregación de las respuestas y otras funciones transversales, descargando a los propios microservicios.
Contenido
¿Qué es un API gateway en palabras sencillas?
El API gateway es un servidor proxy inverso que actúa como punto de entrada único para todas las solicitudes de los clientes en una arquitectura con muchos microservicios. En palabras sencillas, es el «portero» y el «despachador» de su servicio: recibe todas las solicitudes de los usuarios, determina a qué microservicio enviarlas y devuelve la respuesta.
Imagínese una gran oficina con muchos departamentos. En lugar de que el cliente recorra todos los departamentos, hay una recepción (el API gateway). El cliente dice lo que necesita (una solicitud), la recepción la envía al departamento correspondiente (microservicio), recibe la respuesta y se la entrega al cliente. El cliente ni siquiera sabe en qué departamento está el especialista que necesita; simplemente se comunica con la recepción.
Lea sobre cómo funciona una arquitectura de microservicios en el artículo Arquitectura cliente-servidor.
Principales funciones del API gateway
- Enrutamiento: redirección de la solicitud del cliente a un microservicio concreto según la URL, las cabeceras u otros parámetros.
- Autenticación y autorización: verificación de la identidad y de los derechos de acceso del usuario antes de que la solicitud llegue al microservicio.
- Limitación de la frecuencia: protección de los servicios contra las sobrecargas y los ataques DoS: limitación del número de solicitudes de un solo cliente.
- Transformación de datos: conversión de los formatos de las solicitudes y las respuestas (por ejemplo, de XML a JSON), adición o eliminación de cabeceras HTTP.
- Agregación de respuestas: combinación de los datos de varios microservicios en una sola respuesta para el cliente, para que no tenga que hacer varias solicitudes.
- Monitorización y registro: recopilación de estadísticas sobre las solicitudes, el tiempo de respuesta y los errores para su análisis y depuración.
- Equilibrio de carga: distribución de las solicitudes entre varias instancias de un microservicio.
Soluciones de API gateway populares
- Soluciones en la nube (Managed): Yandex API Gateway, AWS API Gateway, Azure API Management, Google Cloud Endpoints. Servicios listos para usar que no requieren la gestión de la infraestructura.
- Open Source: Kong, Traefik, Envoy, Tyk, NGINX. Se pueden desplegar en sus propios servidores.
- Soluciones on-premise: Apigee (Google), IBM API Connect. Plataformas completas de gestión de API.
Cómo funciona un API gateway en la práctica
- El cliente envía una solicitud a la dirección del API gateway (por ejemplo, api.company.com).
- El API gateway comprueba la autenticación: ¿tiene el cliente un token válido? Si no, devuelve un error 401.
- El API gateway comprueba los derechos de acceso: ¿puede este usuario realizar la acción solicitada? Si no, error 403.
- El API gateway comprueba los límites: ¿ha superado el cliente el límite de solicitudes por minuto? Si lo ha superado, error 429.
- Enrutamiento: según la ruta de la URL y el método HTTP, el gateway determina el microservicio necesario (por ejemplo, /users al servicio de usuarios, /orders al servicio de pedidos).
- Transformación: si es necesario, el gateway convierte la solicitud a un formato que el microservicio entienda.
- Reenvío de la solicitud al microservicio.
- Obtención de la respuesta del microservicio.
- Agregación: si es necesario, el gateway combina las respuestas de varios microservicios.
- Transformación de la respuesta: conversión de la respuesta al formato que espera el cliente.
- Devolución de la respuesta al cliente.
Lea sobre la seguridad de las API en el artículo WAF (Web Application Firewall).
Ventajas de utilizar un API gateway
- Punto de entrada único: los clientes no saben de la existencia de muchos microservicios: trabajan con una sola API.
- Seguridad simplificada: todas las comprobaciones de autenticación y autorización se realizan de forma centralizada.
- Menor carga en los microservicios: los microservicios no se ocupan de la autenticación, los límites y el registro: solo ejecutan su lógica de negocio.
- Flexibilidad: se puede cambiar la arquitectura del backend (añadir, eliminar o modificar microservicios) sin afectar a los clientes.
- Escalabilidad: posibilidad de distribuir la carga entre varias instancias de microservicios.
Inconvenientes del API gateway
- Punto único de fallo: si el API gateway se cae, todo el sistema queda indisponible.
- Latencia: cada solicitud pasa por una «capa» adicional, lo que aumenta el tiempo de respuesta.
- Complejidad de la configuración: requiere una configuración cuidadosa de las rutas, las reglas de transformación y las políticas de seguridad.
Lea sobre la alta disponibilidad en el artículo Cluster de servidores.
Preguntas frecuentes
¿Qué es un API gateway en palabras sencillas?
El API gateway es un punto de entrada único para todas las solicitudes a los microservicios. Recibe la solicitud, comprueba los derechos del usuario, limita la frecuencia de las solicitudes y la redirige al microservicio necesario. Es como la recepción de una gran oficina. Lea sobre los microservicios en el artículo Arquitectura cliente-servidor.
¿Para qué sirve un API gateway?
El API gateway gestiona de forma centralizada la autenticación, la autorización, la limitación de las solicitudes, el enrutamiento, la transformación de los datos y la agregación de las respuestas. Esto descarga a los microservicios y simplifica la gestión de la API. Lea sobre la seguridad en el artículo WAF.
¿Qué API gateways existen?
En la nube: Yandex API Gateway, AWS API Gateway, Azure API Management. Open Source: Kong, Traefik, Tyk, Envoy, NGINX. On-premise: Apigee, IBM API Connect. La elección depende de la infraestructura y del presupuesto. Lea sobre las soluciones en el artículo Servidor proxy.
¿En qué se diferencia el API gateway de un proxy?
Un proxy normal simplemente redirige las solicitudes «tal cual». El API gateway es un proxy «inteligente»: comprueba la autenticación, limita las solicitudes, transforma los datos, agrega las respuestas de varios servicios y recopila analíticas. Lea sobre los proxies en el artículo Servidor proxy.
¿Es el API gateway un equilibrador de carga?
No exactamente. Un equilibrador de carga distribuye la carga entre las instancias de un mismo servicio. El API gateway hace más: enruta entre distintos servicios, comprueba los derechos y transforma los datos. Puede incluir el equilibrio de carga, pero esa es solo una de sus funciones. Lea sobre el equilibrio de carga en el artículo Cluster de servidores.
Otros términos de «Infraestructura»
¿Le ha resultado útil esta información?
Construya una infraestructura de TI fiable
Construya una infraestructura de TI moderna y tolerante a fallos. Diseño, suministro de equipos, instalación y mantenimiento llave en mano.