Gestión COMPLETA del ciclo de vida de las APIs en MuleSoft

Everardo Flores
Another Integration Blog
8 min readApr 24, 2023

Introducción

¿Qué es MuleSoft? Es una compañía de Salesforce que tiene como producto estrella la plataforma de Anypoint (Anypoint Platform) la cual es una completa y poderosa plataforma enfocada en diseñar, desarrollar, administrar y gobernar APIs e Integraciones.

Anypoint Platform es la plataforma de integración de MuleSoft que ha sido posicionada en repetidas ocasiones como plataforma líder a nivel mundial por su excelente gestión del ciclo de vida de las APIs, avalado por la firma de consultoría e investigación tecnológica Gartner.

Pero esta increíble plataforma no solo es líder en ese sector, también ha sido posicionada como líder a nivel mundial por ser de las mejores Plataforma de Integración como Servicio (iPaaS), avalado por la misma institución mencionada anteriormente.

Con estos dos reconocimientos MuleSoft es la única empresa que ofrece la plataforma más completa en el mercado actual, para aprovechar al máximo los beneficios de las APIs.

Red de Aplicaciones (Application Network)

Antes de comenzar a revisar el ciclo de vida de las APIs debe tener en cuenta que con Anypoint Platform usted no solo tendrá la habilidad de diseñar, implementar y administrar APIs. Sino que también le ayudara a promover/implementar la reutilización (de APIs y activos “Assets”), buenas prácticas, habilitar el descubrimiento y el autoservicio (self-service). Este enfoque de autoservicio le ayudara a crear un poderoso entorno para implementar nuevas soluciones en un tiempo considerablemente rápido.

Pero eso no es todo, junto con la metodología MuleSoft Catalyst, API-Led Connectivity, la implementación de DevOps, y lo mencionado en el párrafo anterior usted podrá crear su propia Red de Aplicaciones (Application Network).

La Red de Aplicaciones se trata de una forma de conectar aplicaciones, datos y dispositivos mediante APIs que exponen algunos o todos sus activos y datos en una red. Esta red le permitirá que otras áreas de su organización puedan descubrir y utilizar esos activos. Construir una red de aplicaciones involucra desarrollar activos reutilizables y fomentar su reutilización y el autoservicio en la organización. Es imprescindible permitir que los equipos de desarrollo puedan crear aquello que hace falta (mediante el autoservicio de activos que fueron creados por otras personas en otros proyectos) y, a continuación, ponerlo a disposición del resto de la organización para su reutilización en proyectos o soluciones futuras.

El ciclo de vida de las APIs/Application Building Blocks

Las APIs en la Red de Aplicaciones son bloques de creación de aplicaciones (Application building blocks) ágiles que se pueden ensamblar fácilmente como APIs bien diseñadas y administradas para crear rápidamente lo que se necesita.

Los elementos de estos bloques de creación de aplicaciones (Application building blocks) son:

· La interfaz

· La implementación

· Los aspectos de la administración

Todos estos elementos son de gran importancia por lo que cada uno de ellos cuenta con su propio ciclo de vida. Para un buen seguimiento del ciclo de vida debemos tratar a estos building blocks como productos, puesto que tienen características comunes a las que cualquier producto debe cumplir. Por lo tanto, hace sentido tratar al ciclo de vida de estos building blocks como un enfoque centrado en el producto, el cual se divide en tres etapas principales:

· Diseño

· Implementación

· Administración

Diseño

MuleSoft se apega al enfoque de diseñar primero “design-fist el cual consiste en que los desarrolladores de APIs deben diseñar en primer lugar la interfaz de la API. Esto nos permitirá decidir como se verá y comportará la API antes de iniciar a codificar la lógica de la implementación.

La interfaz de la API también es conocida como especificación o contrato y es muy importante que éste sea de una manera legible y fácil de entender por cualquier persona sin importar su rol.

La etapa de diseño cuenta con cuatro pasos: diseño, simulación, feedback y validación. A continuación se listan las tareas a realizar en cada paso:

Cualquier API bien diseñada tendrá bloques de código que se repetirán entre APIs. Estos pueden ser fácilmente encapsulados en patrones de buenas prácticas tanto a nivel estructural de la API (recursos) como a nivel de métodos. Conforme los desarrolladores de API recorren la etapa de diseño, es importante que ellos puedan descubrir y compartir patrones repetibles.

Para esta etapa de diseño Anypoint Platform provee herramientas que facilitaran el cumplimiento de las tareas en cada paso. A continuación, se ilustran en la imagen:

Por último, es importante mencionar que los pasos en la etapa de diseño se deben iterar las veces que sean necesarias hasta conseguir una especificación de API que cumpla completamente con todos los detalles requeridos por los consumidores.

Implementación

Una vez que se tiene el contrato de la API bien diseñado, es decir; testeado, validado y aprobado por los consumidores, es momento de pasar a la implementación.

La implementación es una pieza fundamental para habilitar una nueva generación de integraciones en las empresas. Puesto que se habilitarán docenas o incluso cientos o miles de APIs para ser conectadas a los sistemas backend y conectarse entre ellas será la clave.

Utilizar un enfoque sistemático para la implementación asegurará que el proveedor de API (el desarrollador encargado de la implementación) tendrá fácilmente a la mano los siguientes patrones de arquitectura:

· Orquestación

· Transformación

· Ruteo

· Mapeo de datos

· Conectividad a sistemas populares SaaS, sistemas on-premise y a datos, archivos y otros protocolos.

La implementación cuenta con dos pasos construcción y pruebas. En la construcción es donde se implementa la lógica del negocio por lo que MuleSoft recomienda seguir el enfoque sistémico más los patrones de buenas practicas que entre los cuales podemos encontrar:

· Llamados a bases de datos populares

· Realizar comúnmente las transformaciones

· Utilizar los workflows más populares entre múltiples sistemas

· Conectarse a endpoints de sistemas populares SaaS y on-premise

· Transformaciones REST-SOAP

Un punto muy importante es también poner los principios de diseño de API y las buenas practicas en un repositorio común. Esto traerá demasiados beneficios como:

· Incrementar la agilidad del negocio

· Compartir las buenas prácticas con templates reusables y lógicos

· Aprovechar al máximo los patrones de buenas practicas

· Desplegar fácilmente las APIs: entre más rápido se encuentre un fallo, más rápido se llega al éxito (fail fast, succeed faster).

· Minimice la lógica punto a punto y pruebe la estabilidad en el futuro

El siguiente paso corresponde al de pruebas, en este se debe de asegurar que tanto las pruebas unitarias como las de integración y performance cumplan al 100% los criterios de aceptación y escenarios de pruebas propuestos por los usuarios finales.

A continuación, se presentan las herramientas que MuleSoft ofrece para cumplir con el objetivo de cada paso de esta etapa:

Actualmente la herramienta más utilizada para la construcción es Anypoint Studio, el cual es un software de escritorio (IDE) muy similar a Eclipse IDE. En este poderoso IDE se construye la lógica de negocio arrastrando y soltando componentes y conectores. Esto es conocido como herramienta “drag and drop” en la cual NO se escriben líneas de código sino más bien se trata de elegir la configuración de los componentes y conectores acorde a la lógica a implementar. Anypoint Studio viene por default integrado con un motor Mule Runtime el cual es un ligero servidor de aplicaciones basado en Java y gracias a este usted podrá ejecutar sus Aplicaciones Mule de manera local.

Anypoint Studio muy pronto será reemplazado por Anypoint Code Builder el cual es una herramienta totalmente web integrada en la plataforma de Anypoint, pero tendremos que esperar hasta tener una versión estable de Code Builder.

La herramienta MUnit es un framework para pruebas automatizadas que viene integrado en Anypoint Studio. Este framework se puede decir que es parecido a Junit solo que MUnit es específicamente para aplicaciones Mule y se construye de la misma forma es decir arrastrando y soltando componentes.

Administración

Una vez que el bloque de creación de aplicaciones (Application building block) ha sido ensamblado y probado, el despliegue debe ser tan fácil como hacer clic a un botón. Esto se logra fácilmente con MuleSoft al proveer una plataforma de integración (Anypoint Platform) ligera, fácil de instalar y compatible con los flujos de trabajo CI/CD (Continuous Integration/Continuous Delivery). Además de que esta misma plataforma tiene la habilidad de soportar la administración de dependencias, pruebas, control de versiones y es compatible con otras herramientas para la automatización de los despliegues.

También es crucial asegurarse que los Application building block sigan las buenas prácticas en seguridad y gobernanza arquitectónica aplicándoles políticas en tiempo de ejecución. Monitorear todo el tráfico a través de un administrador de API (API Manager) es igual de crucial porque solo basta con tomar un solo eslabón débil para hundir el barco.

Adicionalmente, estas APIs deben ser detectables para poder ser reutilizadas por otros propósitos. Con la capacidad de publicarlas adecuadamente para que los consumidores puedan encontrarlos, investigarlos y comprenderlos fácilmente.

Por último, no se olvide que como cualquier producto los bloques de creación de aplicaciones (Application building blocks) también cambian. Pero despreocúpese por que Anypoint Platform le ayudara a planear e implementar cuidadosamente un conjunto de políticas y procedimientos adecuados para migrar clientes a través de nuevas versiones de APIs.

Anypoint Platform también le brinda un poderoso set de herramientas que le ayudaran en todos los pasos (Seguridad, despliegue, monitoreo, troubleshoot y administración) de esta etapa de administración. A continuación, se muestran estas herramientas adecuadas para cada paso:

Conclusión

Es clave tener que adaptarse al nuevo modelo operativo, donde se adopten prácticas de DevOps y lean, así como la creación de nuevos roles y responsabilidades para poder soportarlo. Así que dependiendo de la madurez de su organización puede haber una o varias personas manejando las principales etapas del ciclo de vida de las APIs. Lo importante a tener en cuenta es que cada etapa en el ciclo de vida provee un valor especifico, el cual se debe asegurar que los bloques de creación de aplicaciones resultantes cumplan con los objetivos de negocios esperados.

--

--

Everardo Flores
Another Integration Blog

MuleSoft Ambassador | MuleSoft Certified Developer | Lead Engineer @ Apisero Inc