Ir al contenido principal

Gravitee API Management: Qué es y por qué es imprescindible para tu empresa

Hoy vamos a ver Gravitee API Management, la solución Apache 2.0 con soporte Enterprise para la gestión de APIs de la empresa Gravitee.io. Haremos una breve introducción al mundo de la gestión de APIs y se explicará cómo la solución Gravitee se adapta funcionalmente a las diferentes necesidades de esta capa de interoperabilidad.

Seguiremos el siguiente índice:

1. API vs API Management vs API Gateway vs API Manager

Una API (Application Programming Interface, Interfaz de Programación de Aplicaciones) es un conjunto de definiciones y protocolos (también conocido como contrato) que se usan para definir el mecanismo de interoperabilidad de una determinada aplicación, clave a la hora de integrar diferentes aplicaciones dentro de una marco de gobernabilidad. Para esta definición se suele utilizar la especificación OpenAPI, haciendo uso de las herramientas proporcionadas por el stack de Swagger para su representación gráfica. 

Architecture Layers

Figura 1. Architecture Layers

La capa de API Management, englobada dentro del grupo de interoperabilidad, nos brinda de aquellas funcionalidades que nos permiten soportar el ciclo completo de vida de una API, permitiendo de esta forma la gestión y gobernabilidad de las mismas.

El API Gateway, aunque puede trabajar de forma autónoma, suele encontrarse como componente de la capa de API Management. El API Gateway es el encargado del runtime de ejecución de las APIs, haciendo de proxy entre los consumidores y los servicios expuestos dentro de la definición de la API.

Por último, el concepto de API Manager hace referencia a un producto, encargado de dotar de las funcionalidades concretas de API Management a una arquitectura concreta. En el caso de este artículo haremos referencia al producto Gravitee API Management.

API especificación de una interface
API Management gestión y gobernabilidad de una API
API Manager producto encargado de dotar de capacidades de API Management a una arquitectura
API Gateway runtime final de ejecución de las APIs

2. API Management & API First approach

API First approach

Figura 2. API First Development

2.1 Funcionalidades principales del API Management

Dependiente del API Manager (producto) seleccionado, la capa de API Management nos puede ofrecer las siguientes funcionalidades:

2.1.1 API SECURITY

Dentro de las capacidades de Seguridad dentro de la capa de API Management podemos encontrar:

  • Autenticación y autorización de las diferentes APIs y recursos expuestos, mediante el uso de procedimientos como API-KEY, JWT y/o OAuth2, entre otros.
  • Asegurar un consumo responsable de las APIs  en función de los diferentes tipos de consumidores, aplicando las diferentes políticas de acceso o limitando el número de peticiones que un consumidor es capaz de realizar al sistema en los diferentes slots de tiempo. 

2.1.2 API GOVERNANCE

Dentro de las capacidades de Gobernabilidad dentro de la capa de API Management podemos encontrar:

  • Catálogo de las diferentes APIs expuestas en los diferentes Gateway’s, acceso a su documentación y especificaciones.
  • Gestión del ciclo de vida de las APIs, así como su despliegue automatizado haciendo uso de herramientas de integración continua (CI) y despliegue continuo (CD).
  • Acceso a la documentación y especificación de una API, tanto desde la perspectiva del API Owner (publicador) como desde la perspectiva del API Consumer (desarrolladores externos). De esta manera, se facilita la absorción de conocimiento por parte de los consumidores, agilizando de esta forma la adopción de las APIs por parte de las aplicaciones consumidoras.

2.1.3 API ANALYTICS

Dentro de las capacidades de Analítica dentro de la capa de API Management podemos encontrar:

  • Cuadros de mando relativos al uso de las diferentes APIs desplegadas.
  • Trazabilidad de las peticiones de entrada y salida que pasan por los diferentes Gateway’s, ayudando de esta manera a los administradores a debuggear el tráfico gestionado por la capa de API Management.
  • Alertas ante determinadas situaciones que se produzcan dentro de la capa de API Management, permitiendo un mantenimiento proactivo de las APIs desplegadas.

2.1.4 API MONETIZATION

Dentro de las capacidades de Monetización dentro de la capa de API Management podemos encontrar:

  • Permitir a las empresas la implantación de una estrategia de monetización para sus diferentes servicios a través de la exposición de los mismos mediante diferentes APIs de gobierno, permitiendo la definición de diferentes planes de acceso con sus correspondientes condiciones monetarias. 

3. Gravitee API Management

3.1 ¿Qué es Gravitee API Management?

Gravitee API Management es una solución Open Source completa para la capa de API Management bajo licencia Apache 2.0, con la característica de disponer de soporte Enterprise por parte del fabricante de forma opcional (Gravitee.io). 

3.2 Componentes de Gravitee API Management

Gravitee API Management se compone de cuatro componentes principales:

Global Architecture de GraviteeFigura 3. Global Architecture de Gravitee

  • APIM Gateway, encargado del runtime de ejecución de las APIs. Es el encargado de asegurar el cumplimiento de las políticas de seguridad así como la gestión de las transformaciones de las peticiones de entrada y salida que pasan por el Gateway (smart proxy).
  • APIM API, encargado de proporcionar un interfaz de comunicación central mediante un API RESTful para todas las labores de administración necesarias por el producto. Es consumido por la consola de administración y por el Portal de Usuario.
  • APIM Console, encargado de la administración del producto y la gestión del ciclo de vida de las APIs desplegadas en los correspondientes Gateways. Interfaz de usuario para los roles de Administración y API Publisher.APIM Portal, encargado de proporcionar a los desarrolladores de aplicaciones que consumen las APIs de un interfaz de operaciones desde, el que podrán, visualizar la documentación de una API, suscribirse y realizar pruebas.

3.2.1 Gravitee API Management: Security

Desde la perspectiva de seguridad, Gravitee API Management nos ofrece las siguientes funcionalidades:

Gravitee Access Management

Figura 4. Gravitee Access Management

  • Políticas de Validación para las peticiones: conjunto de reglas que nos permiten aplicar validaciones a nuestras peticiones, tanto en los encabezados, cuerpo de la petición como en los parámetros de entrada.
  • Transformación de las peticiones: conjunto de reglas que nos permiten modificar las peticiones añadiendo o eliminando diferentes componentes como encabezados o partes del cuerpo de la petición.
  • Validación de JSON: conjunto de reglas que nos permiten validar los esquemas JSON que forman parte del cuerpo de una petición.
  • Filtrado de direcciones IPs: conjunto de reglas que nos permiten asignar mediante una lista negra las direcciones IP autorizadas para el consumo de determinadas APIs.
  • Cuotas: conjunto de reglas que nos permiten definir diferentes planes de consumo, restringiendo el número de llamadas que se pueden realizar en un determinado periodo de tiempo.
  • Estrangulamiento (request throttling): conjunto de reglas que nos permiten restringir el número de peticiones que serán enviadas a nuestros servicios desde la capa de API Management.
  • API-KEY: conjunto de reglas que nos permiten forzar la verificación de un api-key durante el procesamiento de las peticiones, permitiendo solo el acceso a nuestras APIs por aquellos consumidores suscritos a las mismas con un api-key correcto.
  • OAuth2: conjunto de reglas que nos permiten forzar la verificación de un token OAuth2 durante el procesamiento de las peticiones, permitiendo solo el acceso a nuestras APIs por aquellos consumidores suscritos a las mismas con un token correcto. Para ello se requiere de un Resource Owner encargado de generar y validar los tokens de acceso (Keycloak, Gravitee Access Management, …).
  • Validación de JSON Web Tokens (JWT): conjunto de reglas que nos permiten la validación de un token JWT antes de enviar la petición a nuestros servicios. De la misma manera que con OAUTH2, se requiere de un Resource Owner encargado de validar dichos JWTs.

3.2.2 Gravitee API Management: Governance

  • API Designer (Enterprise only): herramienta que permite realizar una definición de nuestra API en tiempo real, desde un paradigma de API-First, permitiendo la validación y documentación de nuestra API de forma automática. 

API Designer

Figura 5. API Designer

  • API Catalog (API Owner perspective): desde la perspectiva del “API Owner”, se dispone de la consola de administración mediante la que podemos listar y gestionar las diferentes APIs desplegadas en Gravitee API Management.

API Catalog

Figura 6. API Catalog (API Owner Perspective)

  • API Catalog (API Consumer perspective): desde la perspectiva del “API Consumer”, se dispone de un Portal mediante el cual podemos acceder al listado de APIs autorizados en nuestro perfil. Desde este portal podemos consultar toda la documentación relativa a la API así como suscribirse a ellas.

API Catalog (API Consumer perspective)

Figura 7. API Catalog (API Consumer perspective)

  • API Documentation: acceso a toda la documentación de nuestras APIs desde un Portal común, facilitando la adopción de las mismas por parte de los diferentes consumidores.

API Documentation

Figura 8. API Documentation

  • Importar un API: Gravitee API Management nos permite importar un API dentro de la plataforma desde una especificación OpenAPI o directamente desde una definición WSDL (SOAP).

Importar un API

Figura 9. Importar un API

  • API Lifecycle: Gravitee API Management nos permite gestionar el ciclo de vida de nuestras APIs, desde la definición y creación de las mismas hasta su publicación y retirada (deprecated). 

Danger Zone

Figura 10. Danger Zone

  • Categorización: Gravitee API Management nos permite la categorización de las diferentes APIs desplegadas en nuestra plataforma, permitiendo a los consumidores mejorar el descubrimiento y visualización de las mismas.

Categorización Figura 11. Categorización

3.2.3 Gravitee API Management: Analytics

Desde la perspectiva de la analítica, Gravitee API Management nos ofrece las siguientes funcionalidades:

  • Métricas: Gravitee API Management, dentro de la consola de administración, dispone de un cuadro de mando de analíticas en tiempo real, permitiendo consultar las diferentes métricas de uso de nuestras APIs, desde una perspectiva global o de forma específica para una API concreta. A su vez, también dispone de la posibilidad de crear cuadros de mando personalizados (User dashboard). Todas estas métricas se persisten e indexan en Elasticsearch, quedando a disposición de los administradores su consulta haciendo uso de herramientas específicas como Kibana.

Métricas

Figura 12. Métricas

  • Cockpit (Enterprise only): Gravitee API Management, para entornos distribuidos, dispone de una herramienta para la gestión del ciclo de vida de nuestras APIs entre los diferentes entornos del cliente, teniendo una visión global de cada una de nuestras APIs y su distribución a través de las diferentes plataformas desplegadas.

Cockpit

Figura 13. Cockpit

  • Gestión de Logs: Gravitee API Management permite la trazabilidad de las peticiones que pasan por los diferentes Gateway’s, siendo capaz de persistir los encabezados y headers de las peticiones y respuesta de los propios servicios, agilizando el proceso de soporte y debug de nuestras APIs. 

Gestión de Logs

Figura 14. Gestión de Logs

  • Trazabilidad: Gravitee API Management permite la configuración y envío de trazas siguiendo la especificación de OpenTracing, permitiendo de esta manera tener una traza completa de de cada una de las peticiones, vinculando los logs de la capa de API Management con los logs de la capa de balanceo y de integración (Load Balancer > API Management > Integration). 

APIM Gateway

Figura 15. API Management Gateway

3.2.4 Gravitee API Management: Monetización

Desde la perspectiva de la monetización, Gravitee API Management nos ofrece las siguientes funcionalidades:

  • Planes: Gravitee API Management, mediante la segmentación de planes de acceso, permite exponer diferentes capacidades de nuestras APIs según los diferentes consumidores, teniendo una trazabilidad completa de consumo en función de los diferentes segmentos.

Figura 16. Planes

  • Documentación: permite documentar los diferentes planes puesto a disposición de los consumidores, permitiendo definir las características del mismo así como sus costes asociados.

Documentation

Figura 17. Documentación

  • Métricas de facturación: permite asignar una política de facturación para una API en concreto, permitiendo su posterior análisis e integración con las plataformas de facturación.

Métricas de Facturación

Figura 18. Métricas de Facturación

  • Analíticas de Facturación:  Gravitee APi Management permite la creación de cuadros mando personalizados mediante los cuales podemos mostrar la información relativa a los planes y su correspondiente facturación, permitiendo una visión completa para dichos departamentos. No obstante, dado que la persistencia de toda esta información reside en Elasticsearch, se pueden utilizar herramientas externas para integrar dicha información en plataformas específicas según cada caso de uso.

Analíticas de facturación

Figura 19. Analíticas de Facturación

4. Chakray y Gravitee.io

Chakray, como Partner Oficial de Gravitee.io, dispone del conocimiento y las herramientas necesarias para abordar cualquier proyecto de API Management, brindando la tranquilidad de contar con un equipo especializado en su despliegue, desarrollo y posterior mantenimiento, así como con el apoyo conjunto con el fabricante para los entornos Enterprise. Estaremos encantados de oír su caso de uso y analizar cuál es la mejor estrategia de APIficación para implementar la capa de API Management en su organización. ¡Contáctanos hoy mismo!