Puerta de enlace de API

¿Qué es una puerta de enlace de API?

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

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

TEXTO ALTERNATIVO DE LA IMAGEN

Funciones de la puerta de enlace de API

Las puertas de enlace de API suelen implementar funciones que incluyen:

  • 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 solicitud/respuesta, interruptor, implementaciones de tipo «blue-green» y «canary», pruebas A/B, equilibrio de carga, comprobaciones de estado y gestión personalizada de errores
  • Política de observabilidad: métricas en tiempo real e históricas, registro y rastreo

Para aumentar la seguridad de las aplicaciones y las API, las puertas de enlace de API pueden complementarse con cortafuegos de aplicaciones web (WAF) y protección frente a ataques de denegación de servicio (DoS).

Ventajas de la puerta de enlace de API

La implementación de una puerta de enlace de API para la entrega de aplicaciones puede resultar beneficiosa para lo siguiente:

  • Reducir la complejidad y acelerar el lanzamiento de aplicaciones encapsulando la arquitectura interna de la aplicación y proporcionando API adaptadas a cada tipo de cliente
  • Agilizar y simplificar el procesamiento de solicitudes y la aplicación de políticas al centralizar el punto de control y descargar los requisitos no funcionales a la capa de infraestructura
  • Simplificar la solución de problemas con paneles y métricas pormenorizados con datos históricos y en tiempo real

Puerta de enlace de API y arquitectura de microservicios

Para las aplicaciones basadas en microservicios, una puerta de enlace de API funciona como el punto único de entrada al sistema. Se sitúa frente a los microservicios y simplifica tanto las implementaciones de los clientes como la gestión de los microservicios, desacoplando la complejidad de la aplicación de sus clientes.

En una arquitectura de microservicios, la puerta de enlace de API se encarga del enrutamiento de solicitudes, la composición de respuestas y la aplicación de políticas. Algunas solicitudes las gestiona simplemente enrutándolas al servicio back-end adecuado, mientras que otras las maneja invocando varios servicios back-end y agregando los resultados.

Una puerta de enlace de API puede ofrecer otras funcionalidades esenciales para microservicios, como autenticación, autorización, supervisión, equilibrio de carga y gestión de respuestas. Al delegar la implementación de requisitos no funcionales a la capa de infraestructura, permite a los desarrolladores centrarse en la lógica empresarial principal, lo que acelera el lanzamiento de aplicaciones.

Obtenga más información en nuestro blog con el artículo Building Microservices Using an API Gateway (Creación de microservicios mediante una puerta de enlace de API).

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 implementar y gestionar aplicaciones y cargas de trabajo en contenedores.

Dependiendo de la arquitectura del sistema y los requisitos de entrega de aplicaciones, una puerta de enlace de API puede desplegarse frente al clúster de Kubernetes como equilibrador de carga (nivel multiclúster), en su periferia como controlador Ingress (nivel clúster) o en su interior como malla de servicios (nivel servicio).

TEXTO ALTERNATIVO DE LA IMAGEN

En el caso de las implantaciones de puertas de enlace de API en el perímetro y dentro del clúster de Kubernetes, la mejor práctica consiste en 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 a través de 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 API Gateway vs. Ingress Controller vs. Service Mesh (Puerta de enlace de API, controlador Ingress o malla de servicio) en nuestro blog.

Puerta de enlace de API y puerta de enlace Ingress o Ingress Controller

Las puertas de enlace Ingress y los controladores Ingress son herramientas que implementan el objeto Ingress, parte de la API Ingress de Kubernetes, para exponer las aplicaciones que se ejecutan en Kubernetes a clientes externos. Gestionan las comunicaciones entre usuarios y aplicaciones (conectividad usuario-servicio o norte-sur). Sin embargo, el objeto Ingress por sí mismo tiene capacidades limitadas. Por ejemplo, no permite la definición de políticas de seguridad asociadas. Como resultado, muchos proveedores crean definiciones de recursos personalizadas (CRD) para ampliar las funcionalidades de su controlador Ingress y adaptarse a las necesidades y requisitos cambiantes de los clientes, incluyendo el uso del controlador Ingress como puerta de enlace de API.

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

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

Aunque sus nombres en inglés son similares, una puerta de enlace de API no es lo mismo que Kubernetes Gateway API. Kubernetes Gateway API es un proyecto de código abierto gestionado por la comunidad de Kubernetes para mejorar y estandarizar la interconexión de servicios en Kubernetes. La especificación de Gateway API evolucionó a partir de Kubernetes Ingress API para resolver varios retos en torno a la implementación de recursos de Ingress para exponer aplicaciones de Kubernetes en producción, incluida la capacidad de definir políticas detalladas para el procesamiento de solicitudes y delegar el control sobre la configuración en varios equipos y funciones.

Las herramientas creadas a partir de la especificación Gateway API, como NGINX Kubernetes Gateway, pueden utilizarse como puertas de enlace 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 implementaciones de tipo «canary» y «blue-green».

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

Comparación entre malla de servicios y puerta de enlace de API

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

Desplegada más cerca de las aplicaciones y los servicios, una malla de servicios puede actuar como una puerta de enlace de API distribuida, ligera pero completa, para gestionar las comunicaciones de servicio a servicio en Kubernetes.

Más información sobre la malla de servicios en How to Choose a Service Mesh 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 de forma incorrecta, para describir la misma funcionalidad.

Una puerta de enlace de API es un punto de entrada en el plano de datos para las llamadas API que representan solicitudes de clientes a aplicaciones y servicios de destino. Suele realizar el procesamiento de solicitudes basándose en políticas definidas, como autenticación, autorización, control de acceso, descarga SSL/TLS, enrutamiento y equilibrio de carga.

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

En función de los requisitos empresariales y funcionales, una puerta de enlace de API se puede implementar como un componente independiente en el plano de datos o como parte de una solución de gestión de API integrada, 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 a la hora de decidir los requisitos de su puerta de enlace de API:

  • Arquitectura: El lugar de implementación de 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 nube. ¿Requiere la flexibilidad de una puerta de enlace de API independiente en cuanto a plataforma y tiempo de ejecución?
  • Rendimiento: El rendimiento es fundamental para los sitios web y las aplicaciones con mucho tráfico. ¿Su puerta de enlace de API ofrece el alto rendimiento y la baja latencia que necesita?
  • Escalabilidad: Su puerta de enlace de API debe escalarse fácilmente para satisfacer la creciente demanda de tráfico. ¿La puerta de enlace de API admite escalado vertical (alto rendimiento) y horizontal (alta disponibilidad) para garantizar que sus API sean siempre rápidas y estén disponibles?
  • Seguridad: Las puertas de enlace de API son un componente clave en una arquitectura de confianza cero. ¿Su puerta de enlace de API ofrece control de acceso (AuthN/AuthZ), mTLS y otras funciones de seguridad avanzadas, como un WAF integrado y validación de esquemas OpenAPI para garantizar una seguridad proactiva?
  • Coste: Comprenda el coste total de propiedad (TCO) de la puerta de enlace de API. ¿Cuáles son los costes y beneficios de crear y mantener una solución personalizada en comparación con la adquisición de 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 dependiendo 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 de fácil desarrollo para conectividad, seguridad, orquestación y observabilidad de servicio a servicio.

Comience solicitando su prueba gratuita de 30 días de NGINX Ingress Controller con NGINX App Protect WAF y DoS, y descargue NGINX Service Mesh, un producto siempre gratuito.

Herramientas universales:

  • NGINX Plus como puerta de enlace de API: Puerta de enlace de API ligera y de alto rendimiento que se puede implementar en entornos de nube, locales y periféricos.
  • F5 NGINX Management Suite API Connectivity Manager: Implemente y opere puertas de enlace de API con herramientas fáciles de usar para desarrolladores para la gestión, la gobernanza y la seguridad de las API.

Para obtener más información sobre el uso de NGINX Plus como puerta de enlace de API, solicite una prueba gratuita de 30 días y consulte Deploying NGINX as an API Gateway (Implementación de NGINX como puerta de enlace de API) en nuestro blog. Para probar NGINX Management Suite, solicite una prueba gratuita de 30 días.