Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IXで運用自動化にStackStormを導入した話

6,974 views

Published on

2017-03-23(Thu) StackStorm勉強会 第2回 発表資料

Published in: Software

IXで運用自動化にStackStormを導入した話

  1. 1. INTERNET MULTIFEED CO.Copyright © 2017 インターネット・エクスチェンジで 運用自動化にStackStormを導入した話 Shu Sugimoto <sugimoto@mfeed.ad.jp> JPNAP / INTERNET MULTIFEED CO. 2017-03-23(Thu) @StackStorm勉強会 第2回
  2. 2. INTERNET MULTIFEED CO.Copyright © 2017 今日の内容 • 弊社のインターネット・エクスチェンジ(IX)における業務の自動 化に対する取り組みの中で、StackStormを採用するに至った経 緯と、実際に使い始めて分かったことを共有したいと思います 2
  3. 3. INTERNET MULTIFEED CO.Copyright © 2017 JPNAP • アジア最大級のIX • 色々な組織のネットワークを相互接続する場所を提供する • お客様にL2スイッチのポートを提供 • 120ネットワーク以上が接続、トラフィック 930Gbps 3 IX BGPルータ L2SW BGPルータ BGP 経路交換とトラフィック交換
  4. 4. INTERNET MULTIFEED CO.Copyright © 2017 本日の「運用自動化」の対象 • お客様に提供するポートの開通(SO: Service Order)作業を自動 化する話 • ネットワークの運用(監視や障害対応等)を自動化する話 4 JPNAP Backbone お客様 ルータ 光スイッチ L2SW(主系) L2SW(副系)
  5. 5. INTERNET MULTIFEED CO.Copyright © 2017 取り組み開始当時(2年前)の状況 • 何もかもが手動だった… • 「自動化だ!」→ 取り組み開始 • ExcelをWebシステム(DB)にするところから着手 • 既存の設備管理DBも刷新 • ネットワーク機器に対する操作はスクリプト化 5 設備管理DB xls …… …… 開通パラメーター 手順書 ネットワーク機器 記入 作成 設定実施データ投入 承認必須
  6. 6. INTERNET MULTIFEED CO.Copyright © 2017 1年後の状況と、悩み • 個々のシステムやスクリプトは出来上がってきた しかし… • 「これらを連携させて…あれ?」→ 課題 • 処理の流れをどう実装する? • 複数のシステムをどうやって繋ぎ合わせよう? 6 新・設備管理DB パラメーターDB config投入 スクリプト 既存システム ? … … expect ここを起点として… 連携させて… DBも更新して… 自動設定したい
  7. 7. INTERNET MULTIFEED CO.Copyright © 2017 1年後の状況と、悩み → 救世主あらわる? • 我々に必要だったもの • 複数のシステムをつなぎ合わせる「真ん中」的な存在 • フローを実装するところ • APIの呼び出し元/先を統一して疎結合にしたい • 同時実行制御もしたい • 同じスイッチに対して同時にconfigに行かない • 「StackStormなるものがあるらしい…」 7
  8. 8. INTERNET MULTIFEED CO.Copyright © 2017 StackStormを適用してみたら、こうなった • 課題は一挙に解決!導入決定 • st2は複数のシステムを「つなげる」のに最適なソリューション 8 Policyで同時実行制御可能 CLIツールは別にPack/Actionを 作成して呼び出し → 簡単にワークフローに組み込めるフローの開始はActionChainのWebhook呼び出しに統一 → エントリポイントが明確化 処理の流れはActionChainとして実装 → 記述が標準化された形式になり、流れを理解しやすい → どのようなフローがあるかActionChainを見れば把握できる 既存システム向けの処理を Packとしてまとめて実装 → 再利用が可能 X Pack SO処理 Pack 1. --------- 2. --------- 3. --------- 4. --------- ●Webhook trigger ActionChain config投入 script Pack Action https API https API https 各種システムのAPIへは ActionChainからの アクセスに統一 → 必要なAPIの洗い出しが容易に
  9. 9. INTERNET MULTIFEED CO.Copyright © 2017 StackStormを導入した利点 • アーキテクチャ全体の見通しがよくなった • ワークフローの実装方法が標準化 • システム間のAPIの呼び出し関係が明確化 • 開発効率が向上した • キューイング等を自前実装する必要がなくなった • システムに実装するAPIを設計しやすくなった • Packの開発はCIフレンドリー • ワークフローもGitHubでPR, Reviewが出来る • 将来的な機能拡張を考えやすくなった • 「型紙化」されたので、同じことを繰り返せばいい • ex.) このシステムとも連携したい… →まずはPackを作り、使う側のワークフローに埋め込む 9
  10. 10. INTERNET MULTIFEED CO.Copyright © 2017 実際に使ってみた感想・Tips • 学習コストはそこそこ高い • Packの作り方は結局覚えることになる • Workflow Designerは使ってないので未知数 • チーム内で使えるPack/Actionが揃ったらWorkflowを作る敷居 が低くなる(かも?) • バージョンアップは早いが対応は比較的簡単 • 1.5 -> 1.6 -> 2.0 -> 2.1 -> 2.2 問題なし • 自前Docker image + Content Roll-over Upgrade • 公式ドキュメントのUpgrade notesを見ればOK • st2にはテンポラリデータ以外は保存しない! • コミュニティがオープンで活発 • Slackで開発者との距離が近くスピーディに問題を解決できる 10
  11. 11. INTERNET MULTIFEED CO.Copyright © 2017 次にやりたいこと • アラート対応等の自動化に活用する • e.g.) syslogを受けて特定キーワードにマッチした場合にこの機 器とこの機器でこのコマンドを打って結果を保存してメールして chatに通知する • swatch+独自スクリプトをst2に巻き取り、これを標準的なプ ラットフォームにする → 自動化が促進される! • NW機器に対する操作をActionとして定義し再利用しやすくする • 今は従来の手順書の内容を「config投入スクリプト」がそのまま 再現している=Workflowを内包している状態 • 各々の操作(e.g. I/Fの状態確認)をパーツにしてst2のWorkflow として組み立てる → パーツ単位で再利用が可能になる → 自動 化が促進される! • 結局のところ自動化で面倒くさいのは「telnetしてparseして 云々」の部分 • st2自体の運用(正常性確認とか)を何とかする 11
  12. 12. INTERNET MULTIFEED CO.Copyright © 2017 12 Thank you. Questions?
  13. 13. INTERNET MULTIFEED CO.Copyright © 2017 Appendix • Self-build Docker image • https://hub.docker.com/r/s2ugimot/st2 • https://github.com/s2ugimot/docker-st2 13

×