Posts publicados por Pedro Boix

CRM Mulesoft Nube

En anteriores entradas hemos podido ver qué era Anypoint Platform, centrándonos en las diferencias entre sus dos versiones: Kernel y Enterprise.

En esta entrada ahondaremos en las funcionalidades que nos brinda la plataforma de Anypoint para la versión Enterprise.

¿Qué es Anypoint Platform?

Anypoint platform es una solución Integration Platform-as-a-service (iPaaS), una solución para la conectividad gestionada por API. Estas APIs pueden ser desplegadas en cualquier entorno, ya sea sobre la propia nube de MuleSoft (CloudHub), en nubes públicas de terceros o sobre la propia infraestructura del cliente.

La plataforma de Anypoint destaca frente a otras soluciones iPaaS principalmente en dos aspectos:

1. API-Led Connectivity

La conectividad Api-Led es un principio de integración alejado del modelo tradicional de conectividad punto por punto. Esta metodología apuesta por el uso de APIs interconectadas y reutilizables, permitiendo así reducir tiempos de desarrollo, mantenimiento y escalabilidad en nuestra red de aplicaciones.

MuleSoft divide estas APIs en tres grupos:

  • APIs de experiencia: Son APIs dedicadas a mostrar la información de forma que sea lo más fácilmente consumible por el destinatario (App móvil, App web, Salesforce Community Cloud…).
  • APIs de proceso: Estas APIs son las encargadas de procesar los datos obtenidos de la capa de sistema y de adaptarlos según las necesidades del negocio. (API de pedidos del cliente).
  • API de sistema: Se encargan de interconectar las APIs de proceso con cada una de las fuentes de datos (Salesforce, SAP, Gmail, Twilio…).

Al emplear esta separación de una API en varias APIs interconectadas y divididas en diferentes capas de funcionalidad, nos permite la reutilización de sus funcionalidades, la abstracción de procesos y una mayor eficiencia en el desarrollo y escalabilidad de estas.

2. Solución de 360º

Además de permitirnos el desarrollo de APIs, también nos permite realizar otras acciones dentro de su plataforma, de forma que abarquemos todas las necesidades a la hora de diseñar, crear, y utilizar una API. Estas funcionalizades son:

  • Diseño, prototipado y test: Podemos generar especificaciones de nuestros servicios, indicando cuál es el funcionamiento esperado por este. Una vez finalizada su definición, nos permitirá realizar pruebas sobre esta especificación, de forma que podremos validar su integración con otros servicios antes incluso de comenzar a desarrollarlo.
  • Desarrollo: Nos permite crear APIs de forma ágil, empleando elementos reutilizables mediante código o point & click, mediante su interfaz visual.
  • Despliegue: Permite desplegar nuestra API diseñada, tanto en nuestra nube de CloudHub como on-premise.
  • Gestión y monitorización: Podemos monitorizar en tiempo real nuestros servicios desplegados, pudiendo ver mediante gráficas, la actividad en cada uno de nuestros servicios o su uso de recursos. También nos permite personalizar alertas en caso de, por ejemplo, fallos de funcionamiento o alta demanda de recursos, entre otros.
  • Seguridad: Nos permite gestionar la seguridad de nuestros servicios, permitiendo indicarle valores de autenticación, niveles de licencias, roles de acceso a los usuarios o límites de acceso a los servicios, entre otros.

Estas funcionalidades están divididas en diferentes componentes, los cuales forman la plataforma de Anypoint en su totalidad.

Componentes de Anypoint Platform

Como hemos comentado, Anypoint Platform, para permitirnos realizar soluciones de 360º, nos ofrece diferentes componentes, cada uno de ellos con una funcionalidad específica, a continuación veremos con detalle cada uno de ellos.

Exchange

Exchange es una tienda en la cual disponemos de diferentes conectores y plantillas, los cuales están disponibles para su uso en el desarrollo de APIs personalizadas. Además, nos permite alojar de manera privada los servicios de nuestra organización, por lo que también puede ser empleado como el catálogo de servicios de nuestra empresa.

La ventaja de tener estos conectores, plantillas y servicios dentro de un repositorio, es la de poder reutilizarlos en nuestros proyectos, reduciendo así tiempos de desarrollo.

Design Center

Se trata del componente donde podremos diseñar y crear nuestras APIs, este se divide en dos partes, dependiendo de si deseamos diseñar o crear una API, estas son:

API Designer

Esta herramienta permite diseñar nuestras APIs a partir de su especificación. Esta se escribe mediante un lenguaje denominado RAML, pero, aunque podemos escribir la especificación manualmente, también nos brinda la posibilidad de emplear un asistente visual para su desarrollo.

Una vez que se ha definido el funcionamiento de una API, podremos probar cada uno de sus métodos usando la consola que nos brinda la propia plataforma. También podemos publicarla en Exchange para poder realizar pruebas de integración de esta API en otros servicios, incluso antes de comenzar a desarrollarla.

Flow Designer

Esta herramienta nos permite crear nuestras propias APIs, dentro de ella, y mediante una interfaz visual de point & click, podremos ir enlazando procesos, llamadas y trasnformaciones con el fin de generar el funcionamiento deseado.

Dentro del Flow Designer podremos realizar llamadas a APIs generadas por nuestra compañía, llamadas a especificaciones de APIs publicadas en exchange, o hacer uso de plantillas y conectores con aplicativos desarrollados y publicados por MuleSoft.

Una vez finalizado su desarrollo, desde aquí podremos publicar una plantilla en exchange de forma privada para nuestra organización, con el fin de su reutilización, o desplegar el servicio para su uso.

Runtime Manager

Una vez desplegado un servicio desarrollado en el Flow Designer, este componente nos permite gestionar el entorno donde éste se ejecuta, ya sea en un Worker de CloudHub o en un entorno On-premise.

En el caso de desplegarse sobre el entorno de MuleSoft (CloudHub) nos permitirá especificar cuántos workers van a ejecutar el servicio e indicarle los recursos que éstos van a tener dedicados.

Al realizar el despliegue, la API será empaquetada en un fichero junto a todas sus dependencias, de forma que no sea necesaria configuración adicional en el despliegue.

Monitoring

Como su propio nombre indica, nos permite realizar una monitorización de la actividad en aquellos servicios que hayamos desplegado. A través de diversos paneles, podemos ver gráficas sobre el número de peticiones al servicio, tiempos de respuesta a cada uno de sus métodos, peticiones erróneas realizadas al servicio o recursos empleados a lo largo del tiempo por este.

Además, nos permite crear alertas personalizadas, de forma que, si se originara un comportamiento anormal, pudiéramos ser notificados al respecto.

Visualizer

Una vez desplegada nuestra red de aplicaciones, visualizer nos permite visualizar la interconexión entre cada una de ellas, pudiendo dividir cada una de estas aplicaciones en los tres niveles que conforman el API-led Connectivity, tal como hemos explicado anteriormente.

Esto nos permite, mediante un simple vistazo, visualizar cómo se interconectan las distintas aplicaciones dentro de nuestra organización, y detectar si alguna de ellas realiza conexiones fuera del estándar fijado.

API Manager

Es una herramienta que permite realizar la gestión sobre las API’s publicadas en Exchange.

Esta herramienta, entre otras funciones, nos permite:

  • Configurar políticas de autenticación y seguridad.
  • Configurar SLAs y alertas basadas en éstos.
  • Creación y configuración de un API proxy para el acceso a nuestra API.
  • Informes de actividad del uso de la API.

¿Quieres conocer más detalles?

En sumamoOs tenemos un equipo dispuesto a ayudarte a que comiences a aprovechar el potencial que pueden ofrecer a tu empresa las herramientas de integración que ofrece MuleSoft. De modo que, si quieres averiguar más detalles sobre algún servicio con los que se conecta, puedes echar un vistazo aquí o  contactar con nosotros para conocer cómo transformar tu empresa empleando está creciente corriente tecnológica.

¿Qué es Anypoint Platform?

Anypoint platform es una herramienta en la nube de integración desarrollada por la empresa Mulesoft, con el objetivo de automatizar el trabajo repetitivo o “Donkey work”, de donde procede el nombre de la empresa.

La plataforma Anypoint es una solución de tipo Integration Platform-as-a-Service (iPaaS), la cual nos permite realizar procesos tales como la integración con un B2B/B2C, sistema externo o interno de una organización, realizar procesos ETL, mensajería asíncrona, hacer uso de todo tipo de conectores y protocolos de comunicación, monitorización avanzada visual, desarrollo visual de APIs…,y otras muchas funcionalidades que ofrecen el ciclo de completo del API de integración.

Esta solución destaca frente a otros servicios iPaaS en su diseño low-code, donde la mayor parte de sus funciones se pueden implementar mediante acciones de point and click a través de su interfaz visual.

La plataforma nos proporciona:

  • El Runtime para ejecutar y desplegar nuestras aplicaciones on-premise o en la nube (CloudHub).
  • Herramientas y Frameworks para crear una API y construir aplicaciones Mule.
  • Bibliotecas para almacenar nuestros proyectos, donde podremos verlos, probarlos y permitir a otros usuarios de nuestra compañía su reutilización.

En la versión gratuita (Mule Kernel), Mulesoft nos proporciona la herramienta de escritorio Anypoint Studio en lugar de Anypoint Platform, la cual nos permite la creación de APIs de una forma visual, similar a Anypoint Platform, pero sin las ventajas empresariales necesarias que ofrece la plataforma de pago por uso.

 

 

Mule Kernel vs Mule Enterprise

Mulesoft ofrece su herramienta en dos versiones: Mule Kernel (Anteriormente llamada Community) y Mule Enterprise.

Mule Kernel es utilizada normalmente por equipos pequeños de desarrollo, para la realización de pruebas y formación. La versión gratuita de la plataforma no soporta funcionalidades avanzadas de seguridad, gran variedad de conectores, abstracción  de API de sistema, monitorización visual integrada, entre otras más, necesarias a nivel empresarial en un todo en uno.

Estas son algunas de las principales diferencias que incluye la versión Enterprise frente a la versión Kernel:

Lenguaje de datos DataWeave

DataWeave es el lenguaje de expresiones empleado por Mulesoft para trabajar y transformar los datos a través de su aplicación.

Mediante el uso del paso Transform en la herramienta, se puede modificar el formato de salida de un mensaje (JSON, Objeto Java, XML, CSV…) y además modificar su estructura para adecuarla a nuestras necesidades.

Uso de plantillas Anypoint

Anypoint nos da a nuestra disposición una serie de plantillas, estas plantillas son aplicaciones de integración, preparadas para ser configuradas, modificadas, ampliadas y reutilizadas, con el fin de ahorrarnos tiempo a la hora de desarrollar, mejorando la productividad en el desarrollo y ahorrando tiempo en corrección de errores.

Componente de proceso en lotes

Este componente, únicamente disponible en la edición enterprise, nos permite procesar información similar (P.Ej: Líneas de pedidos) de forma paralela en diferentes hilos y de forma asíncrona.

Este proceso se suele usar, por ejemplo, para:

  • Sincronizar Data sets entre aplicaciones de negocio, como por ejemplo, para sincronizar cuentas entre NetSuite y Salesforce.
  • Para procesos de Extracción, Transformación y Carga (ETL), como por ejemplo, cargar datos de un archivo CSV a Hadoop
  • Manejo de grandes cantidades de datos entrantes de una API a un sistema heredado.

SLA

Anypoint Enterprise permite la implementación de SLA (Service Level Access), por lo que se puede generar diferentes tipos de niveles de uso.

Por ejemplo, se pueden definir varios niveles, y a cada nivel definir cuántas peticiones se pueden realizar a la API por minuto, así, por ejemplo:

  • Para el nivel Plata se permitirán 10 peticiones por segundo y un máximo de 1.000 por día.
  • Para el nivel Oro se permitirán 100 peticiones por segundo y un máximo de 10.000 por día.

Módulo SAML

La versión Enterprise permite el soporte de SAML (Security Assertion Markup Language), el cual es un estándar para el intercambio de información segura entre sistemas.

Otras funciones

Otras diferencias entre las versiones Kernel y Enterprise son:

  • Depuración visual.
  • Almacenamiento en caché.
  • Monitoreo NSMP.
  • Seguridad basada en Roles.
  • Cifrado de mensajes.
  • Detección de cuellos de botella y análisis del rendimiento.
  • Base de conocimiento en línea.

A continuación mostramos todas las funciones disponibles para cada una de las versiones:

* Disponible sólo en suscripciones Platinum

** Disponible como un complemento de Anypoint Platform

¿Quieres conocer más detalles?

En sumamoOs tenemos un equipo dispuesto a ayudarte a que comiences a aprovechar el potencial que pueden ofrecer a tu empresa las herramientas de integración que ofrece Mulesoft. De modo que, si quieres averiguar más detalles sobre algún servicio con los que se conecta, puedes echar un vistazo aquí o  contactar con nosotros para conocer cómo transformar tu empresa empleando está creciente corriente tecnológica.

En anteriores entradas hemos hablado del uso del BI (Business Intelligence) para el tratamiento de los datos de una empresa con el fin de obtener información. Hoy hablaremos de un proceso para integrar datos con el fin de obtener esta información: ETL.

¿Qué significa ETL?

ETL son las siglas en inglés de los pasos que conforman el proceso: Extract, Transform, Load. (Extracción, Transformación, Carga).

  • Extracción: Consiste en obtener datos de una o varias fuentes. Estas pueden ser: Bases de datos, APIs, documentos CSV, ficheros Excel, etc.
  • Transformación: En este paso se realizan los cálculos, validaciones y limpieza de los datos obtenidos de la extracción, adecuándolos con el objetivo de obtener la información necesaria.
  • Carga: Los datos, una vez modificados para la obtención de información, se vuelcan en almacenes de datos, que al igual que en la extracción, puede ser de diferentes tipos: ficheros, bases de datos, Data Warehouse, etc.

En resumen, estos procesos nos permiten obtener una gran cantidad de información de diversos medios, transformarla, adaptarla a nuestras necesidades y almacenarla de forma que podamos hacer uso de esta información.

Si todavía no comprendes el objetivo de un ETL no te preocupes, lo verás más claro con el siguiente ejemplo:

Ejemplo: ThunderBolt Sunglasses

ThunderBolt Sunglasses es una compañía de venta de gafas de sol que está arrasando en la industria. Esta empresa desea conocer los índices de venta de sus productos en España. La información de estas ventas las tiene en una base de datos MySQL desde su tienda online, archivos CSV desde su ERP y en ficheros Excel desde sus franquicias y representantes.

Mediante el proceso de extracción, un ETL permite trabajar con orígenes de datos distintos, por lo que la diversidad de orígenes de datos no supone un impedimento.

Una vez realizada la extracción, se necesitan realizar los cálculos que permitan obtener los valores que se desean. Este paso lo realiza el proceso de transformación de datos, en el cual se realizan las transformaciones necesarias para convertir los datos en información.

Por último, realizando una carga de estos datos en un Data Warehouse permitirá acceder a la información de los índices de ventas.

Ejemplo de flujo ETL

Aplicaciones

Como habrás visto en el ejemplo, los procesos ETL resultan ser una herramienta bastante potente a la hora de importar y procesar datos, pero… ¿Es la única utilidad que tienen? Ya te adelanto que en sumamoOs empleamos herramientas ETL para muchas más áreas. Por nombrar algunas, vamos a ver una lista de funciones que se pueden realizar a partir de un proceso ETL:

  • Mover datos desde una o varias fuentes de datos.
  • Dar formato a los datos y limpiarlos para poder mostrarlos en informes, cuadros de mando e información unificada.
  • Migrar los datos de una fuente a otra, como una base de datos, un Data Mart o un Data Warehouse.
  • Tareas de base de datos, como consolidar, migrar y sincronizar bases de datos.
  • Migración de datos de aplicaciones entre versiones.
  • Sincronizar entre diferentes sistemas operacionales, como entre un entorno ERP y un entorno Web.
  • Interfaz con sistemas externos, ya sea para entrada como salida de datos, con APIs, ficheros…
  • Preparación de procesos masivos (Mailings, Newsletter, etc).

¿Quieres conocer más detalles?

En sumamoOs tenemos un gran conocimiento en el desarrollo de procesos ETL. De modo que, si quieres averiguar más detalles sobre el manejo de datos para la obtención de información, puedes consultar nuestra sección sobre el tratamiento de datoso  contactar con nosotros para conocer cómo transformar la operativa de tu empresa aprovechando estas herramientas.