Siete cosas que deberías saber sobre el buen gobierno de una API

Siete cosas que deberías saber sobre el buen gobierno de una API

Cada vez más y más en los departamentos de sistemas, y no sólo en los de desarrollo, hay una preocupación generalizada y casi obsesiva de “apificar” gran parte de los servicios que prestan a terceros, ya sea a clientes, socios o empresas colaboradoras.

En realidad esta tendencia hace que muchos de los implicados en el proceso, se preocupen por mantener a salvo de ojos curiosos y manos despistadas, la información que publican a través de las APIs y los sistemas que son accesibles desde los mismos.

¿Cuáles son las buenas prácticas a tener en cuenta para gestionar una API?

Hace días me preguntaba, cuáles serían las principales indicadores a tener en cuenta para una correcta gestión de una API.

A parte de la visibilidad de los proyectos en los que me encuentro involucrado en diferente y múltiples tipos de clientes, es cierto que cada vez más muchas compañías ya sea de base tecnológica o no, están viendo en las APIs una oportunidad de automatizar sus negocios, ofrecer mejores servicios e información a sus clientes, o inclusive construir desde las APIs las funcionalidades que luego serán explotadas por una aplicación o la interfaz gráfica de su servicio.

Pero, ¿cuál es el estado del arte de las APIs en 2019?

Como en casi cualquier campo, hoy en día hay algún estudio o informe que te sirva para contrastar el estado actual y adopción de una determinada tecnología, sólo hay que saber buscar y encontrar algún fabricante que este liderando la adopción del uso de dicha tecnología en cuestión.

En concreto y para el tema que nos concierte, como se usan las APIs hoy en día. Hace unas semanas encontré un informe elaborado por Smartbear, donde en base a una encuesta realizada a un resumen detallado de todos los aspectos que has de tener en cuenta a la hora de gestionar y gobernar una API.

Siete cuestiones a tener en cuenta en el ciclo de vida de tu API

Las organizaciones están desarrollando APIs tanto internas como públicas

Todos hemos oído hablar en los últimos años de la economía de las APIs y como estos interfaces de programación iban a ser los responsables de la gestión y gobiernos de internet, el foco de este mercado está casi y exclusivamente orientado al consumo y desarrollo de APIs públicas. Sin embargo, lo más sorprendente es que el estudio de Smartbear destaca que sólo un pequeño porcentaje de organizaciones están desarrollando APIs públicas solamente.

El 76% de las organizaciones están desarrollando tanto APIs internas y de cara al público, el 21% están desarrollando APIs para uso interno solamente, y sólo el 3% de los encuestados están desarrollando sólo APIs públicas.

Si nos fijamos en la distribución de las respuestas realizadas, los tres factores principales para implementar una API, de acuerdo a la mayoría de encuestados son:

  • facilitar el trabajo entre los sistemas internos, herramientas y equipos
  • reducir tiempo de desarrollo
  • ampliar la funcionalidad en un producto o servicio

La sencillez como premisa de trabajo

Como ya dijo el gran Albert Einstein, «Si tu intención es describir la verdad hazlo con sencillez, y la elegancia déjasela al sastre», y en este sentido coincido cien por cien con el señor Einstein, aquí la cuestión es que para llegar a hacer que algo sea simple has de tener primero el conocimiento y experiencia suficiente para evitar añadir artefactos a la esencia de las cosas.

Y así en esta forma y aplicado a la creación de interfaces de programación, creo que el problema radica en esta misma premisa, la madurez del estado del arte y experiencia alrededor de este tipo de proyectos. Según las respuestas de la encuesta los equipos de producto que desarrollan las API están usando un promedio de cinco diferentes herramientas para desarrollar APIs de alta calidad.

Las herramientas utilizadas en el ciclo de vida del desarrollo de una API han aumentado en número con respecto a la edición anterior, y entre ellas se incluyen:

  • Documentación de API
  • Realización de pruebas funcionales
  • Herramientas para CI/CD
  • Control de fuente
  • Pruebas unitarias
Herramientas para el ciclo de vida de una API

La creciente complejidad del ecosistema ha llevado a los compradores de este tipo de productos a un mayor enfoque en la usabilidad y facilidad de implementación. Antes que el precio o las características de las diferentes herramientas, los equipos priman la sencillez en la implementación y adopción por parte de sus equipos. Estas herramientas deben encajar a la perfección en los flujos de trabajo existentes y debería apoyar la reutilización de activos. La realidad el mercado hace que las organizaciones ya no pueden permitirse invertir en herramientas que necesiten de un proceso largo de despliegue o requieran gran cantidad de equipos para cambiar sus procesos.

La adopción de la especificación OpenAPI (OEA) sigue aumentando para los nuevas APIs

Hace unos años el proyecto ‘Swagger’ fue donado a la comunidad y renombra do por la Fundación Linux como OpenAPI. en 2015. La evolución y adopción de este estándar de facto ha sido muy rápida en los últimos años, desde un 25% de los encuestados por parte de Smartbear en 2015 hasta un 70% de la última encuesta publicada este mismo año.

Con aproximaciones muy diferentes en cuanto a la estrategia de desarrollo de la API, tal y como se puede ver en la siguiente gráfica extraída del informe.

Principales formatos utilizados para desplegar una API

A mayor inversión en documentación mejor experiencia del desarrollador

La documentación siempre ha sido una parte importante en relación acómo las organizaciones mejoran la usabilidad y aumentan adopción de sus productos. Al mismo tiempo, las organizaciones que dan prioridad a la documentación y proporcionar una experiencia documental excepcional han sido la excepción a la regla, haciendo que aquellos que documentaron bien sus servicios tuvieran una ventaja competitiva frente al resto, por el rápido uso y extensión en cuanto al consumo de los mismo por parte de sus clientes.

Parece que una situación similar está surgiendo en el nicho de las APIs. Según recoge la encuesta realizada por Smartbear, mientras que el 67% de los encuestados dicen que sí tienen una documentación formal de la API, sólo el 37% ven la documentación como una prioridad absoluta para su organización.

Según se desprende de la siguiente imagen, la falta de recursos, tiempo y herramientas de soporte al desarrollo son los mayores obstáculos para implementar un proceso de documentación de API exitoso.

Principales obstáculos en la documentación de la API

El desarrollo de un API está en la agenda de casi todas las grandes organizaciones

Las APIs han jugado un papel importante en la evolución de los principales proveedores pertenecientes a la economía de las plataformas, permitiendo una integración sencilla y ordenada con servicios propios y de terceros.

Encontramos que el 91% de los participantes en la encuesta de Smartbear tiene ya en uso, o planea tener, un proceso formal de pruebas que realizaran en el corto plazo. La mitad del total de participantes en la encuesta confirmaron que las pruebas son una de sus prioridades de cara al desarrollo de las APIs en su organización. El enfoque de dichas pruebas es considerado un paso crítico en el ciclo de vida de una API y ha impulsado la adopción generalizada de herramientas, para los test de pruebas y garantizar el rendimiento de la API.

Principales razones para el uso y desarrollo de una API

Monitorizar, la vía de resolver problemas de rendimiento

En teminos generales los ususarios de API tienen grandes expectativas en cuanto a la calidad y el rendimiento esperado de la misma. Donde un 57% de los usuarios esperan que los proveedores de una API resuelvan los problemas asociados al uso de esta en menos de un día y al menos el 40% espera que el problema se resuelva en un plazo menor a 12 horas. Cuando se mira desde el otro lado, los proveedores de API esperan resolver los problemas de rendimiento en las siguientes 24 horas, con el 63% de los proveedores fijando este rango como el estándar de servicio.

Tiempos de respuesta esperado para la resolución de problemas

Según los encuestados, uno de los principales obstáculos para resolver el rendimiento de una API está en determinar la causa raíz del problema (60%), seguido de aislar la API como causa del problema (46%), y la tercera de ellas está en la involucración de la persona correcta para resolverlo (31%).

Principales problemas en la resolución de incidentes entorno a una API

Microservicios como catalizadores de la adopción de APIs

Las nuevas arquitecturas de servicios, basadas en el concepto de cloud native, se apoyan principalmente en una arquitectura de microservicios que permite la entrega continua y el despliegue de grandes y complejas aplicaciones.

Este tipo de proyectos también permite a una organización evolucionar de forma más ágil su base o stack tecnológico, escalar más fácilmente y son más perdurables en el tiempo. Por otro lado ll crecimiento de los microservicios hace esperar un impulso exponencial en el uso  y adopción de las APIs.

Casi tres cuartas partes de los encuestados creen que la adopción de las arquitecturas basadas en microservicios impulsará el mayor crecimiento de la adopción de nuevas APIs. Y para muestra un botón, tal y como se recoge en la encuesta, los micreoservicios lideraran el uso y crecimiento de la economía de las plataformas.

Tecnologías que impulsaran el uso de las APIs

Mientras que en el otro lado de la moneda, la falta de recursos especialidades y tiempo para dedicar a este tipo de proyectos, es el principal lastre a la hora de implementar nuevos servicios basados en contenedores.

Obstáculos a la hora de implementar microservicios

La estandarización como caballo de batalla de los desarrolladores

Según se recoge a lo largo del informe de Smartbear, a medida que las organizaciones expanden las funcionalidades de una API, se hace evidente la necesidad de establecer estándares sobre cómo se desarrollan y mantienen las mismas dentro de una organización. Esto es especialmente crítico con la aparición de nuevos formatos de arquitectura de software, como los microservicios, en los que las organizaciones pueden mantener cientos o incluso miles de API diferentes dentro de su arquitectura de servicios.

Al menos esta fue el principal reto tecnológico que identificaron los encuestados, seguido de la gestión de versiones y la reutilización de componentes, todo el detalle lo podéis encontrar en el siguiente gráfico.

Principales retos en el desarrollo y gestión de una API

Extra bonus

Pero si la curiosidad te pica, a continuación te dejo un pequeño bonus sobre que tecnologías son las más extendidas y utilizadas en este tipo de proyectos, por si estuvieses planteándote empezar a “apificar” algún servicio de tu empresa.

Principales herramientas usadas para la gestión del cambio

Gestión del cambio

Principales plataformas de desarrollo utilizadas

Stack tecnológico para el desarrollo de una API

Programas de integración continua más usados

CI services

Espero que este post te haya resultado útil y lo puedas usar como punto de partida en el próximo reto de “apificación” al que te enfrentes.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *