API gateway es una herramienta de API management que actúa como intermediario entre un cliente de API (la aplicación en el dispositivo de un usuario) y los servicios de backend (ubicados en un servidor). API gateway presenta un único punto de entrada para las llamadas a la API.
Una API, o interfaz de programación de aplicaciones, es un conjunto de reglas o protocolos que permiten que las aplicaciones de software se comuniquen entre sí para intercambiar datos, características y funcionalidades. Una solicitud de datos de un cliente a una API se conoce como llamada a la API.
Un API gateway recibe una llamada a la API (a veces llamada solicitud a la API), la enruta a uno o más servicios de backend, recopila los datos solicitados y los entrega al cliente en un único paquete combinado. También proporciona analytics, capas de protección contra amenazas y otraa formas de seguridad para la aplicación.
Por ejemplo, considere la aplicación web de un restaurante. Con una computadora portátil o un teléfono celular, un usuario puede ingresar una solicitud y acceder fácilmente al menú del restaurante, fotos y reseñas, su servicio de pago y un mapa para verificar su ubicación, a pesar de que toda esa información se recopila y entrega desde diferentes microservicios de backend o API. La solicitud enviada a través de la aplicación del usuario es recibida y ejecutada por un API gateway.
Las API gateways se pueden desplegar en la nube, on-premises y en entornos híbridos y son un componente importante tanto de la API management como de la seguridad de API. Las API gateways ayudan a las organizaciones a proporcionar una experiencia de API coherente, segura y satisfactoria para los usuarios.
API management es el proceso escalable de creación, publicación y gestión de API dentro de una empresa. Las API gateway mejoran y agilizan las tareas de gestión, como el enrutamiento de solicitudes, el equilibrio de carga y el manejo de errores. Las API gateways también mejoran la observabilidad de las API al generar registros de llamadas a la API y permitir el uso de herramientas de analytics integradas.
La seguridad de API se refiere a las prácticas y procedimientos que protegen las API del uso indebido, ataques maliciosos y otras amenazas de ciberseguridad. Las API gateway ayudan a aplicar los protocolos de seguridad de API y se pueden emplear para gestionar la autenticación, la autorización y otras licencias y controles de acceso (confirmando claves API o integrando con protocolos de autorización como OAuth, por ejemplo), limitando la velocidad (para proteger contra ataques como ataques de denegación distribuida del servicio) y cifrado según las políticas de seguridad de API de una organización.
Las API gateway proporcionan funciones adicionales para mejorar la eficiencia dentro de una empresa, ayudando a permitir un alto rendimiento y una alta disponibilidad para aplicaciones y servicios backend. Por ejemplo, las API gateways pueden emplearse para el almacenamiento en caché, un proceso en el que los datos más consultados se almacenan localmente. Esto ayuda a mejorar el tiempo de respuesta y reduce la carga en los servidores. También pueden comprimir grandes respuestas en archivos más pequeños, reduciendo así el consumo de ancho de banda.
También ofrecen capacidades de limitación de velocidad, que establecen un límite a la frecuencia con la que un cliente puede enviar una solicitud a un servicio en un periodo de tiempo determinado. Esto favorece la estabilidad, evita que los servidores se sobrecarguen y ayuda a garantizar que los clientes tengan el mismo acceso a las API.
Las API gateways y sus capacidades ayudan a las organizaciones a equilibrar el tráfico de API y las cargas de trabajo a medida que la organización escala. Al centralizar estas funciones, las API gateways ayudan a optimizar la forma en que una empresa desarrolla, despliega y administra las API. Las gateways ayudan a mejorar el rendimiento, la escalabilidad y la disponibilidad de aplicaciones y servicios, y permiten que los desarrolladores se centren más en la lógica de la actividad principal que en la administración de API.
Las API permiten que las aplicaciones se comuniquen entre sí y compartan datos tanto dentro como fuera del entorno de TI de una organización. Las empresas modernas pueden tener miles de API y una gateway proporciona un punto focal central (una “puerta de entrada”) y una interfaz estandarizada que ayuda a administrar y enrutar las llamadas a la API desde una ubicación. Una organización puede optar por usar múltiples puertas de enlace, como muchas lo hacen, para permitir que diferentes protocolos y estándares de seguridad se apliquen a diferentes API o usuarios, pero se aplican los mismos principios.
Una API gateway recibe todas las llamadas dirigidas a los endpoints de API de una empresa, autentica las llamadas, las procesa en función de las políticas de la organización, las enruta a los servicios adecuados y, finalmente, agrega y devuelve los resultados al cliente de API que realizó la llamada. Incluso si se solicitan múltiples servicios y se accede a ellos a través de la llamada a la API, el cliente solo recibe una respuesta con todos los datos.
Una API gateway proporciona orquestación del flujo de trabajo, ya que agrega la información solicitada de múltiples microservicios, agrupa los datos y los devuelve al solicitante en forma compuesta.
Una API gateway maneja la traducción de datos y protocolos en los casos en que el dispositivo del cliente y los microservicios utilizan diferentes idiomas, formatos (por ejemplo, la solicitud viene usando JavaScript o JSON pero el microservicio usa XML) o protocolos (como solicitudes HTTP en contraste solicitudes gRPC).
Para la información comúnmente solicitada, las API gateways pueden usar el almacenamiento en caché a fin de acelerar el tiempo de respuesta de la solicitud. Estos datos se almacenan en una caché separada para que la gateway pueda devolverlos rápidamente sin necesidad de enrutar el tráfico a un servicio adicional.
Las puertas de enlace de API pueden monitorear y registrar solicitudes, respuestas y errores de API. Estos datos de analytics se pueden emplear para comprender mejor el tráfico y el rendimiento de las API, mejorar la resolución de problemas y fortalecer la seguridad.
Las API son cruciales para el flujo de datos en los sistemas modernos y las API gateways ayudan a proteger las API y las aplicaciones, ayudan a las organizaciones a recopilar datos valiosos y ayudan a garantizar el rendimiento de las API.
Las API gateways pueden hacer que los procesos sean más eficientes. Es posible que todas las API de una organización deban completar algunas tareas comunes junto con su función específica cada vez que se realiza una llamada a esa API. En un ecosistema que prioriza las API, donde las API son los componentes básicos sobre los que se construye el software, esto es especialmente común.
Por ejemplo, para cumplir con los protocolos de seguridad de API, es posible que cada llamada a la API deba pasar por un proceso de autorización y validación. O bien, para ayudar a garantizar un ancho de banda adecuado, es posible que sea necesario monitorear las tasas de uso y el tráfico de cada API. Si las API se monetizan, es posible que cada llamada deba enrutarse a un servicio de facturación. Una API gateway puede manejar todas estas tareas.
Algunas llamadas a la API requieren recursos de varios microservicios diferentes; una API gateway desglosa dichas llamadas, enruta las solicitudes a los servicios de backend apropiados y agrega los recursos solicitados en una respuesta para el cliente. Esto evita que el cliente tenga que enviar una llamada API separada a cada microservicio, lo que agiliza el proceso y reduce la carga de llamadas. Las llamadas siempre van al mismo lugar y la gateway organiza la recuperación y la devolución de recursos.
Esta capacidad es particularmente beneficiosa en un entorno DevOps, donde las arquitecturas de microservicios a menudo se emplean para ayudar a los equipos a acelerar el desarrollo y entregar continuamente nuevas aplicaciones y servicios. Los microservicios dependen de las API para comunicarse y se pueden emplear pasarelas para orquestar esta comunicación. Una API gateway también puede ayudar a garantizar que cada llamada se dirija al lugar correcto cuando hay varias versiones de una aplicación en el mismo servidor.
Las API Gateway también se emplean en modelos informáticos sin servidor y otros enfoques de desarrollo nativos de la nube. En un modelo sin servidor, la infraestructura y otros servicios de backend se ejecutan bajo demanda y se activan mediante API. Se pueden emplear puertas de enlace para gestionar esta función.
Los entornos de TI modernos tienen que ver con la integración, cuyo éxito depende en gran medida de las API. Cuanto más complejo sea un entorno de API y mayor sea el tráfico que reciben las API, más valor puede proporcionar una API gateway.
Una arquitectura de microservicios es un enfoque de desarrollo de software en el que las aplicaciones se componen de partes más pequeñas que funcionan de forma independiente. Estas funciones distintas se pueden desplegar de forma autónoma y comunicar a través de API. Están diseñados para cumplir un objetivo singular, con la intención de agruparse como componentes básicos de programas más grandes.
El enrutamiento de llamadas de clientes API a estos microservicios individuales es posible, pero no es muy eficiente y requeriría una llamada separada para cada recurso. Un API gateway permite a una organización devolver los recursos solicitados con una sola llamada a la API.
Funciona así: la puerta de enlace recibe la llamada a la API que requiere comunicación con varios microservicios. Divide la solicitud, enruta cada segmento a los recursos apropiados y agrega los recursos en una única respuesta para el cliente de la API. A medida que una organización aumenta la cantidad de API y microservicios empleados en las funciones comerciales, una API gateway ayuda a reducir el volumen de llamadas y la complejidad del enrutamiento de llamadas al actuar como un punto de entrada único estandarizado.
Imaginemos que un cliente quiere extraer información de productos de una tienda de comercio electrónico creada con una arquitectura de microservicios. Los detalles del producto que el cliente quiere obtener se distribuyen en múltiples servicios diferentes: un servicio para información básica del producto, un servicio para precios, un servicio para inventario, etc.
La API gateway recibe la solicitud de información del producto, la enruta para extraer datos de cada servicio necesario para cumplir con la solicitud y luego compila esos datos y los envía al cliente como una respuesta completa.
Kubernetes se considera el estándar de la industria para desplegar y gestionar microservicios en contenedores. Las API Gateways pueden interactuar con un clúster de Kubernetes en contenedores de varias maneras.
Cuando se despliega frente a más de un clúster de Kubernetes, una API gateway puede servir como equilibrador de carga, dirigiendo el tráfico al clúster correcto para que ninguna instancia se sobrecargue. Cuando se despliega en el borde de un clúster de Kubernetes singular, una API gateway puede actuar como un controlador de entrada. Los controladores de entrada dirigen el tráfico a un clúster de Kubernetes, a los servicios solicitados, y luego vuelven a salir. Cuando se despliega dentro de un clúster de Kubernetes, una API gateway puede actuar como una malla de servicios. Una malla de servicios maneja el tráfico que fluye entre los Kubernetes services, ofreciendo equilibrio de carga y descubrimiento de servicios, y se usa comúnmente para el cifrado de extremo a extremo.
Más allá de permitir a las organizaciones enrutar y equilibrar el tráfico de API de manera más eficaz, las API gateways fortalecen la gestión de API ayudando a crear:
Las API Gateway pueden ayudar a optimizar el enrutamiento del tráfico y el equilibrio de carga entre los servicios de backend mediante la gestión de las llamadas a la API a través de un punto de entrada centralizado. Estas medidas ayudan a mantener una baja latencia. Las API gateways emplean diversos de métodos para la gestión del tráfico de API que emplean el ancho de banda de manera más eficiente y mejoran la experiencia del usuario.
Uno de esos métodos es la limitación de velocidad. Las políticas de limitación de velocidad especifican el número de solicitudes (una cuota de solicitudes) que un cliente específico puede realizar a una API durante un periodo de tiempo específico. Esto ayuda a garantizar que los usuarios tengan igual acceso a las API y protege los servicios de backend para que no se sobrecarguen con solicitudes.
La limitación de solicitudes es un tipo de limitación que regula la tasa de solicitudes que llegan a un servidor. Esto evita picos y ayuda a las organizaciones a mantener el rendimiento y la estabilidad.
Las API gateways también pueden realizar un equilibrio de carga dinámico mediante el monitoreo continuo del tráfico a los servicios de backend. Una API gateway puede determinar el estado de un servidor en función de métricas en tiempo real y ajustar la forma en que enruta las llamadas a los servicios de backend.
Las API son vulnerables a ataques a la ciberseguridad, como los ataques de denegación distribuida del servicio (DDoS). Los ataques DDoS sobrecargan los servidores con solicitudes y tráfico malicioso, provocando que se bloqueen. Un API Gateway admite la limitación de velocidad y otras técnicas para ayudar a frustrar los ataques de denegación distribuida del servicio (DDoS).
Las API gateways también pueden ayudar a proteger las API al monitorear su uso y proporcionar registros de tráfico. Algunas API gateways también proporcionan informes y analytics sobre las solicitudes que se realizan a cualquier API en la infraestructura de una organización, lo que permite a la organización identificar el tráfico sospechoso antes de que ocurra un ataque.
Las API gateway no solo ayudan en la gestión del tráfico y proporcionan una conexión segura a las API, sino que también se pueden configurar para proporcionar autenticación de API y solicitar autorización, lo que reduce la vulnerabilidad de las API de una organización. Por ejemplo, las API gateways se emplean para verificar las claves API cuando se reciben llamadas de un cliente antes de otorgar acceso a los recursos. Para una mayor seguridad, las API gateways se pueden emplear junto con herramientas como cortafuegos de aplicaciones web (WAF), que monitorean, filtran y bloquean el tráfico HTTP malicioso.
Las API gateways centralizan el flujo de llamadas a la API, lo que mejora la visibilidad y la capacidad de detección del servicio. También proporcionan formas para que las API que emplean diferentes protocolos y formatos de datos se comuniquen entre sí.
Muchas API web utilizan un estilo arquitectónico llamado REST (transferencia de estado representacional, utilizado en API REST), aunque también se utilizan otros protocolos, como SOAP (protocolo simple de acceso a objetos) y WebSocket API. Ya sea dentro de una organización, o en llamadas externas dirigidas a las API internas de una organización, es común tener API con varios protocolos y formatos de datos que necesitan comunicarse entre sí y solicitar recursos de los mismos servicios de backend.
Convertir manualmente cada solicitud llevaría una cantidad de tiempo astronómica. Las API gateways ayudan a eliminar este problema al realizar la traducción de datos y protocolos, traduciendo automáticamente las solicitudes y respuestas al formato necesario.
Las API gateways también facilitan a los desarrolladores a iterar y desplegar las API, ya que las API gateways pueden administrar varias versiones de una API al mismo tiempo. Luego, los desarrolladores pueden probar varias versiones de una API entre sí antes del despliegue o mantener una instancia de una versión de API anterior para casos de uso específicos.
Si bien las API gateways pueden ayudar a resolver problemas complicados de enrutamiento, agregar una nueva pieza de software de administración a cualquier organización también puede presentar nuevos desafíos. Los desafíos comunes incluyen:
Si bien las API gateways pueden ayudar a organizar la infraestructura de API y reducir la latencia, si reciben más solicitudes de las que están configuradas para gestionar y no tienen suficientes recursos para manejar el tráfico, pueden aumentar la latencia.
Las organizaciones deben cerciorarse de que las API gateways estén aprovisionadas y configuradas para satisfacer el entorno de API y las demandas de tráfico de la empresa. Al aumentar una empresa la cantidad de API y servicios en uso en un momento dado, los recursos deben escalarse y aprovisionarse en consecuencia para evitar que los usuarios experimenten interrupciones en el servicio.
Un único punto de entrada también significa que puede haber un único punto de falla. Centralizar las API tiene una gran cantidad de beneficios, pero la desventaja es que la gateway en sí se convierte en un vector potencial para un ataque o infiltración. Los problemas de gateway pueden tener efectos en todos los aspectos de una compañía que dependen del acceso a las API y los servicios de backend.
Una vez que una organización haya elegido la API gateway que satisfaga sus necesidades específicas y haya creado su entorno de API en torno a esa API gateway, puede ser costoso y llevar mucho tiempo cambiar a otro proveedor.
Además, aunque las puertas de enlace pueden hacer que el uso de API sea más rentable, la puerta también requerirá monitoreo y gestión, lo que cuesta tiempo y dinero. En algunos casos, una organización puede optar por alojar ella misma una puerta de enlace de código abierto, en lugar de emplear un servicio gestionado, para tener un control más preciso de sus distintas opciones. Si una organización elige una opción de autoalojamiento, esto se sumará a los gastos generales del equipo de desarrollo.
Implemente una solución completa para modernizar las integraciones en entornos híbridos, lo que permitirá a su equipo acelerar el despliegue de aplicaciones al tiempo que reduce los costos y la complejidad.
Optimice su transformación digital con las soluciones de nube híbrida de IBM, creadas para optimizar la escalabilidad, la modernización y la integración perfecta en toda su infraestructura de TI.
IBM Cloud Infrastructure Center es una plataforma de software compatible con OpenStack para gestionar la infraestructura de nubes privadas en IBM zSystems e IBM LinuxONE.