Visión general de sistemas de integración autohospedados
Opciones de sistemas de integración
Sistemas de integración podrían ser comerciales con muchos módulos de conexión pagos y algunos gratuitos; O de tipo gratuito pero con una licencia un poco extraña; O listos para autohospedaje y no.
Hay muchos sistemas de integración disponibles…
Casos de uso
Podría ser útil para
- organizar tu propia integración entre diferentes [redes sociales] plataformas,
- configurar notificaciones en eventos de IoT, o
- configurar un sistema completo de POSSE.
Si estás curioso sobre qué es un POSSE… POSSE es una abreviatura de Publish (en tu) Own Site, Syndicate Elsewhere, la práctica de publicar contenido en tu propio sitio primero, luego publicar copias o compartir enlaces a terceros (como silos de redes sociales) con enlaces a la publicación original para proporcionar a los espectadores un camino para interactuar directamente con tu contenido.
Y IoT es una Internet of Things, por si lo has olvidado.
Basado en la nube
Plataformas universales
Como AWS con SNS, SQS, EventBridge, AppFlow y otros
Personalizadas
Muchas opciones
y otras.
Muy conveniente pero podría ser costoso.
Sistemas de integración autohospedados
Apache
Apache tiene muchos proyectos y en el nicho de integración echa un vistazo a Nifi
ESB de Mulesoft
Este Mule ESB con studio y otras herramientas forman una plataforma con un buen conjunto de Conectores.
https://www.mulesoft.com/platform/studio
Lo dejo aquí. Podría ser excesivo para un proyecto personal.
Puede descargarse aquí: https://www.mulesoft.com/lp/dl/anypoint-mule-studio
Revisa la licencia.
Huginn
Implementado en rubyonrails
https://github.com/huginn/huginn/blob/master/doc/docker/install.md
Uno de los sistemas de integración de código abierto más maduros.
Activepieces
Implementado en Javascript
https://www.activepieces.com/docs/contributing/overview
node-RED
https://nodered.org/docs/tutorials/first-flow
Plataforma de integración increíble con requisitos de hardware bastante bajos.
La interfaz es de estilo industrial.
Las conexiones personalizadas se codifican con JavaScript.
Windmill
https://github.com/javipalanca/spade
Entorno de desarrollo de agentes inteligentes en Python
Una plataforma de sistemas multiagente escrita en Python y basada en mensajería instantánea (XMPP).
Desarrolla agentes que pueden charlar tanto con otros agentes como con humanos.
Licencia MIT
StackStorm
según su sitio web:
StackStorm es una plataforma para integración y automatización entre servicios y herramientas…
StackStorm ayuda a automatizar patrones operativos comunes. Algunos ejemplos son:
- Diagnóstico facilitado - disparado por fallos del sistema capturados por Nagios, Sensu, New Relic y otros sistemas de monitoreo, ejecutando una serie de verificaciones diagnósticas en nodos físicos, instancias de OpenStack o Amazon y componentes de aplicación, y publicando resultados en un contexto de comunicación compartido, como Slack o JIRA.
- Remedición automatizada - identificar y verificar fallos de hardware en un nodo de computación de OpenStack, evacuar correctamente las instancias y enviar un correo electrónico a los administradores sobre un posible tiempo de inactividad, pero si algo sale mal - congelar el flujo de trabajo y llamar a PagerDuty para despertar a un humano.
- Despliegue continuo - construir y probar con Jenkins, provisionar un nuevo clúster de AWS, activar algunos tráfico con el balanceador de carga y avanzar o retroceder según los datos de rendimiento de la aplicación de NewRelic.
Luigi
https://luigi.readthedocs.io/en/stable/
Luigi es un paquete de Python que te ayuda a construir pipelines complejos de trabajos por lotes. Maneja la resolución de dependencias, gestión de flujos de trabajo, visualización, manejo de fallos, integración de línea de comandos y mucho más.
BeeHive
https://github.com/muesli/beehive
Un sistema flexible de eventos/agentes y automatización, que permite crear tus propios agentes que realizan tareas automatizadas disparadas por eventos y filtros. Es modular, flexible y muy fácil de extender para cualquiera. Tiene módulos (los llamamos Hives), por lo que puede interactuar, comunicarse o recuperar información de Twitter, Tumblr, Email, IRC, Jabber, RSS, Jenkins, Hue, entre otros.
Lista de sistemas de integración
Licencia Apache-2.0
Nombre del sistema | Idioma de implementación |
---|---|
airflow | Python |
luigi | Python |
mage | Python |
node-red | Javascript/node.js |
prefect | Python |
taskflow | Python |
StackStorm | Python |
syndesis | Java |
thingsboard | Java |
Licencia MIT
Nombre del sistema | Idioma de implementación |
---|---|
actionsflow | Javascript/Typescript |
active_workflow | Ruby |
huginn | Ruby |
jitsu | Javascript |
novu | Javascript/Typescript |
pydoit | Python |
Licencia BSD
Nombre del sistema | Idioma de implementación |
---|---|
apprise | Python |
flogo | Golang |
Licencia GPL
Nombre del sistema | Idioma de implementación |
---|---|
automatisch | Javascript/Typescript |
beehive | Golang |
spiffworkflow | Python |
Otras licencias (revisa antes!)
Nombre del sistema | Idioma de implementación |
---|---|
activepieces | Javascript/Typescript |
chainjet | Javascript/Typescript |
n8n | Javascript/Typescript |
Mi opinión
Me gusta node-RED lo más.
- Buena cantidad de conectores disponibles
- Bajos requisitos del sistema (como Raspberry PI?)
- Fácil programación con JS
- PERO Mira por ti mismo, la curva de aprendizaje podría ser empinada dependiendo de tu experiencia.