Upgrade to Pro — share decks privately, control downloads, hide ads and more …

a_CI_like_approach_to_netwoek

 a_CI_like_approach_to_netwoek

[July Tech Festa 2020 登壇資料]
昨今のインフラへの自動化が叫ばれる中で、様々のものが世に出てきています。
構成管理ツールのAnsibleが非常に注目されていますが、今回はネットワークのテストにフォーカスし、実際に抱える課題と、処方箋、そしてその効果について、デモを交えてお話ししました。

[当日の動画]
https://www.youtube.com/watch?v=TxrGClTO2jQ

More Decks by AP Communications Co., Ltd.

Other Decks in Technology

Transcript

  1. 自己紹介 • Name: 田中 進 • Company: 株式会社エーピーコミュニケーションズ • Job:

    ネットワークテスト自動化アプライアンス NEEDLEWORKを作っています。
  2. 発生した損失 • 稼働 ◦ システム停止をリカバる手運用作業 ◦ 障害報告 • システム停止の損失 ◦

    機会損失 ※規模によるが年間売上を一時間あたりで割ると、1時間あたり、数百万とか、数千万とかになる。  ECサイト売上ランキングとか見ると、機会損失って大きいと感じますね。
  3. 何が悪かったか振り返る(整理) 患部はここ ・依頼が多すぎる 作業量 ・作業ミス 作業 理由はこれかな ・人の処理量、与えられた工数を超過してる。 作業量 ・脳内試験

    ・貧弱な目grep ・簡単にトライアンドエラーできない 作業 ・チェックが機能してない 承認 ・形骸化 ・脳内試験 承認
  4. 何をCIする? • 正直コンフィグ全体は難しい ◦ すべての機能を確認できるようにしなくてはならない? ◦ やるなら特定の設定のみにフォーカスしたい。 • ansibleのplaybookなら? ◦

    playbookなら特定の設定のみにフォーカスして定義可能 **AnsibleのplaybookでACLを管理する** "動く検証されたマージ済みコード(バイナリ)がほしい"のと同様に、 "動く検証された設定ファイルがほしい"
  5. • 手段は様々 ◦ pyATS・・・機器の状態確認のイメージ ◦ batfish・・・コンフィグ解析して独自ロジックで意図した通信が通るか判定する。 (脳内テストの自動化のイメージ) ◦ 実際にパケットを流す •

    今回は最も本番環境に近い、実際に機器にデプロイしパケットを流す 何をもって検証するか? "実際に機器にデプロイ"することで構文チェックを通す "パケットを流す"ことによって、要件の通信、既存の通信のチェックができる
  6. 試験実装(構成) gitlab server gitlab runner + Ansible 2.push 1.playbookを編集 3.マージ

    4.CI開始 5.コンフィグ投入 6.テスト パケット 送受信
  7. Appendix: 今日話したプロダクトのリンク集 • pyATS ◦ URL:https://developer.cisco.com/pyats/ • batfish ◦ URL:https://www.batfish.org/

    • NEEDLEWORK ◦ URL: https://www.ap-com.co.jp/ja/needlework/ • gitlab ◦ URL: https://www.gitlab.jp/ • Ansible ◦ URL: https://www.ansible.com/