Przegląd systemów integracji samodzielnie hostowanych
Opcje systemów integracji
Systemy integracyjne mogą być komercyjne z wieloma płatnymi modułami połączeń i kilkoma darmowymi; Lub w zasadzie darmowe, ale z dziwną licencją; Lub gotowe do samozhostowania i nie.
Dostępnych jest wiele systemów integracyjnych…
Przypadki użycia
Może być przydatne do
- organizowania własnej integracji między różnymi [platformami sieci społecznościowych],
- konfigurowania powiadomień na wydarzenia IoT, lub
- ustawiania pełnoprawnego systemu POSSE.
Jeśli jesteś ciekaw, co to jest POSSE… POSSE to skrót od Publish (na) Own Site, Syndicate Elsewhere, praktyka publikowania treści na własnej stronie, a następnie publikowania kopii lub udostępniania linków na stronach trzecich (np. silosach mediów społecznościowych) z linkami do oryginalnego posta, aby widzom dać ścieżkę do bezpośredniego interakcji z Twoją treścią.
A IoT to Internet of Things, w razie jeśli zapomniałeś.
Oparte o chmurę
Uniwersalne platformy
Jak AWS z SNS, SQS, EventBridge, AppFlow i innymi
Dostosowane
Dużo możliwości wyboru
i inne.
Dość wygodne, ale mogą być drogie.
Samozhostowane systemy integracyjne
Apache
Apache ma wiele projektów, a w zakresie integracji warto spojrzeć na Nifi
Mulesoft’s ESB
Ten Mule ESB wraz ze studiem i innymi narzędziami tworzy platformę z dość dobrym zestawem Connectors.
https://www.mulesoft.com/platform/studio
Zachowuję to tutaj. Może być zbyt skomplikowane do projektu osobistego.
Można go pobrać tutaj: https://www.mulesoft.com/lp/dl/anypoint-mule-studio
Sprawdź licencję.
Huginn
Zaimplementowane w rubyonrails
https://github.com/huginn/huginn/blob/master/doc/docker/install.md
Jedna z najbardziej dojrzałych systemów integracyjnych open source.
Activepieces
Zaimplementowane w JavaScript
https://www.activepieces.com/docs/contributing/overview
node-RED
https://nodered.org/docs/tutorials/first-flow
Świetna platforma integracyjna z dość niskimi wymaganiami sprzętowymi.
Interfejs jest przemysłowy.
Niestandardowe połączenia są kodowane w JavaScript.
Windmill
https://github.com/javipalanca/spade
Inteligentne środowisko programistyczne dla agentów w Pythonie
Platforma systemów wieloagentowych napisana w Pythonie i oparta na komunikacji w czasie rzeczywistym (XMPP).
Twórz agentów, którzy mogą rozmawiać zarówno z innymi agentami, jak i z ludźmi.
Licencja MIT
StackStorm
z ich strony:
StackStorm to platforma integracyjna i automatyzacyjna dla usług i narzędzi…
StackStorm pomaga automatyzować typowe wzorce operacyjne. Przykłady to:
- Ułatwione rozwiązywanie problemów - uruchamianie na awariach systemu wykrytych przez Nagios, Sensu, New Relic i inne systemy monitoringu, uruchamianie serii testów diagnostycznych na węzłach fizycznych, instancjach OpenStack lub Amazon, oraz komponentach aplikacji, a następnie publikowanie wyników w wspólnym kontekście komunikacyjnym, takim jak Slack lub JIRA.
- Automatyczne naprawy - identyfikowanie i weryfikowanie awarii sprzętu na węźle obliczeniowym OpenStack, odpowiednie wycofywanie instancji i wysyłanie e-maila administratorom o potencjalnym czasie przestoju, ale jeśli coś pójdzie źle - zatrzymywanie przepływu pracy i wywoływanie PagerDuty, aby obudzić człowieka.
- Ciągła wdrażanie - budowanie i testowanie z Jenkins, wdrażanie nowego klastra AWS, włączanie ruchu za pomocą balansera obciążenia, a następnie przewijanie w przód lub w tył, w zależności od danych o wydajności aplikacji z NewRelic.
Luigi
https://luigi.readthedocs.io/en/stable/
Luigi to pakiet Pythona, który pomaga tworzyć złożone potoki zadań w partii. Obsługuje rozwiązywanie zależności, zarządzanie przepływem pracy, wizualizację, obsługa błędów, integrację z wierszem poleceń i wiele więcej.
BeeHive
https://github.com/muesli/beehive
Wrażliwy system zdarzeń/agenta i automatyzacji, który pozwala tworzyć własne agenty, które wykonują automatyczne zadania wyzwalane przez zdarzenia i filtry. Jest modularyczny, elastyczny i naprawdę łatwy do rozszerzenia przez każdego. Ma moduły (nazywamy je Hives), więc może interagować, komunikować się lub pobierać informacje z Twittera, Tumblr, e-maila, IRC, Jabbera, RSS, Jenkinsa, Hue - by wymienić tylko kilka.
Lista systemów integracyjnych
Licencja Apache-2.0
Nazwa systemu | Język implementacji |
---|---|
airflow | Python |
luigi | Python |
mage | Python |
node-red | Javascript/node.js |
prefect | Python |
taskflow | Python |
StackStorm | Python |
syndesis | Java |
thingsboard | Java |
Licencja MIT
Nazwa systemu | Język implementacji |
---|---|
actionsflow | Javascript/Typescript |
active_workflow | Ruby |
huginn | Ruby |
jitsu | Javascript |
novu | Javascript/Typescript |
pydoit | Python |
Licencja BSD
Nazwa systemu | Język implementacji |
---|---|
apprise | Python |
flogo | Golang |
Licencja GPL
Nazwa systemu | Język implementacji |
---|---|
automatisch | Javascript/Typescript |
beehive | Golang |
spiffworkflow | Python |
Inne licencje (sprawdź je najpierw!)
Nazwa systemu | Język implementacji |
---|---|
activepieces | Javascript/Typescript |
chainjet | Javascript/Typescript |
n8n | Javascript/Typescript |
Moje zdanie
Najbardziej lubię node-RED.
- Dobry zestaw dostępnych łączników
- Niskie wymagania systemowe (np. Raspberry PI?)
- Łatwe kodowanie w JS
- ALE Sprawdź sam, krzywa uczenia może być stroma w zależności od Twojej doświadczenia.