O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

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

7.828 visualizações

Publicada em

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

Publicada em: Software
  • Seja o primeiro a comentar

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

×