API Manager

«API Manager» es un término que deberíamos manejar en el mundo actual en el que hay un montón de gente hablando de microservicios, en el que parece que aquellas palabras de Bezos amenazando con el despido a quien no publicase sus funcionalidades como servicio parecen tan obvias, en el que hay entornos y equipos tan dispares que es muy difícil mantener la homogeneidad.

Un API Manager es una capa intermedia entre los servicios que proporciones y sus consumidores. Sí, suena abstracto, pero veremos un ejemplo concreto.

API Managers hay muchos, yo he ojeado un poco más a fondo dos y finalmente trabajo con uno. Como ya os imaginaréis los que me conocéis con el que trabajo es con el que proporciona Azure, y será con el que os ejemplifique la utilidad de estas capas. El otro que he mirado un poco más es el de WSO2 que es software libre y te lo puedes instalar on-premise.

La parte buena de estas cosas es que puedes tener un conjunto variado de servicios con distintos interfaces, desarrollados con distintas tecnologías, alojados en distintos servidores con distintos endpoints, con distintos sistemas de validación y autorización, y unificar todo ese conjunto heterogéneo para que se vuelva homogéneo.

La parte mala es que es caro y que para justificar esa inversión tienes que tener un asunto grande entre manos.

Veamos un ejemplo.

API Manager de Azure

API Manager de Azure

El API Manager de Azure tiene distintos precios:

  • Developer: sale a 1.33 € al día (sí, al día). Te permite recibir 32 mil llamadas al día con una transferencia total de hasta 161 MB, aunque sólo hasta 10 cuentas de usuario.
  • Standard: tiene un coste de 19.02 € al día. Permite hasta 7 millones de llamadas al día y 32 Gigas de transferencia por cada unidad (puedes multiplicar precio y cantidades). También te da un SLA del 99.9%.
  • Premium: aumenta el SLA al 99.95%, y permite 32 millones de llamadas y  161 GB de transferencia por cada unidad y día. Permite seleccionar múltiples regiones e incluso habilitar una conexión VPN para conectarte a servicios que estén sólo públicos en la red interna de tu empresa. Ahora bien, su precio por unidad es de 77.50 €/día.

Como os decía es algo difícil de justificar si no le sacas el suficiente partido. También os diré que haciendo una evaluación frente al de WSO2, en el modo Standard el coste es similar dada la infraestructura y el coste del soporte (que es probable que quieras tener si te lo vas a montar todo in house). En el modo Premium no he hecho el ejercicio, pero los costes van a ser altos si quieres conseguir la misma funcionalidad que te da Azure y seguro que perderás mucha velocidad, ya que esto se pone en marcha con un par de clics. ¿Y si empiezas a vender en Sudamérica? ¿o en Asia? pues otro «par de clics» y lo tienes desplegado, no tienes que irte allí a ver quien te puede montar un CPD.

¿Y qué se puede hacer por este precio?

Pues como te decía lo primero es homogeneizar. Añades todas tus APIs, añades su documentación, ejemplos de respuesta, e incluso puedes modificar las llamadas antes de que se reenvíen a tus servidores o alterar las respuestas que llegan de ellos. Esto te permitirá unificar estilos, nombres de parámetros, etc. de tal modo que aunque cada una esté parida por un equipo distinto, todas parezcan parte de la misma solución monolítica. De hecho incluso puedes añadir APIs de terceros que por el motivo que sea quieres paquetizar con el resto de tus APIs, por ejemplo, por si cambias de proveedor en el futuro poder mantener la interfaz que usen tus apps teniendo un único punto común que modificar.

También puedes crear productos. Puedes por ejemplo crear un producto de APIs orientadas al desarrollo de apps moviles. Puedes crear otro producto con APIs para internacionalización y traducción de aplicaciones, o de análisis de lenguaje. Una vez que tienes los productos definidos, puedes tratar a todas las APIs que contengan como una, por ejemplo permitiendo su visibilidad para todo el mundo o sólo para los desarrolladores registrados; o puedes limitar el número de llamadas que se hace a ellos, o simplemente monitorizar su uso de una manera global sin importarte si las llamadas se hacen en concreto a una API u otra.

Al usar un API Manager como el de Azure, puedes dotar de funcionalidades a todas tus APIs a la vez. Por ejemplo las puedes dotar de un sistema de cache (a todas o a las que te interese) con otros dos clics; también puedes controlar su seguridad y que usuarios o grupos tienen acceso; incluso podrías integrar un sistema de facturación común para todas ellas. En el portal que te genera Azure para que gestiones tu API Manager puedes controlar todas estas cosas y otras como ver estadísticas, controlar peticiones de acceso, etc.

Azure no sólo te genera este portal para ti, también genera un portal para desarrolladores en el que los usuarios de tus APIs podrán gestionar sus claves, ver sus estadísticas de uso o reportar errores. Además, en cada método podrán probar a hacer llamadas desde el propio portal (sin que tú hayas tenido que implementar nada), tendrán ejemplos de como realizar llamadas en distintos lenguajes de uso común y podrán ver la documentación que hayas añadido (que probablemente serán unas pocas líneas, ya que todo es autogenerado). Este portal, dado que es tu imagen, es algo que puedes personalizar y no deja de ser un gestor de contenidos. Inicialmente sólo podías retocar textos, colores y alguna cosa más, pero ahora eres dueño y señor de todo el CSS y de gran parte del HTML.

Como veis un API Manager es una herramienta interesante, pero que hay que explotar mucho para sacarle una rentabilidad.

Post By Javi López (27 Posts)

Arquitecto/desarrollador, creativo, buscador de nuevas soluciones y modelos de negocio, crítico constructivo y ex muchas cosas

Website: → JaviLopezG

Connect

No comments yet.

Deja un comentario

Leave your opinion here. Please be nice. Your Email address will be kept private.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
Translate »