Pasarela API: Backend para Frontend

Vamos a discutir qué es una pasarela de API, por qué es esencial tener una y cómo puede gestionar mejor las API. Hablaremos de algunas de las mejores pasarelas API de código abierto y gestionadas para mejorar el rendimiento y la seguridad.

KongGateway

KongGateway es la pasarela de API nativa en la nube de código abierto más popular construida sobre un proxy ligero. Está escrita en Lua y se ejecuta con la ayuda de Nginx. Es un motor de plantillas que ayuda a acelerar el tiempo de evento. Kong garantiza un rendimiento de latencia y una escalabilidad sin precedentes para todas nuestras aplicaciones de microservicios, independientemente de dónde se ejecuten.

Empresas como Nasdaq, Honeywell, Cisco, FAB, Expedia, Samsung, Siemens y Yahoo Japón utilizan ampliamente la pasarela API de Kong.

Algunas de las características que ofrece Kong son

  • Autenticación
  • Control del tráfico
  • Analítica
  • Transformaciones
  • Registro
  • Sin servidor
  • Ampliable mediante arquitectura de plugins

Kong tiene una excelente documentación e integración.

Apache APISIX

Apache APISIX nació inicialmente en la tecnológica china ZhiLiu y, en una fase posterior, entró en la incubadora de apache y se convirtió en código abierto. El vicepresidente del proyecto, Ming Wen, afirma que esta pasarela de API resuelve varios retos planteados por la nube nativa y los microservicios.

Apache ApiSix está siendo utilizado por empresas como 360, HelloTalk, NetEase, TravelSky y muchas más.

Apache APISIX se basa en Nginx y etcd, y cuenta con enrutamiento dinámico y carga en caliente de complementos, lo que resulta especialmente adecuado para la gestión de API en el marco del sistema de microservicios.

Tyk

Tyk es una pasarela API de código abierto preparada para la empresa. Tiene la opción de optar por la autoalojada o por la gestionada.

Las siguientes son algunas de las características out-of-the-box que ofrece TYK.

  • Autenticación
  • Cuotas y limitación de tarifas
  • Control de versiones
  • Notificaciones y eventos
  • API simuladas
  • Supervisión y análisis detallados
  • Compatibilidad con versiones anteriores
  • GraphQL listo para usar

TYK también está disponible en el mercado de AWS. Una buena opción si su pila de aplicaciones está en AWS.

Ocelot

Ocelot es una pasarela de API .NET.

Este proyecto tiene como objetivo utilizar .NET, ejecutando microservicios o arquitectura orientada a servicios que necesita un punto unificado de entrada en su sistema. Sin embargo, funcionará con cualquier cosa que hable HTTP y se ejecutará en cualquier plataforma compatible con ASP.NET Core.

Ocelot actúa como middleware en un orden específico. Manipula el objeto HttpRequest en un estado especificado por su configuración hasta que llega a un middleware constructor de peticiones. Éste crea un objeto HttpRequestMessage, que se utiliza para solicitar un servicio posterior. El middleware que realiza la solicitud es lo último en el pipeline de Ocelot. No llama al siguiente middleware. Una pieza de middleware mapea el HttpResponseMessage en el objeto HttpResponse y se devuelve al cliente.

Ocelot ofrece características estándar como enrutamiento, autenticación, limitación de velocidad, almacenamiento en caché, equilibrio de carga, etc. No proporciona soporte para Chunked Encoding, reenvío de una cabecera de host y Swagger.

Goku

Goku API Gateway es un proyecto paraguas de EOLINK Inc. Se trata de una pasarela de microservicios basada en Golang que permite el enrutamiento dinámico de alto rendimiento, la orquestación de servicios, la gestión de multiarrendamiento, el control de acceso a API, etc.

Goku proporciona una interfaz gráfica y un sistema de complementos para facilitar la configuración y ampliarla de forma más cómoda. Aparte de las funciones estándar, Goku ofrece agrupación en clústeres, actualizaciones en caliente, alertas, registro, etc.

Express Gateway

Express Gateway está construido sobre Express.js. Express Gateway es un conjunto de componentes que se construyen de forma declarativa alrededor de Express para satisfacer el caso de uso de API Gateway. La potencia de Express Gateway se aprovecha del rico ecosistema en torno al middleware Express.

express

Empresas como Joyent, The Linux Foundation, VIRICITI, Switch Media, Coozy y Musement utilizan ampliamente Express Gateway.

Es sencillo, rápido y ofrece todas las funciones básicas.

Gloo

Gloo es una pasarela API de nueva generación con todas las funciones y un controlador de entrada para entornos nativos en la nube. Está construido sobre Envoy Proxy para conectar, asegurar y controlar el tráfico a través de los servicios de su aplicación.

Gloo admite la conexión a una amplia gama de cargas de trabajo para asegurarlas y gestionarlas, y es excepcional en su enrutamiento a nivel funcional. Está disponible tanto en versión de código abierto como empresarial. La versión empresarial ofrece lo siguiente

  • Portal para desarrolladores
  • WAF
  • Prevención de pérdida de datos
  • Más formas de autenticación
  • Limitación avanzada de la tasa y gestión multi-clúster

KrakenD

KrakenD es una pasarela API de código abierto de altísimo rendimiento. Su funcionalidad principal es crear una API que actúe como agregador de muchos microservicios en puntos finales únicos, haciendo el trabajo pesado automáticamente por usted: agregación, transformación, filtrado, descodificación, aceleración, autenticación y mucho más.

Ofrece una forma declarativa de crear los puntos finales. Está bien estructurado y estratificado y abierto a la ampliación de su funcionalidad mediante middleware plug-and-play desarrollado por la comunidad o internamente.

KrakenD afirma ser más rápido que Kong y Tyk. Consulte los resultados de las pruebas comparativas.

Fusio

Fusio es un sistema de gestión de API porque ayuda a desarrollar puntos finales de API reales (es decir, solicitar y transformar datos de una base de datos). No se limita a realizar peticiones proxy a otra API. Proporciona un backend sencillo e intuitivo para controlar y gestionar su API.

Algunas de las características que ofrece Fusio son:

  • Monetización
  • Soporte de suscripciones
  • Generación de especificaciones de esquemas OAI, RAML
  • Documentación

y otras características estándar de la pasarela API.

WSO2

WSO2 es una solución de gestión de API de ciclo de vida completo que puede ejecutarse en cualquier lugar. Puede desplegarse on-prem, en la nube o de forma híbrida, donde sus componentes pueden distribuirse y desplegarse en múltiples infraestructuras en la nube y on-prem.

Comprende una pasarela de API nativa de la nube y proporciona un operador de Kubernetes para convertir fácilmente los microservicios en bruto en API gestionadas. API Manager se integra con las mallas de servicios y proporciona un plano de gestión y un plano de control completos para gestionar, supervisar y monetizar las API y los productos API.

Admite la publicación de API, la gestión del ciclo de vida, el desarrollo de aplicaciones, el control de acceso, la limitación de tarifas y el análisis en un sistema limpiamente integrado.

Apigee

Apigee es una plataforma de gestión de API entre nubes de Google Cloud.

apigee

Se presenta en los siguientes sabores

  • Apigee: una solución SaaS alojada en la que usted paga por lo que utiliza. Usted se centra en crear negocio y descarga la gestión del entorno de Apigee a GCP.
  • Apigeehíbrido: le permite gestionar las API in situ, en Google Cloud Platform (GCP) o una mezcla de ambas.

Apigee ofrece gestión de API de extremo a extremo, que viene con monetización y monitorización incorporada.

Google Cloud Endpoints

Otra de Google Cloud.

Endpoints es una versión más ligera de Apigee de Google Cloud. Es la más adecuada para que los desarrolladores desarrollen, desplieguen y gestionen API en cualquier back-end de Google Cloud. Proporciona herramientas y bibliotecas para sus clientes desde la aplicación App Engine.

Google Cloud Endpoints se integra estrechamente con otros productos como Trace y Logging para la monitorización, Auth0 y Firebase para la autenticación, GKE y App Engine para el despliegue automatizado, etc.

Amazon API Gateway

AWS puede ofrecer cualquier cosa que necesite para ejecutar sus aplicaciones.

También lo hace API.

Amazon API Gateway es un servicio totalmente administrado que está hecho para que los desarrolladores formen – > publiquen -> mantengan y aseguren APIs fácilmente a cualquier escala. Es compatible con las API RESTful y WebSocket y nos permite habilitar la comunicación bidireccional en tiempo real.

A continuación se muestra la representación pictórica de Amazon, que ilustra cómo funciona la puerta de enlace API de Amazon.

Si sus microservicios o API ya están alojados en AWS, entonces tiene sentido integrarse con Amazon API Gateway. Ofrecen 1 millón de llamadas API en la capa GRATUITA, lo que es bueno para que vea cómo funciona.

Microsoft Azure

¿Por qué dejar de lado Azure?

Microsoft Azure ofrece una gestión integral de API en la nube, en las instalaciones o híbrida. Puede gestionar la gestión de API de forma programática a través de la API REST y el SDK.

Buenas noticias si utiliza SOAP. Puede importar el lenguaje de descripción de servicios web (WSDL) de su servicio SOAP y Azure creará un front-end SOAP. Ofrecen todas las funciones estándar, incluida la monetización. Anímese y pruébelo para experimentar la plataforma.

MuleSoft

Gestione API y mejore la eficiencia de su negocio con MuleSoft. Le permite crear, asegurar, gestionar y gobernar API universales desde cualquier lugar.

Puede descubrir las API mediante canalizaciones CI/CD junto con la nueva CLI para acelerar la entrega de sus aplicaciones. MuleSoft le permite diseñar API utilizando diferentes protocolos mientras cumple con los estándares de gobernanza y mantiene una alta calidad.

mulesoft-anypoint-platform

Recopile datos de las API para explorar, servir y unificar todos sus datos en una consulta GraphQL. Esto puede hacerse con la ayuda de DataGraph. Con la puerta de enlace flexible de MuleSoft, puede gestionar su servicio sin preocuparse por el tamaño, la nube o el idioma.

MuleSoft ofrece un panel de control donde puede analizar, gestionar y asegurar sus API, microservicios y usuarios. Evolucione los últimos modelos de negocio y flujos de ingresos para maximizar el valor de sus API centrándose en la adopción, las comunidades de API y el viaje de consumo.

Además, MuleSoft proporciona Anypoint Exchange para integrar sus API con una única fuente de verdad para potenciar su negocio. Puede poner en funcionamiento el gobierno de API utilizando el gobierno de API Anypoint sin incluir gastos generales de desarrollo.

Cree una cuenta en MuleSoft y realice una prueba gratuita para explorar sus funcionalidades.

Boomi

No piense en complejidades cuando disponga del servicio de gestión de API de Boomi, que puede ayudar a su empresa a desplegar, gestionar y proteger sus API de forma eficaz.

La gestión de API de Boomi puede gestionar el ciclo de vida completo de las API en cualquier plataforma. Esto le permite configurar sus API e implementar las integraciones fácilmente. Cuenta con una interfaz de usuario inteligente y fácil de usar que pone los datos a disposición de su empresa en todo momento mediante su proxy de API.

boomi-api-management

Publique, controle y gobierne las API ya sea en la nube, en el perímetro o en las instalaciones y gestione y controle eficazmente el acceso a los datos. Boomi le permite crear experiencias omnicanal a través de redes sociales, IoT y móviles. Puede utilizar su portal para desarrolladores de API para acceder fácilmente a los datos desde sus aplicaciones existentes.

Boomi ofrece un sinfín de funciones, como mediación, versionado, compromiso, autenticación, gestión de políticas, supervisión y gestión de aplicaciones. Puede mantener diferentes versiones de API en función de sus necesidades y garantizar las acciones adecuadas para ello. También le permite desplegar API con un sistema de autenticación de terceros.

Gracias a la integración con un sencillo asistente, Boomi AtmoSphere, podrá diseñar y gestionar fácilmente las API.

Realice una prueba de 30 días para comprender Boomi en profundidad y explorar sus características para gestionar APIs.

¿Qué es la pasarela API?

Una pasarela API es un concepto importante en la arquitectura de un microservicio. Constituye un punto de entrada para clientes externos (cualquier cosa que no forme parte del sistema de microservicios). Es un componente que actúa como punto de entrada para una aplicación.

En otras palabras, una pasarela API es un servidor de gestión de API que dispone de información sobre los puntos finales. También es capaz de realizar autenticación, limitación de velocidad, equilibrio de carga y mucho más.

Para hacernos una mejor idea de una pasarela API, necesitamos saber por qué es esencial tener una pasarela API.

Ventajas de una pasarela API

Para comprender la necesidad de una pasarela API, vamos a analizar un caso de uso de una aplicación de comercio electrónico.

Caso práctico

Consideremos un caso práctico de una página compleja (digamos la página de un producto) de una aplicación de comercio electrónico. Si observamos la siguiente página del listado de productos de Amazon, podemos ver que esta página específica necesita renderizar mucha información.

A efectos ilustrativos, vamos a enumerar todos los microservicios que podríamos necesitar para renderizar la página concreta anterior.

Consideremos que Búsqueda de Productos, Inventario, Envíos, Valoraciones y Reseñas, Motor de Recomendación, Comerciantes, y Finanzas y Seguros son los siete(7) microservicios diferentes que se utilizan para renderizar la página de arriba.

P.D: Los siete(7) microservicios anteriores son sólo una suposición para explicar el concepto de pasarela API. En realidad, Amazon podría tener un número diferente de microservicios.

El problema

Dado que estos microservicios se han desplegado por separado en un servidor diferente, si un cliente quiere acceder a estos servicios, se tienen que solicitar al menos siete(7) llamadas para una sola página.

¿Pero es realmente un buen enfoque?

No creo que sea un enfoque recomendable porque tenemos que hacer siete llamadas diferentes, lo que sin duda repercutiría en el rendimiento, el consumo de recursos, el tiempo de carga, etc. El cliente también está estrechamente acoplado con todos los servicios, y supongamos que tenemos que separar los microservicios de Reseñas y Calificación en dos servicios diferentes, tenemos que actualizar el código del cliente. El cliente tiene que hacer una llamada para obtener reseñas y otra para obtener valoraciones, lo que realmente no es la mejor forma de abordarlo.

La solución

Entonces, ¿cuál es el enfoque recomendado?

Se trata de una pasarela API.

En este enfoque, tenemos una capa entre el cliente y los microservicios llamada pasarela API. Es un servicio de cara al público para todos los microservicios. Ahora cualquier cliente que quiera acceder a los microservicios, el cliente tiene que llamar a la pasarela API. Ahora la pasarela API, a su vez, hace una llamada a todos los microservicios y obtiene cualquier respuesta que podamos necesitar. Este proceso se denomina composición de API.

En pocas palabras, una pasarela API se sitúa entre el cliente y los microservicios y actúa como puerta de entrada para todos los microservicios.

No sólo esto, sino que utilizar una pasarela API nos beneficia de muchas maneras.

Ventajas de una pasarela API

Las pasarelas API nos benefician en la implementación de pruebas A/B, almacenamiento en caché, gestión de cuotas de acceso, monitorización de la salud de la API, versionado de la API, pruebas Chaos monkey, monetización y mucho más. Veamos algunos de los siguientes beneficios.

Seguridad 🛡️

Cada vez que se realiza una llamada a la API, ésta tiene que acceder a los servicios utilizando direcciones IP públicas. Esto expone a riesgos.

Al pasar a las pasarelas API, se puede acceder a estos microservicios utilizando únicamente direcciones IP privadas. Esto resulta en una forma más segura de la transacción de datos. Además, el uso de API Gateway también protege los datos de ataques maliciosos y DDoS.

Para garantizar la seguridad, es necesario un certificado TLS, API Gateway se encarga de todos ellos manteniendo todas nuestras API detrás de una única IP estática o dominio y ayudando a protegerlas con claves, tokens y filtrado de IP.

Autenticación, autorización y tolerancia a fallos 🔐

broken authentication

Es importante garantizar la autenticación y autorización del usuario que inicia sesión en las aplicaciones. La pasarela API lo facilita al ser un único punto de entrada y satisfacer todos los requisitos fácilmente. Así, permite que sólo los usuarios autorizados inicien sesión y que los usuarios autenticados realicen cambios, por lo que se gana en tolerancia a fallos.

Equilibrio de carga y enrutamiento 🚏

En el caso de que entren varias solicitudes y aumente el tráfico, API Gateway ayuda a ocuparse de ello. Se hace creando múltiples servicios y llamándolos como Round-Robin. Puede gestionar y encaminar las peticiones de los clientes en función de la segmentación de los usuarios. De este modo, se proporciona una calidad o velocidad de contenido diferente a los distintos usuarios.

load balancing

Consideremos un caso de uso en el que se definen dos microservicios para devolver imágenes/vídeos de baja calidad e imágenes/vídeos de alta calidad para un ordenador de sobremesa y un móvil, respectivamente.

En este caso, podemos configurar una pasarela API de forma que actúe como un enrutador y si la solicitud procede de un móvil, enrute esa solicitud al servicio de imágenes/vídeos de baja calidad, y si la solicitud procede del escritorio, enrute al servicio de imágenes/vídeos de alta calidad. Este enrutamiento puede realizarse basándose en cabeceras, rutas y parámetros, etc.

Aislamiento

Si uno o más microservicios se han añadido a la aplicación o se han eliminado, no actualizaremos el código del cliente. En este caso, necesitamos realizar algunos cambios en la propia pasarela API para realizar una llamada de acuerdo con los microservicios actualizados.

Proxy inverso y almacenamiento en caché

Servir un archivo estático (HTML, JS, CSS, fuentes) por un microservicio no es el mejor uso, En este caso, podemos mover estos archivos a la pasarela API.

Una pasarela API puede guardar todos los contenidos estáticos y servirlos directamente al cliente. Del mismo modo, consideremos un servicio que evalúa las tendencias de los productos, y estas tendencias se calculan cada hora o cada día. Por tanto, una vez calculada la tendencia para el resto del tiempo, el servicio devolverá la misma respuesta repetidamente. En este caso, una pasarela API tiene una función llamada caché de respuesta, en la que podemos mencionar una URL y un umbral de tiempo para el que necesita almacenar en caché las respuestas.

Adaptador de protocolo

Si queremos aprovechar un protocolo como web socket o una versión más reciente de HTTP, es decir, HTTP/2, e incluso si nuestros servicios backend no están preparados o no son compatibles con HTTP/2 o web socket, una pasarela API puede asumir la responsabilidad de convertir un protocolo más reciente en uno más antiguo. Puede actuar como un adaptador de protocolo.

Conclusión

Una vez que su API esté lista, no olvide supervisarla y protegerla.

Lo anterior debería darle una idea sobre las soluciones de gestión y pasarela de API disponibles. Si su presupuesto es ajustado, puede probar con el código abierto. Lo mejor es que instale algunas de ellas para ver qué le funciona.