セルフホストされた統合システムの概要

統合システムのオプション

目次

統合システム(https://www.glukhov.org/ja/post/2024/11/selfhosted-integration/ “統合システムの比較”)は、多くの有料接続モジュールといくつかの無料モジュールを備えた商用のもの、または少し奇妙なライセンス付きの無料のもの、またはセルフホスティング用に準備済みでないものなど、さまざまな形態があります。

利用可能な統合システムは非常に多くあります…

サーバールームでよく統合されたシステムのユーザーの幸せな女性

使用例

以下のようなケースに適しています。

  • 異なる[SNS]プラットフォーム間の統合を構築する
  • IoTイベントでの通知の設定
  • 完全なPOSSEシステムの構築

POSSEとは何なのか気になっている場合は… POSSEは、Publish (on your) Own Site, Syndicate Elsewhereの略で、自分のサイトにまず投稿し、その後、コピーを公開したり、リンクを共有したりして、第三者(SNSのシロウトなど)に投稿を公開する習慣です。これにより、閲覧者は直接コンテンツとやり取りできるパスが提供されます。

また、IoTインターネット・オブ・シングスのことで、忘れてしまった場合は確認してください。

クラウドベース

ユニバーサルなプラットフォーム

AWSのSNS、SQS、EventBridgeAppFlowなどがあります。

カスタマイズされたもの

選択肢は豊富です。

他にもあります。

非常に便利ですが、費用がかかる可能性があります。

セルフホストされた統合システム

Apache

Apacheには多くのプロジェクトがあり、統合分野ではNifiを確認してください。

MulesoftのESB

このMule ESBとスタジオ、他いくつかのツールは、コネクタの豊富なセットを持つプラットフォームを形成しています。

https://www.mulesoft.com/platform/studio

ここに残しておきます。個人プロジェクトでは過剰かもしれません。

ここからダウンロードできます: https://www.mulesoft.com/lp/dl/anypoint-mule-studio

ライセンスを確認してください。

Huginn

Ruby on Railsで実装されています。

https://github.com/huginn/huginn/blob/master/doc/docker/install.md

最も成熟したオープンソース統合システムの一つです。

Activepieces

JavaScriptで実装されています。

https://www.activepieces.com/docs/contributing/overview

node-RED

https://nodered.org/docs/tutorials/first-flow

ハードウェア要件が比較的低く、非常に優れた統合プラットフォームです。

インターフェースは業界標準に近いです。

カスタム接続はJavaScriptでコード化されます。

Windmill

https://github.com/javipalanca/spade

インスタントメッセンジング(XMPP)に基づくPythonで書かれたマルチエージェントシステムプラットフォーム。

他のエージェントや人間とチャットできるエージェントを開発できます。

MITライセンス

StackStorm

https://stackstorm.com/

彼らのサイトより:

StackStormは、サービスとツール間の統合と自動化のためのプラットフォームです…

StackStormは、一般的な運用パターンを自動化するのに役立ちます。いくつかの例は以下の通りです:

  • 診断の支援 - Nagios、Sensu、New Relic、その他の監視システムでシステムの障害を検出すると、物理ノード、OpenStack、またはAmazonのインスタンス、アプリケーションコンポーネントに対して一連の診断チェックを実行し、SlackやJIRAなどの共有コミュニケーションコンテキストに結果を投稿します。
  • 自動的な修復 - OpenStackのコンピュートノードでハードウェアの故障を識別し、確認し、適切にインスタンスを避難させ、潜在的なダウンタイムについて管理者にメールを送信します。何か問題が発生した場合は、ワークフローを凍結し、PagerDutyを呼び出して人間を覚醒させます。
  • 連続的なデプロイ - Jenkinsでビルドおよびテストし、新しいAWSクラスターをプロビジョニングし、ロードバランサーでトラフィックを有効にし、NewRelicのアプリケーションパフォーマンスデータに基づいてフォワードロールまたはバックロールを実行します。

Luigi

https://luigi.readthedocs.io/en/stable/

Luigiは、複雑なバッチジョブのパイプラインを構築するのに役立つPythonパッケージです。依存関係の解決、ワークフロー管理、可視化、失敗の処理、コマンドライン統合、その他多くの機能を処理します。

BeeHive

https://github.com/muesli/beehive

イベント/エージェントと自動化システムで、イベントやフィルターによって自動的にタスクをトリガーする独自のエージェントを作成できる柔軟なシステムです。 モジュール性があり、柔軟性があり、誰にとっても簡単に拡張可能です。 モジュール(私たちがハーヴィーと呼ぶ)があるので、Twitter、Tumblr、メール、IRC、Jabber、RSS、Jenkins、Hueなど、いくつかのシステムとインターフェースできます。

統合システムのリスト

Apache-2.0 ライセンス

システム名 実装言語
airflow Python
luigi Python
mage Python
node-red Javascript/node.js
prefect Python
taskflow Python
StackStorm Python
syndesis Java
thingsboard Java

MIT ライセンス

システム名 実装言語
actionsflow Javascript/Typescript
active_workflow Ruby
huginn Ruby
jitsu Javascript
novu Javascript/Typescript
pydoit Python

BSD ライセンス

システム名 実装言語
apprise Python
flogo Golang

GPL ライセンス

システム名 実装言語
automatisch Javascript/Typescript
beehive Golang
spiffworkflow Python

その他のライセンス(まず確認してください!)

システム名 実装言語
activepieces Javascript/Typescript
chainjet Javascript/Typescript
n8n Javascript/Typescript

私の意見

私はnode-REDが最も好きです。

  • 利用可能なコネクタの豊富なセット
  • 低システム要件(ラズベリーパイなど)
  • JavaScriptでの簡単なコーディング
  • ただし、学習曲線は、あなたの経験に応じて急峻である可能性がありますので、ご自身で確認ください。