Huginn:シンプルな統合プラットフォーム

API、サービスアーキテクチャ、クラウドソリューションの世界では、プログラミングなしで多くの機能を利用できます。 ただし、企業は依然として、日常的な統合タスクに貴重な開発者の時間を浪費しています。 私たちは、開発の参加なしに、できるだけ早く新しいマーケティングサービスに接続したり、仮説をテストしたりできるプラットフォームの1つについて話したいと思います。





みなさんこんにちは! 私の名前はYura Buylovで、CarPriceの開発を担当しています。 同社は動的に開発しているため、実験の速度が重要な役割を果たしています。 今日は、外部サービスとの統合のために、同じタイプの単純なタスクの無限のストリームから開発者を救う単純なツールについてお話したいと思います。



モチベーション。 なぜフギン



市場には、管理者がアクションの単純なチェーンを構築できるサービスが多数あります。たとえば、次のとおりです。



  1. 顧客の苦情
  2. 事実を日記に記録する
  3. Telegramにメッセージを送信します






私たちはすでにそのようなタスクにZapierを積極的に使用していますが、セルフホスティング、スケーラビリティ、および処理されたタスクの数の制限がないことが重要です。 そこで、マネージャーと開発者の両方に役立つ、シンプルで迅速な統合のためのツールを探し始めました。 アプローチ自体は新しいものではなく、EIP(エンタープライズ統合パターン)の単純化された実装に似ています。 当然、「流血の企業」の世界からいくつかのソリューションを試しました(Mulesoft、Jboss Fuse、WSO2、Servicemix、Corezoid)。 専有ソフトウェアのベンダーと交渉しました。 それはそうではありません:長く、高価で、複雑で、不快です。



それで私たちはフギンに来ました。





Huginnを使用する場所



資本の統合のために、システムパフォーマンスに不可欠な各サービスのアダプターを備えたRabbitMQを使用します。



キューサイズ、サービスの可用性、およびコンポーネントの状態の監視が構成されています。 ただし、このようなスキームで変更を加えてドキュメントを最新の状態に保つことは有益ではありません。





Huginnを使用して、高い信頼性を必要としない実験とシンプルで高速な統合を実現しています。





フギンとは



当初、Huginnは、インターネット上でタスクを実行するエージェントを起動するために考案されたプラットフォームです。 ページの解析、イベントの追跡、およびユーザーに代わってアクションを実行します。 エージェントはイベントを作成および受信し、チェーンに沿って互いにイベントを渡します。



Huginnは、Pipelineのカスタム要素として使用できる多くの組み込みエージェントを提供します。 エージェントはスケジュールに従って実行したり、他のエージェントからイベントを受信したり、結果を処理してチェーンのさらに下に転送したりできます。





完全に統合するには、データベース内の変更を追跡できるエージェントのみが必要であり、Huginnでエージェントを作成するのが非常に便利なので、自分で作成しました。

huginn_mysql2_agent



判明したように、3つのエージェントでほとんどのケースをカバーしています。





使用例



Telegramチャネルでの新しいオークションの公開



以下は、実装された最初のチェーンの1つです。 エージェントはcreated_atを使用してデータベース内の新しいオークションを毎分チェックし、内部APIを介して車に関するすべての情報を受信し、Telegramにメッセージを送信します。







最も注目すべきことは、インターフェースが直観的であり、現在の構成がグラフの形で視覚化されることです。 したがって、そのような統合は開発リソースを必要とせず、管理者とインターネットマーケティング担当者の努力によって行われます。



パーソナルSMSの推奨事項



以下は、smsによって個人向けの推奨事項をディーラーに提供する実験の例です。 新しいオークションごとに、内部推奨システム(LSTM RNN)のAPIに従ってディーラーのリストを取得し、データベースから電話番号を取得し、urlshortenerを使用してオークションへのリンクを短縮し、外部メールサービス経由でSMSを送信します。







マーケティングツールとの統合



以下は、マーケティングツールとの統合スキームの一部である、exponeaサービスです。 その実装中に、単一の開発者が傷つけられることはありませんでした-単一のマネージャーによる実装とサポート。







展開して試してください



Huginnを試す最も簡単な方法は、Dockerにデプロイすることです。



docker run -it --name huginn \ -p 3000:3000 \ -e ADDITIONAL_GEMS="huginn_mysql2_agent(git: https://github.com/yubuylov/huginn_mysql2_agent.git),huginn_jsonapi_agent(git: https://github.com/yubuylov/huginn_jsonapi_agent.git)" \ huginn/huginn
      
      





http:// localhost:3000 /

ログイン:admin、パスワード:password



外部MySQLデータベースを使用し、Webインターフェースとイベントハンドラー用に異なるインスタンスを個別に実行できます。これにより、拡張が容易になります。



ご清聴ありがとうございました。 この投稿が役に立つことを願っています。そして、Huginnが誰かがクールなプロジェクトのために少し時間を空けるのを助けるでしょう!



便利なリンク



Of.repository

ドッカーへのインストール

→実稼働環境

エージェントのリスト



All Articles