Resumen
Una puerta de enlace de API es una herramienta de gestión de las API que se encuentra entre el cliente y un conjunto de servicios de backend. En este caso, el cliente es la aplicación en el dispositivo de un usuario, y los servicios de backend son los que están en los servidores de una empresa.Una API o interfaz de programación de aplicaciones es un conjunto de definiciones y protocolos que se usa para diseñar e integrar el software de las aplicaciones.
Es un elemento de la distribución de aplicaciones (la combinación de servicios que ponen una aplicación a disposición de los usuarios) y funciona como un proxy inverso que acepta todas las llamadas a la interfaz de programación de la aplicación, agrega los servicios necesarios para cumplir con las solicitudes y devuelve el resultado que corresponde. En resumen, se trata de un software que intercepta las llamadas a la API de un usuario y las dirige al servicio de backend adecuado.
Motivos para utilizar una puerta de enlace de API
La mayoría de las API empresariales se implementan a través de puertas de enlace. Por lo general, estas últimas se encargan de las tareas habituales que se utilizan en los sistemas de servicios de API, como la autenticación de los usuarios, la limitación de la frecuencia y las estadísticas.
La función principal del servicio de API es aceptar una solicitud remota y enviar una respuesta. Sin embargo, en realidad nunca es tan sencillo. A la hora de alojar API a gran escala, debe tener en cuenta varios aspectos.
- Para evitar el abuso y el uso excesivo de las API, puede utilizar un servicio de autenticación y limitar la frecuencia.
- Si desea comprender la manera en que las personas usan las API, puede agregar herramientas de análisis y supervisión.
- En caso de tener API de pago, necesitará conectarse a un sistema de facturación.
- Si optó por una arquitectura de microservicios, una sola solicitud podría requerir llamadas a docenas de aplicaciones distintas.
- Con el tiempo incorporará algunos servicios de API nuevos y eliminará otros, pero los clientes querrán seguir encontrando todos los servicios en el mismo lugar.
El desafío consiste en ofrecer a los clientes una experiencia sencilla y confiable frente a toda esta complejidad. Una puerta de enlace de API permite separar la interfaz del cliente de su implementación de backend. Cuando un cliente realiza una solicitud, la puerta de enlace de API la divide en varias solicitudes, las distribuye a los lugares correctos, genera una respuesta y realiza un seguimiento de todo el proceso.
La función de una puerta de enlace de API en la gestión de las API
Una puerta de enlace de API es uno de los elementos que componen un sistema de gestión de API. Intercepta todas las solicitudes que ingresan y las envía a través de su sistema de gestión, el cual se encarga de llevar a cabo una serie de funciones esenciales.
Lo que la puerta de enlace de API hace exactamente puede variar de una implementación a otra. Algunas funciones comunes incluyen la autenticación, el enrutamiento, la limitación de la frecuencia, la facturación, la supervisión, el análisis, las políticas, las alertas y la seguridad. A continuación, se presentan algunas ventajas que brindan las puertas de enlace de API:
Latencia baja
Al distribuir las solicitudes que ingresan y delegar las tareas habituales, como la terminación de SSL y el almacenamiento en caché, las puertas de enlace de API mejoran el enrutamiento del tráfico y el equilibrio de la carga entre los servicios de backend para garantizar que el rendimiento y la utilización de los recursos sean óptimos. De este modo, reducen la carga del servidor y el uso del ancho de banda, lo cual, a su vez, disminuye la necesidad de contar con mayor capacidad de los servidores y ancho de banda de la red, y mejora la experiencia del usuario.
Gestión del tráfico
Las puertas de enlace de API regulan y gestionan el tráfico a través de varios mecanismos diseñados para controlar la frecuencia y el volumen de las solicitudes que ingresan, y garantizan un rendimiento y una utilización de recursos óptimos.
- Las políticas de limitación de la frecuencia indican la cantidad máxima de solicitudes que se pueden realizar en un período determinado (por ejemplo, solicitudes por segundo, minuto u hora) para cada cliente o clave de API, lo cual evita la sobrecarga de los servicios de backend.
- Las políticas de regulación de las solicitudes definen las reglas y los límites para controlar el tráfico, como las frecuencias máximas, los límites de velocidad y las cuotas.
- Las políticas de control de concurrencias indican la cantidad máxima de conexiones o solicitudes simultáneas que pueden gestionar los servidores de backend.
- Las políticas de interrupción de circuitos supervisan el estado y la capacidad de respuesta de los servidores de backend. También bloquean o redirigen de forma temporal el tráfico fuera de los servicios que presentan errores o son lentos, para así evitar las fallas en cascada y mantener la estabilidad general del sistema.
- El equilibrio de carga dinámico de las puertas de enlace de API supervisa el estado de los servidores de manera permanente y ajusta el enrutamiento del tráfico en tiempo real para hacer frente a los aumentos de la demanda, acortar los tiempos de respuesta y optimizar el rendimiento.
Uso de la infraestructura de red internacional
Las puertas de enlace de API pueden ajustar los recursos de la infraestructura de forma dinámica en función de los cambios en los patrones de tráfico y las necesidades relacionadas con las cargas de trabajo. De este modo, permiten que las empresas optimicen el uso de los recursos y reduzcan los costos de infraestructura, ya que solo pagan por lo que realmente utilizan.
Rentabilidad
Las puertas de enlace de API cumplen una función esencial a la hora de gestionar la rentabilidad de la distribución de las aplicaciones y la integración de las API, ya que proporcionan una plataforma concentrada para controlar el tráfico, aplicar políticas de seguridad, implementar reglas de gestión del tráfico y facilitar la integración a los servicios de backend. Además, permiten el consumo de servicios escalonado a fin de mantener la rentabilidad. Los distintos tipos de API pueden afectar la rentabilidad de una aplicación de varias maneras.
- Flexibilidad: las API de HTTP, que son más generales y pueden utilizar cualquier método HTTP, ofrecen sencillez y flexibilidad en la fase de desarrollo, lo cual puede reducir los costos. Por el contrario, las API de REST, que se rigen por principios y convenciones de arquitectura específicos, pueden requerir mayores esfuerzos y conocimientos especializados a la hora de diseñarlas e implementarlas de manera adecuada y, por tanto, aumentar los costos de desarrollo.
- Infraestructura: debido a su flexibilidad, las API de HTTP pueden implicar costos de infraestructura más bajos. Por su parte, las API de REST pueden necesitar elementos o servicios de infraestructura adicionales para respaldar estas funciones, lo cual puede aumentar los costos.
- Capacidad de ajuste: las API de HTTP pueden agregar más servidores o instancias para ajustar su capacidad, y ofrecen opciones más rentables, sobre todo en entornos de nube que cuentan con funciones de ajuste automático. En cambio, las API de REST tienen requisitos de ajuste más complejos. Esto se debe a que poseen un sistema sin estado, al almacenamiento en caché y a otros aspectos relacionados con la arquitectura distribuida, por lo que puede que necesiten recursos o servicios de infraestructura adicionales para lograr capacidad de ajuste y, en consecuencia, aumenten los costos.
Funcionamiento de las puertas de enlace de API con Kubernetes
Dado que una solución con tecnología de Kubernetes, como Red Hat OpenShift, es la manera más eficiente de organizar y coordinar las aplicaciones en contenedores, una puerta de enlace de API puede ser un elemento fundamental para gestionar el tráfico y dirigirlo a los servicios en un clúster de Kubernetes. Para ello, realiza las siguientes tareas:
- Funciona como un controlador de acceso para interceptar el tráfico de HTTP que entra al clúster y dirigirlo a los servicios adecuados en función de reglas y configuraciones definidas.
- Aprovecha la función de detección de servicios basada en DNS de Kubernetes para identificar y dirigir el tráfico a los servicios de backend sin necesidad de realizar una configuración manual. Esto permite una integración perfecta a los servicios de Kubernetes y facilita el ajuste dinámico de la capacidad, la detección de servicios y la gestión de la tolerancia a fallos dentro del clúster.
- Aplica políticas avanzadas de gestión del tráfico para controlar su flujo hacia los servicios que se implementan en Kubernetes.
- Aplica políticas de seguridad, como la autenticación, los controles de acceso, la autorización y el cifrado, para proteger los servicios que se implementan en Kubernetes de las amenazas cibernéticas y los accesos no autorizados.
- Permite supervisar y determinar el estado interno de los sistemas al generar una mayor visibilidad de los patrones de tráfico, los indicadores de rendimiento y la frecuencia de los errores de los servicios que se implementan en Kubernetes, como el registro de solicitudes, la recopilación de indicadores y el rastreo de entornos distribuidos.
- Se integra a las mallas de servicios, como Istio y Linkerd, para ampliar sus funciones y ofrecer otras adicionales, como el acceso externo, la seguridad en el extremo de la red y la gestión del tráfico internacional, lo cual garantiza una interoperabilidad perfecta entre los servicios de Kubernetes y los clientes externos.
Compatibilidad de las puertas de enlace de API con DevOps y los entornos sin servidor
En las empresas que adoptan un enfoque de DevOps, los desarrolladores usan los microservicios para diseñar e implementar aplicaciones de forma rápida y constante. Las API son una de las formas más comunes en que se comunican los microservicios.
Además, el desarrollo moderno en la nube, que incluye el modelo sin servidor, depende de las API para la preparación de la infraestructura. Puede implementar funciones sin servidor y gestionarlas utilizando una puerta de enlace de API.
En general, a medida que la integración y la interconectividad se vuelven más importantes, también lo hacen estas interfaces. Asimismo, conforme aumenta su complejidad y su uso, las puertas de enlace de API se tornan más valiosas.
Gestión de las API con las soluciones de Red Hat
Red Hat ofrece soluciones de gestión de las API modulares, ligeras e integrales que utilizan exclusivamente la tecnología de open source y estándares abiertos, y que están disponibles en entornos híbridos, de nube o en las instalaciones. Debido al compromiso de Red Hat con este tipo de tecnologías y a nuestro exclusivo modelo de desarrollo, nuestra cartera de productos se somete a pruebas exhaustivas por parte de una comunidad diversa, lo que incluye ingenieros, clientes, proveedores independientes de hardware y software, y partners de Red Hat. Disponemos de dos soluciones de gestión de las API:
- Red Hat OpenShift API Management es un servicio alojado y gestionado de administración de las API que se distribuye como producto complementario de Red Hat OpenShift Dedicated, un servicio de la plataforma de Kubernetes empresarial Red Hat OpenShift completamente gestionado para sus aplicaciones.
- La plataforma de gestión de las API Red Hat® 3scale API Management le ofrece la posibilidad de compartir, proteger, distribuir, controlar y rentabilizar sus API con facilidad. Su diseño es compatible con la arquitectura híbrida y permite expandirla, ya sea en las instalaciones, en la nube o en una combinación de ambos entornos.