2015年11月6日金曜日

NetOpsCoding #1 参加メモ

開催概要

  • 日時: 2015/10/30 (金) 19:00 to 21:00 (実際には22:00ごろまででした)
  • ビッグローブ株式会社(品川シーサイドパークタワー 3F)
  • ハッシュタグ: #netopscoding

他の方のまとめなど

まとめ・感想

Network 運用のためのCodingの話でした。

似ている勉強会にネットワークプログラマビリティ勉強会(#npstudy)というのがありますが、非常に分野が近いというかOverrapしています。 #npsutdy がネットワークの仕組みとかがメイン(かなぁ)である一方で、 このNetOpsCodingは運用からの視点で見ています。

この勉強会のよいところとしては、運用の視点から具体的な困りごとをベースに議論ができるところかな と思いました。 いろいろな困りごとから出発して、共通的な仕組みができるとうれしいです。

今回の発表では、Microsoftさんの取り組みがありましたが、圧巻でした(資料は2015/11/06現在 見つけられていません)。 最終的にはここまでいくといいと思いますが、規模が大きくない現場ではなかなかここまで作り込むのは大変だと思います。 NetOpsCodingを通して共通的なフレームワークが作れると管理規模が小さい環境でも効率的に管理できてうれしいです。 現状でもCLI, SNMP, NETCONF, Rest APIといろいろなやりかたがあるので、そこを吸収する必要性を再認識しました。

また、今回はLTで5分だけNetwork Test Automationという発表をさせてもらいました。(#npstudyの発表の再構成ですが。) NetOpsCodingを始めるところの敷居が下げられるといいなぁ と思っています。

Introduction of NetOpsCoding

ネットワーク運用者が自動化して、楽して、ミスを減らして、楽しいことに時間を使うために、 どうしたらよいのか?ベストプラクティスを共有したい という趣旨でした。 ネットワーク運用者、ソフトウェア開発者、Network機器メーカーいろいろな立場から、 自動化を進めていきたい という話でした。

ネットワークAPI作成30分Coding

Rubyはじめて半年くらいという井上さんがvSRX(のルータ機能)を NetConfで設定するという話でした。

通信系のデモとしては珍しく(?)、pingではなく、descriptionを設定する ということでした。

Qiitaの記事 をベースに進んでいきました。

今回の例では、最終的にはCLI over NETCONFというような感じだったので、 まずは、これができると、いまの運用との一貫性を築くことができるので、よいと思いました。 (結局、これがないと、いろいろなところで実装しなくなるのでつらいですね。)

Microsoftにおけるネットワーク自動化とそれを支えるソフトウェア群について

  • 発表者: Microsoft 北島さん
  • 発表資料:
    • 見つけられていません。

いくつかのソフトウェア群についての紹介がありました。非常に刺激的で有用なものが多いです。 一方で、これを規模の小さいうちの環境では工数かけられないなぁ とか、そう思うところもありました。 けっこう、一般化できるかもしれないので、仕組みをNetOpsCodingで作っていったら、 みんなで幸せになれるのかもなと 思いました。

ソフトウェア群はこんな感じでした。

  • SES(Standard Enforcement Script)
    • Perlスクリプト
    • 機器のConfigがテンプレートと一致していなければNGとする
    • Model Driven ではなく、Adaptive
  • Pre/Post-change Validation
    • 事前の状態と事後の状態を比較する
    • 事後の状態がテンプレートとマッチしていなくても、事前も同じだったら、今回のオペレーションによるものではない
    • 差分がでたところだけ確認して、問題なければ、そのままにする
  • MPLS Autobandwidth Automation
    • MPLSのBandwidthの制御をするための話
  • Monitoring Intelligence
    • 複数のグラフを時間軸で相関を見る。
    • FibrecutでCPU負荷が上がったり、QoSのプライオリティごとの通信が変化したり、しなかったり
    • CLI, SNMP, Syslogをアグリゲートしている
    • Ping meshでsrc/dstのメッシュをしておくと、どのあたりに問題があるかわかりやすい

YANG modelの話など

NETCONFのデータモデルを記述できるYANGというモデリング言語の話でした。 NETCONF自体はYANGでのモデリングと切り離して考えられる。 しかし、統一したオペレーション(設定と監視)を考えると、YANGでモデリングされている必要があるということでした。(たぶん)

いろいろな機器が統一した記述で(ある程度)設定できるとうれしいです。

ネットワーク運用自動化お悩み相談室

会場の参加者がどのようなところに興味があるかを聞き出す、面白い内容でした。 NetOpsの自動化のイメージが全然違うので、それぞれのイメージを共有したい という意図です。 会場では、まずは設定とチェックのところの自動化をやりたい という感じだったような気がしていますが、記憶が曖昧です。。

ライトニングトーク

Model driven automation!

  • 発表者:
    • CISCO 河野 美也さん

YANGモデルとかの話だったと思います。自分のLTの準備とかしていて、 あまり聞けませんでした。

Network Test Automation

Networkの自動化の第一歩として、基本の動作確認の仕組みの共有です。 Config系の自動化は、ミスすると通信できなくなりますが、 基本動作確認を自動化しても、基本的には通信できなくなることはありません。 なので、そこから最初に手をつけるのがよいのかな という話です。

テストツールとしては次のようなものを紹介しました。(自家製ツールの紹介が多いです。) 使ってみて、Issue、Pull Requestもらえるとうれしいです。

Test Tool対象備考
ServerspecServers(static)
InfratasterServers(dynamic)
Infrataster-plugin-dns (Rspec-dns)DNS servers
Infrataster-plugin-firewallFirewallsTraget serverにtcpdump, netcat が必要
LbspecLoad Balancers(L4-L7)Target serverにngrep, netcat が必要
Rspec-ssltlsSSL/TLS

機能的なテスト以外(性能系のテストなど)は、ここではできていないので、 性能などを計測したい という場合は、別途そのようなツールが必要です。

テスト駆動型ネットワーク

ItamaeとServerspecを使ってテスト駆動でCumulus Linuxの設定を作っていく事例でした。 本番環境以外に開発環境がある場合は、このやり方でやりたいです。

インフラ屋の友:Tera Term

Skypeでの参加ということで、驚きました。 内容はTeraTerm のスクリプトを使った自動化でした。 expectやこの手のツールも、使うのと、使わないのとで大きな差があるので、 ここのあたりも共有できるとよいのでしょうか。 (私はTeraTerm使っていないですが。)