Kong es un software a medio camino entre el microgateway y el api manager que nos puede servir para hacer de proxy contra nuestros backends u otros sistemas externos, añadiendo funcionalidades como seguridad, logs, mapeos, límites de accesos a los backends por segundo y otras características.
Kong tiene dos versiones, una versión Enterprise, de pago, con más funcionalidades que la versión Open Source, que es totalmente gratuita, y que es de la que trata esta entrada
Introducción
A diferencia de otros api managers, con topologías e instalaciones muy complejas, Kong es muy fácil de instalar y muy liviano. Los desarrolladores han añadido a Nginx las funcionalidades de Kong usando el módulo de Lua, lo que significa que Kong no es más que un Nginx enriquecido con distintos módulos de Lua. Para la parte del almacenamiento Kong puede usar Postgres o Cassandra. No tiene más piezas que esas. En el vídeo se explica cómo hacer la instalación de kong.
Konga
Kong, no tiene una interfaz gráfica para gestionarlo, sólo tiene una API, sin embargo podemos instalar de forma independiente Konga, un software basado en node que hace de interfaz gráfica contra Kong. En este vídeo te explicamos cómo instalar Kong.
Servicios y rutas
La exposición de endpoints en Kong, es muy sencilla, parte de dos entidades, los servicios, donde configuraremos el host al que apuntamos, conteniendo la otra entidad, las rutas, que serán cada uno de los endpoints expuestos. En este vídeo puedes ver cómo crear un servicio y una ruta.
Plugins log
Una vez expuestos los endpoints usando servicios y rutas, podemos añadir funcionalidad a estos endpoints mediante plugins, por ejemplo podemos añadir un log con la información del payload de las peticiones, cabeceras, tiempos, etc. Puedes ver cómo hacerlo en el vídeo.
Plugins rate
También podemos limitar el número de peticiones que van a nuestros backends en un límite temporal, por ejemplo, podemos decir que no aceptamos más de 5 peticiones por segundo, o más de 400 por minuto. Puedes ver esta configuración en el vídeo.
Plugins transformation
O podríamos también actuar sobre las cabeceras como se ve en este vídeo.
Kong ofrece otros plugins, pero hay muchas operaciones sencillas en otros api managers que son imposibles en kong. Por ejemplo no es posible realizar mapeos complejos. Cuando los plugins de kong no nos permitan realizar las operaciones que necesitamos, siempre podremos desarrollar nuestro propio plugin, para ello tendremos que crear un entorno que incluya el código fuente de kong y desarrollar el plugin en lua, después compilaremos el código y tendremos una versión de Kong que incluirá el plugin desarrollado.
Kong no es tan potente como otros api manager pero puede ser muy útil en casos de uso cubiertos por los plugins de kong o donde no queramos tener una topología en los sistemas muy compleja. Si además aprendemos a desarrollar nuestros plugins podremos cubrir prácticamente cualquier necesidad.
Blog realizado por Isidoro de la Vieja.
// ¿Quieres saber más sobre API Management?
¡Habla con nuestros expertos!
Author