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.
Las puertas de enlace de API suelen implementar funciones que incluyen:
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).
La implementación de una puerta de enlace de API para la entrega de aplicaciones puede resultar beneficiosa para lo siguiente:
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).
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).
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.
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.
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.
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.
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.
Hay varios factores clave que deben tenerse en cuenta a la hora de decidir los requisitos de su puerta de enlace de API:
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:
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:
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.