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 sobre cómo crear microservicios utilizando una API Gateway en nuestro blog.
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).
Para las implementaciones de API Gateway en el borde y dentro del clúster de Kubernetes, se recomienda utilizar una herramienta nativa de Kubernetes como API Gateway. Estas herramientas están estrechamente integradas con la API de Kubernetes, admiten YAML y se pueden configurar a través de la CLI estándar de Kubernetes; algunos ejemplos incluyen NGINX Ingress Controller y NGINX Service Mesh .
Obtenga más información sobre API Gateways y Kubernetes en API Gateway vs. Controlador de ingreso vs. Service Mesh en nuestro blog.
Las puertas de enlace de ingreso y los controladores de ingreso son herramientas que implementan el objeto de ingreso , una parte de la API de ingreso de Kubernetes, para exponer aplicações que se ejecutan en Kubernetes a clientes externos. Gestionan las comunicaciones entre usuarios y aplicações (conectividad usuario-servicio o norte-sur). Sin embargo, el objeto Ingress por sí mismo es muy limitado en sus capacidades. Por ejemplo, no admite la definición de las políticas de seguridad asociadas al mismo. Como resultado, muchos proveedores crean definiciones de recursos personalizadas (CRD) para ampliar las capacidades de su controlador de Ingress y satisfacer las necesidades y requisitos cambiantes de los clientes, incluido el uso del controlador de Ingress como puerta de enlace de API.
Por ejemplo, NGINX Ingress Controller se puede utilizar como una puerta de enlace de API con todas las funciones en el borde de un clúster de Kubernetes con sus recursos personalizados VirtualServer y VirtualServerRoute , TransportServer y Policy .
Aunque sus nombres son similares, una API Gateway no es lo mismo que la API de Kubernetes Gateway . La API de Kubernetes Gateway es un proyecto de código abierto gestionado por la comunidad de Kubernetes para mejorar y estandarizar las redes de servicios en Kubernetes. La especificación de la API de Gateway evolucionó a partir de la API de Ingress de Kubernetes para resolver diversos desafíos 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 múltiples equipos y roles.
Las herramientas creadas sobre la especificación Gateway API, como NGINX Kubernetes Gateway , se pueden usar 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 canarias y azul-verde.
Mire este video rápido donde Jenn Gile de NGINX explica la diferencia entre una API Gateway y la API de Kubernetes Gateway .
Una malla de servicios es una capa de infraestructura que controla las comunicaciones entre los servicios en un clúster de Kubernetes (conectividad de servicio a servicio o de este a oeste). La malla de servicios proporciona capacidades básicas para los servicios que se ejecutan en Kubernetes, incluidos equilibrio de carga, autenticación, autorización, control de acceso, cifrado, observabilidad y patrones avanzados para gestionar la conectividad (interruptor de circuito, pruebas A/B e implementaciones azul-verde y canario), para garantizar que la comunicación sea rápida, confiable 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.
Obtenga más información sobre la malla de servicios en Cómo elegir una malla de servicios en nuestro blog.
Los términos API gateway y API management se utilizan a menudo (aunque de manera incorrecta) para describir la misma funcionalidad.
Una puerta de enlace API es un punto de entrada al plano de datos para llamadas API que representan solicitudes de clientes a aplicações y servicios de destino. Normalmente, realiza el procesamiento de solicitudes según políticas definidas, que incluyen autenticación, autorización, control de acceso, descarga de SSL/TLS, enrutamiento y equilibrio de carga.
La gestión de API es el proceso de implementar, documentar, operar y monitorear API individuales. Generalmente, esto se logra con un software de nivel de gestión (por ejemplo, un administrador de API) que define y aplica políticas a puertas de enlace de API y portales para desarrolladores.
Dependiendo de los requisitos comerciales y funcionales, una puerta de enlace 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 API según 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 siempre gratis.
Herramientas universales:
Para obtener más información sobre el uso de NGINX Plus como puerta de enlace de API, solicite su prueba gratuita de 30 días y consulte Cómo implementar NGINX como puerta de enlace de API en nuestro blog. Para probar NGINX Management Suite, solicita tu prueba gratuita de 30 días .