Una puerta de enlace de API acepta solicitudes de API de un cliente, las procesa según las políticas definidas, las dirige a los servicios adecuados y combina las respuestas para simplificar la experiencia del usuario. Por lo general, gestiona una solicitud invocando varios microservicios y agregando los resultados. También puede realizar conversiones entre protocolos en implementaciones con sistemas heredados.

¿Qué es una puerta de enlace de API?

Una puerta de enlace de API acepta solicitudes de API de un cliente, las procesa según las políticas definidas, las dirige a los servicios correspondientes y combina las respuestas para simplificar la experiencia del usuario. Normalmente, gestiona una solicitud invocando varios microservicios y agregando los resultados. También puede realizar conversiones entre protocolos en implementaciones heredadas.

Capacidades de API Gateway

Las puertas de enlace de API suelen implementar funcionalidades como las siguientes:

  • Política de seguridad – Autenticación, autorización, control de acceso y cifrado
  • Política de enrutamiento – Enrutamiento, limitación de velocidad, manipulación de solicitudes y respuestas, disyuntor, despliegues azul-verde y canary, pruebas A/B, equilibrio de carga, comprobaciones de estado y gestión personalizada de errores
  • Política de observabilidad – Métricas históricas y en tiempo real, registro y rastreo

Para reforzar la seguridad a nivel de aplicación y API, las puertas de enlace de API pueden complementarse con un firewall de aplicaciones web (WAF) y protección contra ataques de denegación de servicio (DoS).

Ventajas de las puertas de enlace de API

Implementar una puerta de enlace de API para la entrega de aplicaciones puede ayudar a:

  • Reducir la complejidad y agilizar los lanzamientos de aplicaciones encapsulando la arquitectura interna de la aplicación y proporcionando API adaptadas a cada tipo de cliente
  • Agilice y simplifique el procesamiento de solicitudes y la aplicación de políticas centralizando el punto de control y trasladando los requisitos no funcionales a la capa de infraestructura
  • Simplifique la resolución de problemas con métricas y paneles detallados, tanto en tiempo real como históricos

Arquitectura de puerta de enlace de API y microservicios

En las aplicaciones basadas en microservicios, una puerta de enlace de API actúa como punto de entrada único al sistema. Se sitúa delante de los microservicios y simplifica tanto las implementaciones de los clientes como la aplicación de microservicios al desvincular la complejidad de la aplicación de sus clientes.

En una arquitectura de microservicios, la puerta de enlace de API se encarga del enrutamiento y la composición de las solicitudes, así como de la aplicación de políticas. Gestiona algunas solicitudes simplemente dirigiéndolas al servicio de backend adecuado, mientras que, para otras, invoca varios servicios de backend y agrega los resultados.

Una puerta de enlace de API también puede ofrecer otras funcionalidades para los microservicios, como autenticación, autorización, supervisión, equilibrio de carga y gestión de respuestas, trasladando la implementación de los requisitos no funcionales a la capa de infraestructura y ayudando a los desarrolladores a centrarse en la lógica de negocio principal, lo que agiliza el lanzamiento de aplicaciones.

Obtén más información sobre cómo crear microservicios mediante una puerta de enlace de API en nuestro blog.

Puerta de enlace de API para Kubernetes

Los contenedores son la forma más eficiente de ejecutar microservicios, y Kubernetes es el estándar de facto para desplegar y gestionar aplicaciones y cargas de trabajo en contenedores.

En función de la arquitectura del sistema y de los requisitos de entrega de aplicaciones, se puede implementar una puerta de enlace de API delante del clúster de Kubernetes como equilibrador de carga (a nivel multiclúster), en el perímetro como controlador de Ingress (a nivel de clúster) o dentro de él como malla de servicios (a nivel de servicio).

Para los despliegues de puertas de enlace de API en el perímetro y dentro del clúster de Kubernetes, se recomienda utilizar una herramienta nativa de Kubernetes como puerta de enlace de API. Estas herramientas están estrechamente integradas con la API de Kubernetes, admiten YAML y pueden configurarse mediante la CLI estándar de Kubernetes; algunos ejemplos son NGINX Ingress Controller y NGINX Service Mesh.

Obtenga más información sobre las puertas de enlace de API y Kubernetes en Puerta de enlace de API frente a controlador de Ingress frente a malla de servicios en nuestro blog.

Gateway de API y gateway de entrada o controlador de entrada

Las puertas de enlace de Ingress y los controladores de Ingress son herramientas que implementan el objeto Ingress, que forma parte de la API de Ingress de Kubernetes, para exponer las aplicaciones que se ejecutan en Kubernetes a clientes externos. Gestionan las comunicaciones entre los usuarios y las aplicaciones (conectividad de usuario a servicio o norte-sur). Sin embargo, el objeto Ingress por sí solo tiene capacidades muy limitadas. Por ejemplo, no permite definir las políticas de seguridad asociadas a él. Por ello, muchos proveedores crean definiciones de recursos personalizados (CRD) para ampliar las capacidades de sus controladores de Ingress y satisfacer las necesidades y los requisitos cambiantes de los clientes, incluido el uso del controlador de Ingress como puerta de enlace de API.

Por ejemplo, NGINX Ingress Controller puede utilizarse como una puerta de enlace de API con todas las funciones en el perímetro de un clúster de Kubernetes mediante sus recursos personalizados VirtualServer y VirtualServerRoute, TransportServer y Policy.

Una puerta de enlace de API no es lo mismo que Gateway API

Aunque sus nombres son similares, una puerta de enlace de API no es lo mismo que la API de Gateway de Kubernetes. La API de Gateway de Kubernetes es un proyecto de código abierto gestionado por la comunidad de Kubernetes cuyo objetivo es mejorar y estandarizar las redes de servicios en Kubernetes. La especificación de la API de Gateway surgió a partir de la API de Ingress de Kubernetes para resolver diversos problemas relacionados con el despliegue de recursos de Ingress destinados a exponer aplicaciones de Kubernetes en producción, incluida la posibilidad de definir políticas detalladas para el procesamiento de solicitudes y delegar el control de la configuración entre varios equipos y roles.

Las herramientas basadas en la especificación Gateway API, como NGINX Kubernetes Gateway, pueden utilizarse como gateways de API para casos de uso que incluyen el enrutamiento de solicitudes a microservicios específicos, la implementación de políticas de tráfico y la habilitación de despliegues canary y blue-green.

Vea este breve vídeo en el que Jenn Gile, de NGINX, explica la diferencia entre una puerta de enlace de API y la API Gateway de Kubernetes.

Malla de servicios frente a puerta de enlace de API

Una malla de servicios es una capa de infraestructura que controla las comunicaciones entre los servicios de un clúster de Kubernetes (conectividad de servicio a servicio o este-oeste). La malla de servicios proporciona funcionalidades esenciales para los servicios que se ejecutan en Kubernetes, como el balanceo de carga, la autenticación, la autorización, el control de acceso, el cifrado, la observabilidad y patrones avanzados para gestionar la conectividad (disyuntores, pruebas A/B y despliegues blue-green y canary), a fin de garantizar que la comunicación sea rápida, fiable y segura.

Al desplegarse más cerca de las aplicaciones y los servicios, una malla de servicios puede utilizarse como una puerta de enlace de API distribuida, ligera pero completa, para las comunicaciones entre servicios en Kubernetes.

Obtén más información sobre las mallas de servicios en Cómo elegir una malla de servicios en nuestro blog.

Puerta de enlace de API y gestión de API

Los términos puerta de enlace de API y gestión de API se utilizan a menudo, aunque incorrectamente, para describir la misma funcionalidad.

Una puerta de enlace de API es un punto de entrada del plano de datos para las llamadas a la API que representan solicitudes de clientes dirigidas a aplicaciones y servicios de destino. Normalmente, procesa las solicitudes de acuerdo con políticas definidas, incluidas la autenticación, la autorización, el control de acceso, la descarga de SSL/TLS, el enrutamiento y el equilibrio de carga.

La gestión de API es el proceso de implementar, documentar, operar y supervisar API individuales. Normalmente, se lleva a cabo mediante software del plano de gestión (por ejemplo, un gestor de API) que define y aplica políticas a las puertas de enlace de API y a los portales para desarrolladores.

En función de los requisitos empresariales y funcionales, una puerta de enlace de API puede implementarse como un componente independiente en el plano de datos o como parte de una solución integrada de gestión de API, como F5 NGINX Management Suite API Connectivity Manager.

Consideraciones para elegir una puerta de enlace de API

Hay varios factores clave que deben tenerse en cuenta al definir los requisitos de su puerta de enlace de API:

  • Arquitectura – El lugar donde implemente la puerta de enlace de API puede influir en la elección de las herramientas, al igual que la decisión de utilizar las opciones integradas de su proveedor de servicios en la nube. ¿Necesita la flexibilidad de una puerta de enlace de API independiente de la plataforma y del entorno de ejecución?
  • Rendimiento – El rendimiento es fundamental para los sitios web y las aplicaciones con mucho tráfico. ¿Ofrece tu puerta de enlace de API el alto rendimiento y la baja latencia que necesitas?
  • Escalabilidad – Tu puerta de enlace de API debe poder escalar fácilmente para satisfacer una demanda de tráfico cada vez mayor. ¿Admite tu puerta de enlace de API el escalado vertical (alto rendimiento) y horizontal (alta disponibilidad) para garantizar que tus API sean siempre rápidas y estén disponibles?
  • Seguridad – Las puertas de enlace de API son una parte importante de una arquitectura de confianza cero. ¿Ofrece su puerta de enlace de API control de acceso (AuthN/AuthZ), mTLS y otras funciones de seguridad avanzadas, como un WAF integrado y validación de esquemas OpenAPI para aplicar un modelo de seguridad positiva?
  • Coste – Comprenda el coste total de propiedad (TCO) de la puerta de enlace de API. ¿Cuáles son los costes y las ventajas e inconvenientes de crear y mantener una solución personalizada frente a adquirir una puerta de enlace de API de nivel empresarial?

Cómo puede ayudar NGINX

NGINX ofrece varias opciones para implementar y operar una puerta de enlace de API en función de sus casos de uso y patrones de implementación.
Herramientas nativas de Kubernetes:

  • NGINX Ingress Controller – Gestiona la conectividad de las aplicaciones en el perímetro de un clúster de Kubernetes con funciones de puerta de enlace de API, identidad y observabilidad
  • NGINX Service Mesh – Solución fácil de usar para desarrolladores que ofrece conectividad entre servicios, seguridad, orquestación y observabilidad

Empieza solicitando tu prueba gratuita de 30 días de NGINX Ingress Controller con NGINX App Protect WAF y protección contra ataques DoS, y descarga NGINX Service Mesh, que es siempre gratuito.

Herramientas universales:

  • NGINX Plus como puerta de enlace de API: una puerta de enlace de API ligera y de alto rendimiento que puede implementarse en entornos de nube, locales y perimetrales
  • F5 NGINX Management Suite API Connectivity Manager – Implemente y opere puertas de enlace de API con herramientas fáciles de usar para los desarrolladores destinadas a la gestión, la gobernanza y la seguridad de las API

Para obtener más información sobre cómo usar NGINX Plus como puerta de enlace de API, solicita tu prueba gratuita de 30 días y consulta Implementación de NGINX como puerta de enlace de API en nuestro blog. Para probar NGINX Management Suite, solicita tu prueba gratuita de 30 días.