Slide 1

Slide 1 text

© BIGLOBE Inc. 2017 1 ネットワークオペレーション ⾃動化への道のり BIGLOBE Inc. Toshiya Mabuchi © BIGLOBE Inc. 2017

Slide 2

Slide 2 text

© BIGLOBE Inc. 2017 2 l⾺淵 俊弥(MABUCHI Toshiya) pビッグローブ株式会社 システム基盤本部 l現在のお仕事 pASネットワーク(AS2518)の設計/運⽤全般 ØPeering Øネットワーク設計 Ø各種回線の開通 Ø機器/機能検証 Ø⾃動化/可視化ツールの開発 など… ⾃⼰紹介

Slide 3

Slide 3 text

© BIGLOBE Inc. 2017 3 ShowNetも⾃動化!

Slide 4

Slide 4 text

© BIGLOBE Inc. 2017 4 ISPにおける ⾃動化の話をしていきます 今回は!

Slide 5

Slide 5 text

© BIGLOBE Inc. 2017 5 BIGLOBEがピアリングするまで l Peering情報のやりとり l ⼿順書/Script作成 l ⼿順書 Script査閲/承認 l 作業の実施 p ⼿順書印刷 p 各種確認ツールの起動 p ログイン p 事前確認 p 設定 p 事後確認 p コンフィグ保存 l 作業完了報告/資料更新

Slide 6

Slide 6 text

© BIGLOBE Inc. 2017 6 現状の課題 l作成 p作成/置換ミスを誘発する可能性がある⼿製の⼿順書 l査閲/承認 p⼿順書/スクリプトが⻑く, 査閲に時間がかかってしまう l作業 p確認ポイントが多く、コンフィグ投⼊/切り戻しにも 時間がかかる

Slide 7

Slide 7 text

© BIGLOBE Inc. 2017 7 何よりも… ピアリングをしていく上で、 「作成/査閲/査閲をする時間」 に時間は割きたくない 極⼒、⾃動化/省⼒化をしたい

Slide 8

Slide 8 text

© BIGLOBE Inc. 2017 8 ⾃動化の前提条件 l作業の全⼯程を極⼒省⼒化できる l事前の作業レビューが可能 l作業時のログを必ず残せる

Slide 9

Slide 9 text

© BIGLOBE Inc. 2017 9 自動化できそうな所を考える l ⼿順書/コンフィグ作成 p⼿順の抽象化で確認項⽬の差を吸収 p⼿順書⾃体の⾃動で作成 l査閲/承認 p⾃動化は難しいが, 査閲ポイントを絞ることで⾼速化 l設定作業 p既存のOSSツールを利⽤することで、 確認と設定を⾃動で実施

Slide 10

Slide 10 text

© BIGLOBE Inc. 2017 10 NAPALM使えば実現できそう!

Slide 11

Slide 11 text

© BIGLOBE Inc. 2017 11 l Pythonのネットワーク設定⽀援ライブラリ pマルチベンダー環境下においての⾃動化に対応 ØEOS/JUNOS/IOS-XR/NXOS/IOS/ FortiOS/Pluribus/PANOS/MikroTik/VyOS に対応(2017/06/05現在) p確認/設定が抽象化されているので全機種共通の 記述で使える NAPALM? Network Automation and Programmability Abstraction Layer with Multivendor support

Slide 12

Slide 12 text

© BIGLOBE Inc. 2017 12 NAPALMの抽象化例 -既存の機器出⼒結果- IOS-XR JUNOS • プログラムに認識させるための正規化がかなり厳しい • 採⽤機器毎にNETCONFやexpectから欲しい情報を それぞれ抜き出さないといけない • プログラムに優しい出⼒結果ではない

Slide 13

Slide 13 text

© BIGLOBE Inc. 2017 13 NAPALMの抽象化例 -既存の機器出⼒結果- Napalm • 取得も設定もpythonプログラム上 • 値は全てJSON • 抽象化された結果を返す • JUNOSもIOSXRも共通 • プログラム上の関数も勿論共通

Slide 14

Slide 14 text

© BIGLOBE Inc. 2017 14 実際に使って⾃動化してみました

Slide 15

Slide 15 text

© BIGLOBE Inc. 2017 15 システムの概要 作業者 ⼿順書 査閲者 Router1 Router2 状態確認 設定変更 ⼿順書解析 ⼿順書作成/実⾏ Webから⼿順書の作成 確認結果から継続/中断の判断 設定反映の実⾏ 対象機器 設定するパラメータ 状態確認する内容 ⼿順書を解析 確認/設定はnapalm 結果を作業者に返す

Slide 16

Slide 16 text

© BIGLOBE Inc. 2017 16 ⾃動設定の設定作業例 lISPのPeering作業を想定 p今回はPrivatePeerの場合 Ø事前状態確認 ØInterfaceの設定 ØBGP Policyの設定 ØBGP Neighborの設定 Ø事後状態確認 AS65002 (GoBGP) AS65001 (JUNOS) 確認後、問題なければBGP設定 ・Hostname ・Version ・CPU/Memory ・Interface ・Route ・BGP BIGLOBE側

Slide 17

Slide 17 text

© BIGLOBE Inc. 2017 17 ⼿順書(シナリオ)ファイルの設定例 Validatate 事前確認する項⽬を記述する ・ホスト名とバージョン ・BGP状態 ・CPU/Memory 等…

Slide 18

Slide 18 text

© BIGLOBE Inc. 2017 18 ⼿順書(シナリオ)ファイルの設定例 設定投⼊編 設定したパラメータと Configのテンプレートから Configを作成し、投⼊

Slide 19

Slide 19 text

© BIGLOBE Inc. 2017 19 ⼿順書(シナリオ)ファイルの実⾏結果例 [状態の確認] ・設定したValidateと実機器の 状態が合っているか確認 ・invalidな状態があれば、 詳細を表⽰して、指⽰を待つ

Slide 20

Slide 20 text

© BIGLOBE Inc. 2017 20 ⼿順書(シナリオ)ファイルの実⾏結果例 [設定投⼊] ・設定したパラメータと Configのテンプレートから Configを作成し、投⼊ [既存コンフィグとの差分を表⽰] ・問題なければ投⼊ ・戻す場合はコンフィグを ロールバックして終了

Slide 21

Slide 21 text

© BIGLOBE Inc. 2017 21 https://goo.gl/aun4Cg デモ

Slide 22

Slide 22 text

© BIGLOBE Inc. 2017 22 l設定作業は現実的な環境下(マルチベンダ) においても、かなりの⾼速化ができた p2時間 → 5分! lコアの部分(抽象化)はNAPALMがある p⾃社に適合する形に適合させるだけでOK l勢いのあるOSSを使う p要望も取り込んでくれるかも Ø私もContributeしました! J 良かったこと

Slide 23

Slide 23 text

© BIGLOBE Inc. 2017 23 lNAPALMが使えない場合がある pサポートするOSのバージョンが⽐較的新しめ ØIOS-XR 5.1.0以上からサポートなど – http://napalm.readthedocs.io/en/latest/support/index.html pNETCONFやXML agentを有効にしないと 実施できない場合がある Ø各ルータに追加の設定が必要になる 超えるべき壁もまだ沢⼭

Slide 24

Slide 24 text

© BIGLOBE Inc. 2017 24 lYAML形式の⼿順書⾃体は⼿書き p作業者への学習コストが⾼め l作業は⾃動化できても、承認依頼や⼿順 書管理は既存のまま lNAPALMは発展途上中 pまだ微妙に⾜りない機能もあったりする 超えるべき壁もまだ沢⼭

Slide 25

Slide 25 text

© BIGLOBE Inc. 2017 25 ここで終われない! Extra round.

Slide 26

Slide 26 text

© BIGLOBE Inc. 2017 26 lYAML形式の⼿順書⾃体は⼿書き p作業者への学習コストが⾼め l作業は⾃動化できても、承認依頼や⼿順 書管理は既存のまま lNAPALMは発展途上中 pまだ微妙に⾜りない機能もあったりする (再掲)超えるべき壁もまだ沢⼭

Slide 27

Slide 27 text

© BIGLOBE Inc. 2017 27 作業者 ⼿順書 査閲者 Router1 Router2 状態確認 設定変更 ⼿順書解析 ⼿順書作成/実⾏ ⼿書きでなくWebから⽣成 Webでそのまま査閲/承認 さらにWrapするWebGUIを開発 WebGUI (Django) NAPALM 実行ツール ⾃動通知で やりとりのロスを減らす

Slide 28

Slide 28 text

© BIGLOBE Inc. 2017 28 YML形式の手順書をWebから生成

Slide 29

Slide 29 text

© BIGLOBE Inc. 2017 29 手順書と作業状態の管理ツール

Slide 30

Slide 30 text

© BIGLOBE Inc. 2017 30 Chatops 作業が登録/承認されたらチャットで通知

Slide 31

Slide 31 text

© BIGLOBE Inc. 2017 31 手順書確認や承認もWeb上で

Slide 32

Slide 32 text

© BIGLOBE Inc. 2017 32 l運⽤者のみなさま p⾊んなツール使って⾃動化してみませんか? Øいろんなツールを使ってみた 情報共有だけでもすごく参考になります Ø⼩さいことでもOK! p⼀緒に⾊んな壁を乗り越えるためのフィード バックをお互いにしませんか? 皆様にお願い

Slide 33

Slide 33 text

© BIGLOBE Inc. 2017 33 lメーカー/ベンダーのみなさま p⾃動化のためのツール/APIを提供して下さい! Ø⾃動化がしやすいのは、選定される基準になります p⾃動化のハードルを下げて欲しい! Ø⾊んな事例の紹介ももっと聞きたいです Ø⾃動化にまつわるAPIのドキュメントも 充実させてほしいです! pOSSに乗ってきて欲しいです ØNapalmに搭載可能なモジュールの提供など 皆様にお願い

Slide 34

Slide 34 text

© BIGLOBE Inc. 2017 34 l SmartCS/SmartGSで抽象化してくれませんか? pいつも⼤変お世話になっているSmartCS Ø確実な接続性で信頼してます! ありがとうございます! p更に、各ベンダーの設定や状態取得の抽象化&中間APIが できると最⾼にHappyです! セイコーソリューションズさんへのお願い シナリオ SmartCS ベンダーA ベンダーC ベンダーB 差分吸収 REST API grpc

Slide 35

Slide 35 text

© BIGLOBE Inc. 2017 35 l マルチベンダ対応の⾃動化⽀援ライブラリ 「NAPALM」を使って⾃動化してみました p 現実的な⾃社の環境に適⽤できるものができた p 作業省⼒化が可能 l より省⼒化するためにWebGUIでの⼿順書作成⽀援ツールを 作りました l 抽象化レイヤーとしてのSmartCSお願いします! まとめ 一緒に自動化に向けて挑戦して、共有していきませんか? 皆様の共有が業界全体の自動化の歩みを早めます!

Slide 36

Slide 36 text

© BIGLOBE Inc. 2017 36 l 発表で使ったツールは全て公開してます p Napalm-scenario(YML⼿順書⾃動実⾏ツール) Ø https://github.com/as2518/napalm-scenario p OperationHQ(YML⼿順書作成/管理WebGUI) Ø https://github.com/as2518/ops-hq l NAPALM p https://github.com/napalm-automation/napalm l 参考リンク p JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性 Ø Napalm-scenarioの原型はこちら Ø https://www.slideshare.net/taijitsuchiya5/jsnapypyez Ø https://github.com/as2518/scenarioJUNOS 最後に