Panoramica dei sistemi di integrazione selfhosted
Opzioni dei sistemi di integrazione
Sistemi di integrazione potrebbero essere commerciali con molti moduli di connessione a pagamento e alcuni gratuiti; Oppure di tipo gratuito ma con licenze strane; Oppure pronti per l’hosting autonomo e non.
Esistono molti sistemi di integrazione disponibili…
Caso d’uso
Potrebbe essere utile per
- organizzare la propria integrazione tra diverse piattaforme di [social network],
- configurare notifiche sugli eventi IoT, o
- impostare un sistema POSSE completo.
Se sei curioso di sapere cosa è un POSSE… POSSE è un’abbreviazione di Publish (on your) Own Site, Syndicate Elsewhere, la pratica di pubblicare contenuti sul proprio sito prima, quindi pubblicare copie o condividere link a terze parti (come silos social media) con link all’articolo originale per fornire agli utenti un percorso per interagire direttamente con il tuo contenuto.
E IoT è un Internet of Things, nel caso tu l’abbia dimenticato.
Sulla base del cloud
Piattaforme universali
Come AWS con SNS, SQS, EventBridge, AppFlow e altri
Personalizzate
Molte opzioni disponibili
e altre.
Abbastanza conveniente ma potrebbe essere costosa.
Sistemi di integrazione self-hosted
Apache
Apache ha molti progetti e nell’ambito dell’integrazione puoi dare un’occhiata a Nifi
Mulesoft’s ESB
Questo Mule ESB con studio e alcuni altri strumenti formano una piattaforma con un insieme di Connectors.
https://www.mulesoft.com/platform/studio
Lo tengo qui. Potrebbe essere troppo pesante per un progetto personale.
Può essere scaricato qui: https://www.mulesoft.com/lp/dl/anypoint-mule-studio
Controlla la licenza.
Huginn
Implementato in rubyonrails
https://github.com/huginn/huginn/blob/master/doc/docker/install.md
Uno dei sistemi di integrazione open source più maturi.
Activepieces
Implementato in JavaScript
https://www.activepieces.com/docs/contributing/overview
node-RED
https://nodered.org/docs/tutorials/first-flow
Piattaforma di integrazione fantastica con requisiti hardware abbastanza bassi.
L’interfaccia è di tipo industriale.
Le connessioni personalizzate vengono codificate con JavaScript.
Windmill
https://github.com/javipalanca/spade
Ambiente di sviluppo per agenti Python intelligenti
Una piattaforma di sistemi multi-agente scritta in Python e basata su messaggistica istantanea (XMPP).
Sviluppa agenti che possono chattare sia con altri agenti che con gli umani.
Licenza MIT
StackStorm
dal loro sito:
StackStorm è una piattaforma per l’integrazione e l’automazione tra servizi e strumenti…
StackStorm aiuta ad automatizzare i pattern operativi comuni. Alcuni esempi sono:
- Diagnosi facilitata - attivazione su fallimenti del sistema catturati da Nagios, Sensu, New Relic e altri sistemi di monitoraggio, esecuzione di una serie di controlli diagnostici su nodi fisici, istanze OpenStack o Amazon e componenti applicativi, e pubblicazione dei risultati in un contesto di comunicazione condiviso, come Slack o JIRA.
- Rimozione automatica - identificazione e verifica di un guasto hardware su un nodo di calcolo OpenStack, evacuazione corretta delle istanze e invio di email agli amministratori riguardo a possibili interruzioni, ma se qualcosa va storto - blocco del flusso di lavoro e chiamata a PagerDuty per svegliare un umano.
- Deployment continuo - costruzione e test con Jenkins, provisioning di un nuovo cluster AWS, attivazione di alcuni traffici con il bilanciatore di carico, e avanzamento o rollback in base ai dati di prestazioni dell’applicazione da NewRelic.
Luigi
https://luigi.readthedocs.io/en/stable/
Luigi è un pacchetto Python che ti aiuta a costruire pipeline complesse di lavori batch. Gestisce la risoluzione delle dipendenze, la gestione del flusso di lavoro, la visualizzazione, la gestione degli errori, l’integrazione della riga di comando e molto altro.
BeeHive
https://github.com/muesli/beehive
Un sistema flessibile di eventi/agenti & automazione, che ti permette di creare i propri agenti che eseguono compiti automatizzati attivati da eventi e filtri. È modulare, flessibile e molto facile da estendere per chiunque. Ha moduli (li chiamiamo Hives), quindi può interfacciarsi, comunicare o recuperare informazioni da Twitter, Tumblr, Email, IRC, Jabber, RSS, Jenkins, Hue - per citarne solo alcuni.
Elenco dei sistemi di integrazione
Licenza Apache-2.0
Nome del sistema | Linguaggio di implementazione |
---|---|
airflow | Python |
luigi | Python |
mage | Python |
node-red | Javascript/node.js |
prefect | Python |
taskflow | Python |
StackStorm | Python |
syndesis | Java |
thingsboard | Java |
Licenza MIT
Nome del sistema | Linguaggio di implementazione |
---|---|
actionsflow | Javascript/Typescript |
active_workflow | Ruby |
huginn | Ruby |
jitsu | Javascript |
novu | Javascript/Typescript |
pydoit | Python |
Licenza BSD
Nome del sistema | Linguaggio di implementazione |
---|---|
apprise | Python |
flogo | Golang |
Licenza GPL
Nome del sistema | Linguaggio di implementazione |
---|---|
automatisch | Javascript/Typescript |
beehive | Golang |
spiffworkflow | Python |
Altre licenze (controllale prima!)
Nome del sistema | Linguaggio di implementazione |
---|---|
activepieces | Javascript/Typescript |
chainjet | Javascript/Typescript |
n8n | Javascript/Typescript |
La mia opinione
Mi piace di più node-RED.
- Buon insieme di connettori disponibili
- Basso requisito di sistema (come Raspberry PI?)
- Facile coding con JS
- MA vedete voi stessi, la curva di apprendimento potrebbe essere ripida a seconda della vostra esperienza.