Qué es Mulesoft Anypoint y principales características

En este artículo se analiza MuleSoft Anypoint Platform, una de las herramientas de integración líder en el mercado, tanto en la categoría de API Management como en la de iPaaS. Se repasan las capacidades de su runtime, las funcionalidades que ofrece su control plane y las alternativas que ofrece a nivel de despliegue.

Acerca de MuleSoft Anypoint

MuleSoft fue fundado en 2006 por Ross Mason. El objetivo de Ross era crear una herramienta de integración que permitiera automatizar el trabajo repetitivo (el “drudgery” o“donkey work” de donde procede su nombre). Fue adquirido 12 años después por Salesforce, en mayo del 2018, por más de 6.000 millones de dólares.

El producto estrella de MuleSoft es Anypoint Platform, una solución de tipo Integration Platform-as-a-Service (iPaaS) calificada como líder en el cuadrante de Gartner y que se utiliza por empresas como Airbus, HSBC, McDonalds, Hertz, Airbnb, Coca Cola, BP, Unilever, Decathlon, Asics, etc.

 

Mulesoft Anypoint Platform

 

Las aplicaciones Mule pueden ser desplegadas en cualquier entorno, ya sea on-premises, en nubes públicas (AWS, Azure, Google) o en el propio iPaaS de MuleSoft (denominado CloudHub).

Mule Runtime

En MuleSoft, existe una estricta separación entre la capa de administración (el control plane) y la capa de ejecución (el runtime plane). Así, en Anypoint están segregados los componentes que se ocupan de las tareas de control (administración de usuarios, publicación de APIs, monitorización) del componente runtime que se centra en ejecutar aplicaciones Mule.

Las aplicaciones Mule se escriben utilizando un entorno de desarrollo low-code donde la mayor parte de la funcionalidad se construye en modo point-and-click arrastrando conectores y módulos desde una paleta. Estos son algunos ejemplos de aplicaciones que se pueden construir con Mule:

  • APIs, protegiendo la invocación a micro-servicios y aplicaciones legacy mediante políticas de seguridad y anti-hacking.
  • Operaciones de sincronización de datos, recibiendo datos a partir de una cola de mensajes, ejecutando transformaciones, y grabando los resultados en cualquier tipo de repositorio o aplicación SaaS, utilizando alguno de los cientos de conectores que ofrece MuleSoft.
  • Procesos de intercambio de información con un ecosistema de terceros, enviando y recibiendo tanto mensajes EDI como ficheros, utilizando protocolos como AS2, FTP, SFTP o FTPS. Recientemente MuleSoft ha publicado una nueva versión del componente Anypoint Partner Manager, el cual ofrece una consola que facilita el intercambio de mensajes X12 o EDIFACT con terceros.

El runtime es un proceso Java (requiere OpenJDK 8) lo cual posibilita que éste pueda ser desplegado en múltiples entornos, tanto on-premises, como en nubes públicas o en CloudHub. El runtime sufrió entre la versión 3 y la 4 un profundo rediseño; así, en la versión 4 se incluyeron varias optimizaciones a nivel de rendimiento, incluyendo un nuevo diseño en la gestión de hilos así como en el tratamiento de operaciones de IO no bloqueantes (basado en Grizzly NIO).

Mule Runtime soporta la ejecución de transacciones. Diversos conectores Mule como puede ser el de JMS, IBMMQ, base de datos, etc. soportan la ejecución de operaciones en el contexto de una transacción XA, de tal manera que se pueden deshacer en caso de que uno de los pasos falle. Mule incorpora Bitronix Transaction Manager, el cual se ocupa de recuperar transacciones que hayan quedado interrumpidas ante una situación de reinicio.

Mule proporciona un sistema de almacenamiento clave-valor conocido como Object Store y que se utiliza fundamentalmente para persistir el estado entre ejecuciones de diferentes invocaciones a aplicaciones Mule. Es posible configurar el Object Store para que sea persistente o en memoria.

Anypoint MQ es un sistema de mensajería que se incluye en la plataforma y que puede ser utilizado por el runtime para enviar mensajes asíncronos. Desde el control plane es posible obtener información estadística de los mensajes intercambiados, vaciar colas, etc.

El runtime se ofrece de manera gratuita con licencia Common Public Attribution License (CPAL). El código fuente de Mule Community Edition está accesible en GitHub.

Control Plane

El Anypoint Control Plane es el componente que se ocupa de las operaciones administrativas. Incluye múltiples componentes, entre los que destacan:

  • Access Management. Es la pieza que se utiliza para gestionar organizaciones, usuarios, roles, grupos, entornos, etc.
  • API Manager. Se utiliza para definir y gestionar APIs. Sobre dichas APIs es posible aplicar políticas: caché, listas blancas y negras, protección ante ataques, aplicación de límites, etc.
  • Runtime Manager. Se utiliza para controlar los diferentes runtimes y aplicaciones Mule desplegadas en Anypoint. Se utiliza también para definir alertas, en forma de mensajes por correo electrónico que se envían ante determinadas condiciones. Dado que Anypoint se ejecuta en la nube de Amazon, es posible también definir elementos de networking como VPCs (Virtual Private Cloud) que permiten conectar CloudHub con cuentas AWS del cliente.
  • Anypoint Visualizer. Es una de las herramientas de monitorización de Anypoint, y ofrece un dashboard donde se pueden observar las diferentes APIs que se utilizan en una determinada organización.
  • Anypoint Monitoring. Otra de las herramientas de monitorización. Proporciona tanto métricas de rendimiento como acceso a los logs.
  • Secrets Manager. Se utiliza para almacenar certificados, claves, secretos, etc.
  • Exchange. Es un marketplace similar al Salesforce AppExchange, donde se pueden encontrar cientos de componentes y conectores, muchos de los cuales se ofrecen de manera gratuita. Todas las APIs construidas en una organización se publican de manera privada en Exchange, fomentando su reutilización.

 

Mulesoft

 

  • API Portal. Es el portal público de APIs y contiene aquellas APIs disponibles en Exchange que se quieren compartir con terceros. Permite acceder a la documentación de las APIs, ejecutar mocks, crear aplicaciones consumidoras, subscribirlas a APIs, etc.
  • API Community Manager. Es una versión mejorada del API Portal construida sobre Salesforce Communities. Permite construir un ecosistema digital compuesto por partners que utilizan las APIs publicadas por una organización.
  • Anypoint Service Mesh. Es una de las novedades de la release de octubre del 2019 que permite gestionar micro-servicios desplegados en Kubernetes, proporcionando observabilidad de los servicios y su dependencias, permitiendo controlar los micro-servicios mediante políticas de control de Istio y aplicar medidas de seguridad en Istio / Envoy como TLS.

Herramientas de desarrollo

La metodología de MuleSoft para construir APIs se basa en el concepto de API-led, en la que Mule recomienda construir capas de APIs donde las de más bajo de nivel (system APIs) se especializan en recubrir sistemas legacy, las de más alto nivel (experience APIs) sirven para agilizar la construcción de aplicaciones móviles, y donde se establece una capa intermedia (process APIs) que sirve de pegamento entre ambos tipos de APIs.

 

Mulesoft Anypoint Platform

 

A la hora de construir APIs, MuleSoft propone utilizar técnicas de prototipado rápido, donde lo primero que se construye es la definición del contrato de la API, a continuación se diseña una capa de mocks y después se publica en el API Portal, para así obtener feedback rápido y poder desacoplar la construcción de las aplicaciones consumidores de la implementación de las APIs.

 

La definición del contrato de la API se puede realizar utilizando tanto el estándar RAML como el estándar OpenAPI Specification 2.0 (Swagger). MuleSoft proporciona dentro de Anypoint una herramienta de diseño (el Anypoint API Designer) donde se puede definir una API tanto haciendo point-and-click como directamente introduciendo código RAML / Swagger.

Mulesoft Anypoint Raml

 

A la hora de construir aplicaciones Mule existen dos alternativas:

  • Anypoint Studio. Se trata de un entorno de desarrollo basado en Eclipse que proporciona editores visuales, un Runtime embebido e integración con Maven, Anypoint y CloudHub.
  • Anypoint Flow Designer. Es una herramienta que está orientada a citizen integrators, es decir, a perfiles que no son de IT pero que tienen la suficiente soltura técnica como para poder crear pequeños flujos donde se carga información en un repositorio, se programa el envío de una notificación ante un evento en una aplicación, etc.

MuleSoft permite construir integraciones de tipo Extract Transform Load (ETL) para lo cual proporciona su propio lenguaje de transformación de datos denominado DataWeave. Se trata de un lenguaje funcional que permite transformar mensajes (JSON, XML, CSV) ejecutando operaciones sobre arrays, sobre strings, tratamiento de fechas, etc.

MUnit es un framework de pruebas unitarias proporcionado por MuleSoft y que permite escribir aserciones. Tras la ejecución de los tests es posible comprobar el nivel de cobertura alcanzado.

El proceso de empaquetado de aplicaciones Mule se basa en Maven. El plugin de Mule para Maven permite desplegar una aplicación Mule, ejecutar tests, parar e iniciar un runtime, etc.

Despliegue híbrido

Normalmente, el control plane de MuleSoft es proporcionado por el propio MuleSoft y se ejecuta en modo SaaS, aunque técnicamente es posible – aunque no habitual – desplegarlo en el entorno del cliente.

Sin embargo, en cuanto al runtime plane, existen múltiples alternativas a la hora de desplegar aplicaciones Mule:

  • CloudHub. Es la opción más rápida ya que las aplicaciones Mule desplegadas en CloudHub se ejecutarán en entornos aprovisionados por MuleSoft en AWS y que se pueden conectar a entornos on-premises usando IPsec tunnels, VPC peering, Direct Connect, etc. Cada aplicación Mule consume un número de vCores.
  • Servidores Mule standalone. En esta alternativa, las aplicaciones Mule se despliegan sobre máquinas virtuales Java proporcionadas por el cliente. Es posible crear imágenes Docker que empaquetan la JVM con el runtime y la aplicación Mule y ejecutar contenedores sobre estas imágenes en plataformas PaaS.
  • Runtime Fabric. Se trata de un entorno proporcionado por MuleSoft que se puede instalar en las maquinas del cliente y que incluye una versión de Docker y Kubernetes donde se pueden desplegar aplicaciones Mule.

Conclusión

En el artículo se han descrito las principales características de MuleSoft Anypoint. Para profundizar más, es recomendable consultar el portal de formación de MuleSoft. Otra posibilidad para conocer mejor la plataforma, es crear una cuenta gratuita en Anypoint, la cual aunque caduca al cabo de un mes, ofrece la posibilidad de crear nuevos entornos de manera cómoda.

 

Guía de Posibilidades Profesionales en el Ecosistema de Java