Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20160913-IrecommendStackStormtoyou-w4yh
Search
w4yh
September 13, 2016
Technology
3
2.9k
20160913-IrecommendStackStormtoyou-w4yh
2016/9/13に行われた、【IoT x クラウド】自動化・IoTプラットフォーム StackStorm勉強会の発表資料 「古参ヲタが語る、StackStormを今推すべき理由とアレとの違い」です
w4yh
September 13, 2016
Tweet
Share
More Decks by w4yh
See All by w4yh
中(小)規模事業者のNTP運用担当としての悩みと成功体験 / 20230407 NTP Meeting LT2
w4yh
0
260
20200319-ssmjp_ResilienceEngineering
w4yh
5
1.2k
StackStormによるCloudSlang対応とはなにだったのか
w4yh
0
590
JKD18.12-2T2_Pharosでk8s環境を楽して割り切って作る / JKD1812_2T2_Pharos
w4yh
0
930
StackStorm
w4yh
1
490
StackStorm-qpstudy201604
w4yh
0
110
ChangeManagement
w4yh
0
110
Zohoを褒めたり叱ったり.pdf
w4yh
0
69
Other Decks in Technology
See All in Technology
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
610
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
240
The Rise of LLMOps
asei
7
1.6k
Application Development WG Intro at AppDeveloperCon
salaboy
0
190
AGIについてChatGPTに聞いてみた
blueb
0
130
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
110
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
130
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
Can We Measure Developer Productivity?
ewolff
1
150
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Typedesign – Prime Four
hannesfritz
40
2.4k
Side Projects
sachag
452
42k
We Have a Design System, Now What?
morganepeng
50
7.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
How to train your dragon (web standard)
notwaldorf
88
5.7k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Transcript
古参ヲタが語る、 StackStorm を今推すべき理由とアレとの違い 2016/09/13 StackStorm 勉強会 @w4yh
自己紹介 @w4yh SIer 系データセンター 運用系インフラエンジニア / 技術企画 今の持ちネタ :StackStorm, yadifa,
Rancher, holocm, Zoho API コードはほとんど書かないです ..
今日の内容 - st2 概要 - 使用例 - 歴史のおさらい - アレとの比較
- 本質的でない Tips - 今後に期待すること - まとめ
StackStorm の概要
StackStorm の概要 ・「 Web 界の ifttt を運用に持ってきた」 ・「自動化+自動復旧 (auto re-mediation)
」 「 Day0 ~ Day2 Operation 」 ・フリーミアムな提供形態 https://github.com/StackStorm/st2 Apache License Version 2.0 ・最新は 8/31 リリースの Ver. 2.0.0
StackStorm の概要 ( 構成 ) インテグレーションパック トリガー センサー ルール (YAML)
ワークフロー (YAML) アクション (X,YAML) 公式サイトより https://docs.stackstorm.com/overview.html “ トリガーベースの IT 運用向け自動化ワークフロープラットフォーム”
StackStorm の概要 (Pack) IaaS 監視 / 運用 CM データソース 通知
CI/CD 一覧は以下サイトにて https://github.com/StackStorm/st2contrib
StackStorm の概要 標準の WebUI Action, Rule などの 参照&編集ができる ちょっと物足りない?
StackStorm 使用例
StackStorm 使用例 私 ( データセンター運用 ) の動機 , 課題 1)
複数のホストをまたぐスクリプト処理が 秘伝のタレ化していて整理したかった 2) 開発部門はフレームワークやコーディング規 則がある ( はず ) が、運用部門のスクリプトは方 式 , 品質ともバラバラだった
StackStorm 使用例 今回の環境 CentOS7.2 + StackStorm 1.6.0 KAGOYA Japan さんカゴヤクラウド
/VPS HDD モデル タイプ B (Mem 2G/4G) CentOS7 最小インストール -yum install sudo が事前に必要な以外は 手順通りでインストール OK - タイプ A(Mem 1G/2G) ではインストールが完了できず
StackStorm 使用例 • まずは Hello World
StackStorm 使用例 • 監視検知時に実行 Web サーバーのエラー検知 テストケース実施 LB を操作して再接続 LB
を操作して切り離し restart などサーバー一時対応
StackStorm 使用例 • 監視検知時に実行 --- version: '2.0' e_nagios.remediate_web_workflow: type: direct
input: - hostname - res_code tasks: lets_work: # [466, 27] action: chatops.post_message input: channel: <% $.channel %> message: "trying to take care of the web server status issue on <% $.hostname %>" on-success: - check_web check_web: # [289, 149] action: e_nagios.check_web input: hosts: <% $.hostname %> res_code: <% $.res_code %> on-success: - hubot_error on-error: - remediate remediate: # [489, 233] action: e_nagios.web_remediate input: hosts: <% $.hostname %> on-success: - check_web_full on-error: - hubot_mes_fail
StackStorm 使用例 ( 参考 ) “Stackstorm: from Nagios integration to
Openstack automation” https://stackstorm.com/2016/01/06/ stackstorm-nagios-integration-openstack-automation/
StackStorm 使用例 • ジョブ連動 Web,AP 停止 rsync 開始 DB 停止
DB dump 開始 DB 起動 テスト AP,Web 起動
StackStorm の歴史 ( おさらい )
StackStorm の歴史 ( おさらい ) Co-founder -CEO: Evan Powell 氏
-Dmitri Zimine 氏 元 Opalis の Chief Architect -MS に買収されて SystemCenter に統合されている
StackStorm の歴史 ( おさらい ) 2014/11 v0.5 公開 2015/03 v0.8.0
公開 2015/09 Cassandra Summit で 1.0 公開 Netflix の事例、 Enterprise 版 2016/03 Brocade による買収 2016/08 v2.0.0 公開
StackStorm の歴史 ( おさらい ) ドキュメントの急速な整備! v1.2 の頃まではちょいちょい 「工事中」ページがあった (
左図は v1.2 の Install using Chef の項 ) →v1.5 頃から工事中ページはなくなり、 手順などの内容のバグもほぼ無くなった
StackStorm の歴史 ( おさらい ) インストーラーがようやく安定した! Scripted Installer st2_deploy.sh →”All-In-One
Installer” install.shの登場&推奨 (v0.13でbeta, 1.0で正式) →AOIよく止まるよね テヘッ →st2bootstrap-deb.sh →AOI廃止 (v1.4) パッケージへ
StackStorm の歴史 ( おさらい ) インストール方法も安定した! ドキュメントも整備された! →始めるなら今がチャンス!!
アレと StackStorm の比較
アレと StackStorm の比較 StackStorm を導入しよう!といった場合 にありがちなリアクション 「また”なんとかスタック”?」 「既存のアレでできないの?」
アレと StackStorm の比較 • 入力 処理 出力 古典的なソフトウェアの構成 st2 のコアエンジンは
この”処理”部分に該当 UI/UX データストア
アレと StackStorm の比較 • 入力 処理 出力 そういえば今日は【 IoT× クラウド】だった
フィルタリング ビジネスロジック バックエンド選択 IoT デバイス、センサー IoT API 、コントロール クラウド メトリクス、メッセージ クラウド API 、コントロール Ansible や マクロ的自動化ツール
アレと StackStorm の比較 • 処理 フィルタリング ビジネスロジック バックエンド選択 ・運用のジョブマネージャー ・クラウドのイベントドリブン
・ビッグデータのワークフロー 求められているものは近い? 他ノード化、分散処理化で 繋ぎ役、繋ぎ方が重要?
アレと StackStorm の比較 (参考) StackStorm のワークフロー形式 ・ActionChain 単純直列なものはこれで。速い ・ Mistral
OpenStack のアレ 分岐/合流とかある場合はこれ ・CloudSlang by HPE(?) 最近追加された。今も experimental YAML ベースだが複雑なものも書ける CloudSlang の公開WFが使える
以下、様々な比較を ( ここで時間調整 ..)
ファイル監視と StackStorm の比較 例 : tripwire IMAP(sgi_fam, gamin, inotify)
・ローカル限定 ・スクリプト呼び出し ( ワンライナー )
SNMPtrap と StackStorm の比較 SNMPTrap Handler で特定の trap 受信時に コマンドやスクリプトを実行
・基本的に MIB OID による指定 ・ワンライナー ・ ( 肝心な時に trap が来ない )
それ Pla! と StackStorm の比較 例 : Plagger, Y! Pipes
・ RSS の更新をトリガーにして起動 ・” RSS マーケティング”と言われた時代も ・技術的エッセンスはほぼ同じ st2 はトリガーソースが多様 個人的には Plagger 大好きです。 Publish::TAKAHASHI!
Zabbix と StackStorm の比較 例 : Action Script 、 Custom
Alert Script ・監視エラー時や閾値超過時に実行 ・監視の初動対応 (Day2 Ops) としては同じ ・変数の埋め込みもできるので便利 ・ st2 とは連携対象、の関係
ジョブマネージャと StackStorm の比較 例 : JP1/OV 、 Tivoli 、 SystemWalker
etc.. ・無理に入れ替える理由は無いです ・経緯的にややバッチ向け 規定時間内のジョブの完了 , 途中再開 ・ st2 の強みはトリガーベースや拡張性?
CI と StackStorm の比較 例: Jenkins ・”Continuous Integration And Delivery,
The StackStorm Way” https://stackstorm.com/2015/01/20/continuous-integration-and-delivery- the-stackstorm-way/ ・既存のJenkinsがうまく動いていればそれでOK ・Dev: Jenkins 、Ops: StackStorm 、 DevOps: ? ・Packがあるので連携可能 ・詰め込みすぎたり無理させていたら検討しては 例 : ダミーファイルのコミットで運用ジョブを起動 参考: http://rebuild.fm/152/
Bigdata WF と StackStorm の比較 例 : Digdag ・分散処理の管理には簡単に書ける Digdag
Good! ・ Digdag もプラットフォーム志向なので連携拡張できそう ・ループ処理やトリガーの種類が棲み分けポイント? Workflow Hacks! アンケート「何でワークフローを書きたいか?」に 私は st2 Enterprise を念頭に「 GUI 」に手を挙げました
FaaS と StackStorm の比較 例: AWS Lambda, Google Cloud Functions,
OpenWhisk, Azure Functions ・”StackStorm vs. AWS Lambda: Event-Driven Computing vs. Event- Driven Operations” https://stackstorm.com/2014/11/20/stackstorm-vs-aws-lambda-event-driven- computing-vs-event-driven-operations/ ・AWS Lambda 良いですよね ・特定のクラウドに閉じているシステムならそのサービスを活用すべき ・敢えてあげるなら クラウドしかない、対応言語などの制約、コミュニティノイズ
ifttt と StackStorm の比較 例 : ifttt 、 Zapier ・利用シーンの違い
(st2 は運用向け ) ・特に Zapier はメール連携もできるので 拡張性も高い ・上記サービスはクラウドのみ ・ Webhook がもっと広まればいいのに ・ st2 と連携も可能
RBA と StackStorm の比較 例 : Rundeck ・一番かぶってるのはここかも ・” How
StackStorm “Stacks” Against The Competiton” https://stackstorm.com/2014/11/03/stackstorm-vs-other- software/#more-1333 ・ st2 は Sensor によって対応できるトリガーが 広くなっている、と主張している (2014/11) ・プラグイン数は 201608 時点では st2 が多い
XXX と StackStorm の比較 注 ) 銀の弾丸は無い 優越ではなく機能や利用シーンの違い 手に合うツールを選べば OK
st2 は繋ぎ役なので、共存もできるはず
StackStorm 運用時の ( 本質的でない )Tips
StackStorm 運用時の Tips (1) メールの処理を外に出す eMail Pack(IMAP,SMTP) があるが 日本語メール処理問題 件名の
JIS とかを UTF8 の YAML に マッチ条件を書くとかツラい
StackStorm 運用時の Tips st2 サーバー上に Sylpheed を EPEL からインストールして、 仕分け設定アクションで
コマンドを指定 Human readable な設定 分かりやすい reboot 時の stanley ユーザーの Sylpheed 起動のスマートな方法が まだ定まっていない
StackStorm 運用時の Tips (2)MQ…. 動いてるけど追加 / 書き込みできない →ほぼ RabbitMQ の障害
お約束の rabbitmq-server -detached ダメな場合は rabbitmqctl reset とか stop_app とか
StackStorm 運用時の Tips (3)StackStorm を監視する ( できるとは言ってない ) 内部監視 :
プロセス、ポート 外部監視 : WebUI 、ダミージョブのログ
st2ctl status の出力例 その他の関係プロセス: rabbitmq mongod postgres gunicorn nginx 真面目に監視すると項目がかなり多い
…外部監視に集約する手もあるかも …冗長時の health check も考慮が必要
( 参考 : 公式サイトの HA Deploy ガイド ) nginx(proxy) で
振り分けを行い、 action runner など 個別処理を振り分ける fork のような形で action runner 側を stateless っぽく 構成している
StackStorm 運用時の Tips 雑に作ると中央集権な SPOF になりやすい stanley の ssh
鍵を ssh-copy-id して ansible や serverspec もキックするとか (st2 run core.remote も stanley(st2.conf 内の system_user) で実行される ) itamae local 等の (chef-solo 的な ) コマンドで S3 のようなレ ポジトリから落としたレシピを実行する自立的な構成も検討
StackStorm 運用時の Tips SPOF な構成 自立型
StackStorm 運用時の Tips 参考 : Netflix の Winston http://techblog.netflix.com /2016/08/introducing-winston
-event-driven.html
今後に期待すること
Brocade さんに期待すること このまま順調な開発を! 2016/03/29 買収発表 2016/04/20 v1.4 リリース 2016/06/27 v1.5
リリース 2016/08/10 v1.6 リリース 2016/08/31 v2.0 リリース 買収発表後に Powell さんが Community Slack に降臨した時に 無言で VyOS のロゴを貼ったのはほんとすまんかった
Brocade さんに期待すること • 興味深い FAQ https://stackstorm.com/2016/04/11/broc ade-acquisition-faq/ Q: Did you
consider open-sourcing Flow, or other proprietary StackStorm components? A: We are considering doing so as part of broader decision of what is included in commercial offering, but a decision haven’t been made yet, so we don’t know.
Brocade さんに期待すること 敷居を下げる ・サンプルユースケースの追加 CloudSlang のサンプルとか良さそう ・ Automation Happy
Hour(Webinar) の再開 ・デプロイ方法の簡略化 AMI などのイメージ提供 (v0.12.2 まで有った ) ・いっそ SaaS 化?
Community に期待すること 日本でハネるには足りない Pack が ・ Zabbix ( 内部変数多すぎて大変? )
・ Serverspec ( 実質 rake コマンドだから難しい? ) ・ itamae 何よりまずは使ってみましょう!
まとめ
課題は解決したのか 1) 複数のホストをまたぐスクリプト処理が 秘伝のタレ化していて整理したかった →ワークフローによる制御で YAML 化され 読みやすさ、書式の統一感も達成できそう 処理やノードを跨いで変数を渡せるのも大きい •
2) 開発部門はフレームワークやコーディング規則があるが、 運用部門のスクリプトは方式 , 品質ともバラバラだった → Pack があるものは Pack の機能で対応できる スクリプト呼び出しや run では自作スクリプトが残るので、 さらなる Pack 化でフレームワークとして定着させたい
さらなるバリュー 気付き : 自動化を行うと「よく気がつく人」 という属人依存をあぶりだしてテストの精度 向上が進んだりする 検討中 : 障害時の対応を自動化できるのであ れば”頻繁に小さく対応する”ように閾値を安
定値近傍で設定しても良いのでは?
さらなるバリュー テスト重要 grep 先ファイルが無く メッセージが出ているが status:succeeded failed: false
情報源 (Slack) ・ Invite フォーム https://stackstorm.typeform.com/to/K76GRP ・ Stackstorm-Community
https://stackstorm-community.slack.com/ ・アーカイブ https://stackstorm-community.slack.com/archives/community/
情報源 ( 直近のイベント NFD12) https://stackstorm.com/2016/08/2 3/summary-brocade-workflow- composer-nfd-12/ Dmitri さんが説明している動画も
情報源 ( 直近のイベント NFD12)
今日の差し入れ 圓 ( 六調子酒造 ) 長期貯蔵の米焼酎 (40 度 )