APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

その名はStackStorm

こんにちは、APCの古木です。

世間ではワールドカップで盛り上がっていますが、
いかがおすごしでしょうか。

日本代表の戦績が気になるところですが、秋田犬「マサル」のその後も気になります。

先日、唐突にStackStormPack評価の記事をアップしました。
肝心な話が抜けていましたので、イベントドリブンな自動化ツール「StackStorm」
(以下、ST2)の話をちょこっとまとめておきたいと思います。
f:id:its-tec-stackstorm:20180627224409j:plain

■ST2とは

OSSのイベント駆動型自動化プラットホーム。
ルールに基づいてシステムを「連携」させるための
ワークフローエンジン。

IF (This) THEN (That) for DevOps BY Dmitri Zimine

スタートアップ企業だったところを、Brocadeさんが買収後、
紆余曲折を経て現在はExtreme Networksさんのところに
落ち着いているようです。
 

■内部構造

f:id:its-tec-stackstorm:20180627234640j:plain

ワークフロー処理をイベントドリブンに行うのがST2の特徴です。

どんな仕組みで動作しているかの少し説明します。
※詳細な挙動については公式ドキュメントのこのあたりを参照してください。

①センサーは外部システムをポーリング、
 もしくはイベントを待ち受けています。

②外部システムでイベントが発生すると、
 センサーがキャッチして、センサーは
 トリガーを引きます。

③ルールはトリガーを検知、評価して、
 アクションかワークフローを実行します。

④ワークフローが実行された場合、内部で分岐や
 リトライなどを経て最終的になにかしらの
 アクションが実行されるのでこのような矢印に
 なっています。

アクションはWebhookを投げたり、メールを送ったり
特定の処理を行います。

ルールはトリガーとアクションの紐付でもあります。
これがST2内での一連の動作になります。

Twitter Packの記事にある「Pack」はセンサー、トリガー、
アクション、ワークフロー…連携するシステムごとに まとめたものになります。
ST2はこれらのPackを追加導入することで機能を拡張します。

■インストール

マシンの必要スペックの目安です。

Testing Production
Dual CPU Quad core CPU
2GB RAM 16GB RAM
10GB Storage 40GB Storage
Recommended EC2: t2.medium Recommended EC2: m4.xlarge
  • Nginx
  • mongoDB
  • RabbitMQ
  • Mistral
  • PostgreSQL …などなど。導入コンポーネントが多いです。

スペック低いとビルドに失敗しますので、出し惜しみしない方がいいです。
うちの連中も何名かインストールの時にトラぶってました。
t2.medium以上、なんならはじめからProducctionのスペックを
用意するのがおすすめです。

具体的なインストール手順は、以下の通り色々用意されています。

  1. マニュアルで一つ一つコンポーネントをインストール
  2. オールインワンのインストールワンライナー
  3. AnsibleのPlaybook
  4. Vagrantの仮想マシン

ちなみに、ワンライナーだとこんな感じになります。
# curl -sSL https://stackstorm.com/packages/install.sh | bash -s -- --user=hoge --password='hoge'

AnsibleのPlaybookを使うパターン、Vagrantの仮想マシンについては
こちらのイカすブログ(イカじゃなく金魚ですが)を参照いただければと存じます。

今日のところはこれまで。
これであなたも立派なStormerです。

それでは、また次回。