Gobierno de APIs, mejores prácticas

API Economy

Gobierno de APIs, mejores prácticas
15/08/2022

A medida que las API, y un primer enfoque de API, obtienen más reconocimiento en todas las empresas como factores importantes en la transformación digital, estamos viendo una prisa por planificar, diseñar y construir nuevas API a escala. Una gobernanza adecuada de las API es esencial para garantizar que sus API sean:

  • Descubribles: las API son fáciles de encontrar y usar por toda la organización
  • Completas/consistentes: las API son de alta calidad y ofrecen experiencias fiables a los consumidores
  • Reutilizable: las API se pueden reutilizar/actualizar/extender fácilmente
  • Seguro: para que tus datos estén seguros y cumplas con la normativa

De hecho, Forbes está afirmando ahora que “no se puede subestimar la importancia estratégica de la gobernanza de las API”, y que la gobernanza de las API es una parte clave de la ventaja competitiva de una empresa cuando se trata de lo digital.

Pero, ¿qué es exactamente la gobernanza de la API, por qué la necesitas y cuáles son las mejores prácticas probadas para hacerla cumplir?

¿Qué es la gobernanza de las API?

La gobernanza de las API es la práctica de aplicar reglas  comunes relacionadas con las normas de API y las políticas de seguridad a sus API. Estas reglas se aplican a través de comprobaciones y validaciones, por ejemplo, para comprobar la singularidad de la ruta base de la API.

A menudo también implica diseñar sus API basadas en un modelo de datos común de recursos/objetos modelo reutilizables aprobados (esta es una mejor práctica en sí misma a la que volveremos más adelante). Por último, la gobernanza se puede utilizar para garantizar que sus API estén lo suficientemente enriquecidas con metadatos para que sean fácilmente consumidas por un público más amplio, tanto dentro de su empresa (por ejemplo, gerentes de productos) como externamente (por ejemplo, socios).

 

 

El objetivo de la gobernanza de API es garantizar una estandarización adecuada de sus API para que sean completas, conformes y consistentes y, por lo tanto, fácilmente detectables y reutilizables.

¿Quién necesita la gobernanza de las API?

En pocas palabras, la gobernanza de API es importante para cualquier organización que implemente una estrategia API First, donde las API son fundamentales para su transformación en un negocio digital. También es vital para cualquier persona que planee o ya esté implementando un entorno de microservicios distribuidos.

Hay un caso de uso en particular en el que la gobernanza de las API es absolutamente crítica: las grandes empresas. Si eres una gran empresa, es probable que estés escalando a miles de API que encapsulan las capacidades de tu negocio. Hecho de una manera correctamente gobernada, terminas con una cartera de bloques de construcción de negocios que pueden ayudarte a diferenciarte digitalmente, en lugar de un puñado de API públicas bien documentadas en un portal de API.

También hay un aspecto regulatorio/de cumplimiento en la necesidad de gobernanza de API. Un ejemplo son los Estándares de Banca Abierta de la Entidad de Implementación de Banca Abierta (OBIE) en el Reino Unido para los 9 grandes bancos. También estamos viendo una tendencia creciente de informes de gobernanza internos y ad hoc, especialmente para la seguridad de las API y las relaciones proveedor/consumidor.

Gobernanza de API.

Tradicionalmente, la gobernanza de las API tiene una mala reputación y a menudo se ha visto como una ralentización del desarrollo. Esto se debe principalmente a que las API son escritas manualmente por los desarrolladores, a menudo con la gobernanza como una ocurrencia tardía, por lo que la gobernanza siempre ha sido difícil de hacer cumplir, confiando exclusivamente en las guías de estilo de API y los procesos de revisión manual.

Hay algunos puntos débiles adicionales que también pueden hacer que la gobernanza sea desalentadora:

  • Diferentes estilos arquitectónicos de API (piense en SOAP vs REST vs GraphQL vs AsyncAPI, etc.) cada uno con sus propios estándares de codificación recomendados y patrones de diseño para mantenerse al día, y a menudo subconjuntos dentro de eso dependiendo del perfil de la API que desee diseñar
  • Se necesita flexibilidad para las excepciones: es posible que un conjunto de reglas para un caso de uso no sea aplicable a otro
  • Las empresas están ejecutando entornos distribuidos en tiempo de ejecución con API en diferentes etapas del ciclo de vida; de nuevo, las reglas para una etapa del ciclo de vida pueden ser diferentes para otra, además de que se necesitan flujos de trabajo de aprobación
  • Reportabilidad: ¿cómo se muestra fácilmente lo que entra/fuera del cumplimiento de todas estas complejidades?

Afortunadamente, hay un cuerpo de opinión más nuevo, respaldado por excelentes herramientas, que aplica la gobernanza aguas arriba en el ciclo de vida de la API. Además, ¡es de naturaleza automatizada y de autoservicio! Si se implementa de la manera correcta, y siguiendo las mejores prácticas a continuación, la gobernanza de API puede, de hecho, acelerar su desarrollo de API a escala y garantizar que obtenga el mejor valor comercial de sus inversiones. Eso es independientemente del tipo de API que estés diseñando.

Mejores prácticas de gobernanza de API

Tener un conjunto centralizado de reglas de gobernanza de API para toda la empresa.

Esto suena obvio, pero es importante tener un conjunto básico de reglas de gobernanza que se definan a nivel mundial y se adopten en toda la empresa. Con esto nos referimos no solo a adoptar estándares básicos de codificación (por ejemplo, la Especificación OpenAPI), sino también aquellos basados en lo que importa a la empresa, por ejemplo:

  • Garantizar la singularidad de la API
  • Comprobación de campos de metadatos importantes que garanticen la capacidad de descubrimiento y reutilización, por ejemplo, propietario, estado del ciclo de vida, la capacidad que admite la API, clasificación
  • Reglas de control de acceso para quién puede hacer qué con tus API y cuándo

Excepciones notificables para garantizar la flexibilidad y la capacidad de respuesta

Un buen modelo de gobernanza debe aplicarse de forma flexible. Las diferentes líneas de negocio (LoB) o dominios de negocio pueden necesitar sus propios conjuntos de reglas.

La forma en que se aplica y calcula la gobernanza también depende del tipo de API (por ejemplo, un servicio SOAP heredado necesitará reglas diferentes para una nueva API REST de capacidad empresarial). Otros factores para las excepciones incluyen la plataforma de destino descendente, los tipos de tecnología, etc. La capacidad de respuesta es sinónimo de flexibilidad, y los modelos de gobernanza no son diferentes.

Dentro de nuestra base de clientes, hemos visto vías de excepción para la gobernanza de API que incluyen:

  • Necesita una cierta política de seguridad de API basada en LoB o en la clasificación de taxonomía
  • Cuando un diseño de API cumple una determinada condición, se necesita una respuesta de error particular (que se ha definido en el modelo canónico)
  • Según el tipo de método HTTP, se requieren ciertos encabezados y/o códigos de respuesta

Si su modelo de gobierno está ubicado y mantenido en el centro, todos los que los utilizan en su organización tienen una fuente de verdad. También es más fácil garantizar la capacidad de informar y gestionar las excepciones a escala.

Automatizar las comprobaciones de gobernanza y la validación para acelerar una habilitación

La gobernanza del autoservicio significa empoderamiento y habilitación sobre la aplicación de la ley, y ayuda a aumentar la productividad y la velocidad. Busque una plataforma que reemplace las guías de estilo de API y los conjuntos de reglas mantenidos en hojas de cálculo, etc. y revisados manualmente con una oferta que automatice las comprobaciones y la validación de todos sus tipos de API. Aún mejor si las violaciones se pueden abordar fácilmente directamente en la plataforma sin tener que manipular el código.

Gestione sus API como diseños abstractos en un catálogo holístico

Esta práctica recomendada tiene dos partes. La primera es que si sus API se mantienen como diseños abstractos en lugar de código, con los detalles técnicos (por ejemplo, cargas útiles, parámetros y encabezados) en las especificaciones asociadas, la aplicación de reglas de gobierno se vuelve mucho más fácil tanto de hornear como de aplicar durante todo el ciclo de vida (consulte las mejores prácticas posteriores para obtener más información sobre estas).

El segundo es que si se llevan a cabo como parte de un catálogo holístico, con complejidades que vienen con un programa maduro capturado también como:

  • Asignaciones de API, orquestación, transformaciones
  • dependencias y linaje del proveedor/consumidor

… aunque también está bien organizado y clasificado, es mucho más fácil visualizar y racionalizar sus API. Obtienes información y control sobre dónde están, quién los posee, quién los está usando, dónde está el flujo de datos, etc. Obviamente, esto es particularmente útil para el aspecto regulatorio de la gobernanza de las API que discutimos anteriormente.

Utilice un modelo de información para planificar, diseñar y crear tus API

Muchas grandes empresas tienen, o están trabajando para construir, modelos de información (conocidos como modelos canónicos en los días de SOA). Se recomienda planificar, diseñar y construir sus métodos de API a partir de un modelo porque al hacerlo está utilizando objetos y recursos de modelo aprobados que estandarizan la información empresarial en estructuras predeterminadas. Esto ayuda con la gobernanza de las API a gran velocidad, ya que aumenta la estandarización y la reutilización de sus API, al tiempo que evita el lento proceso de que los desarrolladores tienen que definir constantemente estructuras comunes una y otra vez.

Aplicar la gobernanza en todas las etapas del ciclo de vida de la API

Tradicionalmente, la gobernanza de las API ha tenido la tendencia a causar obstáculos en el desarrollo, cuando las cosas se han pasado por alto desde el principio, pero se han convertido en un problema mayor más adelante en el proceso. Si puede asegurarse de que sus reglas de gobernanza de API se apliquen en todas las etapas del ciclo de vida, es decir, a lo largo de Planificar, Diseñar, Construir y Ejecutar, va a evitar estos obstáculos y ayudar a acelerar el desarrollo. También te asegurarás de que todas las salidas estén debidamente estandarizadas y sean fiables.

Implementar un control de versiones de API robusto

Las API a menudo necesitan ampliarse y/o modificarse, o a veces desaprobarse, y, por lo tanto, el control de versiones es crucial para hacer un seguimiento de esto. Es importante aplicar sus reglas de gobierno a TODAS las versiones, para asegurarse de que todas estén estandarizadas y debidamente documentadas.

La gobernanza también puede ayudar a determinar si un cambio es compatible con versiones anteriores o no, por lo que puede ser posible imponer un cambio de versión principal si una versión de la API no es compatible con versiones anteriores y, por lo tanto, evitar la rotura cuando se implementa y utiliza las aplicaciones. Apoyar el control de versiones mayores, menores y de parches es la mejor práctica aquí.

Asegúrese de que se cumplan las reglas de gobernanza de su API antes de que se pueda implementar una API

Implementar API no gobernadas, o API con violaciones de gobernanza, incluso en un entorno aislado, es perjudicial para las grandes empresas; cuesta tiempo y dinero. Desea las reglas de gobernanza de la API de su empresa, así como las normas genéricas de tipo arquitectónico (p. ej. OpenAPI Spec), para ser validado y resolver cualquier infracción mientras todavía estás en tiempo de diseño. Hacerlo garantiza que sus API sean completas, coherentes y conformes, ¡y deleita a sus consumidores internos y externos!

Un ejemplo de esto sería garantizar que todas las violaciones de Swagger “deben” abordarse antes de que una API pueda pasar de los entornos UAT a los de producción.

 

https://www.prodigio.tech/2022/06/28/ventajas-de-la-adopcion-de-openapi/ ‎