StackStormの前振りを書いたが、StackStorm とは何ものぞというのは書いていなかった。これは
IFTTT for Ops ツールだ。もっというと、Event-Driven workflow automation engine だ。カスタムで書いているジョブスクリプトをworkflow, trigger, action recipe に分解し、保守しやすくできる。
Flexible Job Scheduler であることは間違いないが、基幹システムのジョブを管理するようなものではなく、運用タスクの一部自動化、CI/CDのためのworkflow engine だ。特徴は IFTTT とあるとおり、syslog, snmp trap だけではなく、いまどきのweb serviceのイベントをトリガできる。たとえば、gmail mailbox にメールが到着したとか、AWS S3 にオブジェクトが作られたとか、VMware の store に VM が生成されたとかである。また、ワークフローに記述されるアクションもいわゆる IFTTT のレシピ化されていて簡単に構成することができる。たとえば、スイッチを構成する場合に ssh で接続して CLI を叩き込むのではなく、NETCONF でエレガントに設定可能だ。たとえば、
こんなことも簡単にできる。
このように、トリガとポリシエンジン、アクションレシピ、mistral でも使用されている DSL(YAML) で記述されたワークフローから構成されるのが StackStorm だ。
長い動画(かつ英語)だが、わかりやすい説明が
これ。こっちの
blogもいいかも。
ちなみに NETFLIX は python のカスタムスクリプトで運用してきたが、AWS Reboot のきっかけで StackStorm を利用している。
Cassandra summit での
NETFLIX のプレゼン動画と
プレゼン。
StackStorm を聞いて Tivoli Enterprise Console を思い出した話は
ここに。イベントをトリガする部分は TME agent でもできるし、rule も TEC の
rule を prolog で書けば対応できる。しかし、ワークフローそのものはルールから呼ぶカスタムスクリプトに embedded されていた。
同様に Brocade Network Advisor もイベントトリガを持っている。しかし、こちらもカスタムスクリプトにすべて任せてしまっている。