益井 賢次 / ShowNet NOC Member [2008-2012]


どうもこんにちは、益井と申します。昨年まで ShowNet NOC Member を務めておりました。

突然ですが皆さん、


「型にはめる」運用、心がけていますか?


この記事をご覧の皆さんの多くは、システムの運用に何らかの関わりを持っていらっしゃるかと思います。オペレーションの手順やルールを決めたり、システムの構築・運用の作業を自動化したりと、運用において型が大事になる場面は多くあります。

「型にはめる」というと創造性や個性がなく退屈な感じ、といったネガティブな響きもありますが、型にはめていく作業こそ、これからのエンジニアリングにおいて腕の見せ所になると感じており、私自身も運用において大事にしていることの一つです。

ShowNet では長年、構築・運用を効率よく進めるためのソフトウェアの開発や、また ShowNet 自体をソフトウェアで制御する仕組み作りに取り組んできました。一方でSDN (Software Defined Network) や OpenFlow といった言葉もよく目にするようになり、ネットワークの運用とソフトウェア制御の関係について考える機会も増えてきました。このことを踏まえながら、まずは ShowNet での「型にはめる」事例をご紹介しましょう。

ShowNet は相互接続をはじめとした技術の検証の場であると同時に、出展者様にインターネットアクセスを提供するサービスネットワークでもあります。そして大変ありがたいことに、毎年多くの出展者様が ShowNet の利用を申し込んでくださいます。なので、必要なコンフィグの量も膨れあがります。具体的には、毎年 200 から 300 程度の件数に対応する設定を機器に投入し、接続試験も込みで 1-2 日のうちにやってしまわないといけません。Interop と言うからにはもちろん、設定対象の機器群はマルチベンダ構成ですし、申し込み 1件あたり複数の機器に複数の種類(L2・L3・ACL・NATなどなど)の設定が必要です。一人で手でコンフィグしようとすると、途方に暮れてしまう分量です。


そこで奥さん、自動化ですよ!


という具合に、ShowNet ではこの作業の自動化に取り組みました。出展者様それぞれに提供するサービスの情報(種類・アドレスブロック・VLAN ID・収容機器など)を TTDB と呼ばれる運用情報データベースシステムに登録しておき、それを参照してコンフィグのテンプレートにもとづいて機器に設定を投入するシステムを構築したのです。これによって、誰か一人がこのシステムを動かすだけで 1 時間もしないうちに必要なコンフィグがすべて投入されるようになりました。


ttdb.png 

図: TTDB の動作画面 -- TTDB では運用情報やトラブルチケットなどが管理される

この投入作業はかつて STM (ShowNet Team Member) やコントリビュータの方々の手も借りて、人海戦術で夜通し行っていました。でも、どんなに腕利きのエンジニアでも、コンフィグを打ち間違えたり入れ忘れたりしちゃいますよね、にんげんだもの。ただし、ミスがあること自体よりも、こうしたミスの起こる箇所が予測できないことがより深刻な問題です。こういう状況ではどこに問題があるのか、いや、問題がそもそもあるのかどうかすらわかりづらい、品質のむらというものに悩まされていました。一方で、機械的にコンフィグを投入すればコンフィグ自体は均質化し、ミスがあったとしてもそれが発生する条件や箇所も機械的に割り出しやすいので、こうした問題にも対処しやすくなりました。

また、時々誰かが

「あ、コンフィグのテンプレートに間違い見つけちゃった。やり直し...

なんて悪魔のつぶやきを発したとしても、システム側でテンプレートを修正して機器の設定を更新するだけなのですぐ終わります。こうした仕組みを導入してからは、 ShowNet では出展者様の収容部分の設定作業はずいぶん高速化し、また品質も安定しました(と信じています)。

こうした、あらかじめサービスのメニューが定まっていて、かつお客様がたくさんいらっしゃる、という状況は、まさに「型にはめる」のにぴったりのケースです。その成功の背景には、信頼できる一定形式のデータベースが存在して、それが簡単に参照・更新できるという環境があり、そのもとで、必要なデータと手続きの流れを決める、すなわち型を作って、それを運用にはめ込んでいくということが行われたことがあります。

また、別の事例として、ShowNet の接続サービス内容をダイナミックに切り替えるというデモを 2010 年に行いました。サービス利用者が Web ブラウザ上で切り替えボタンをクリックすると、たとえばグローバルアドレスでサービス提供されていたセグメントが一瞬のうちにキャリアグレード NAT 配下のプライベートアドレスでのサービスに切り替わる、といったものです。この仕組みは、背後では TTDB の出展者様の情報を参照して、該当セグメントのコンフィグを更新する、という処理をオンデマンドで行うことで実現していました。

この例でも、サービスを実現するために必要なデータや手続きを定義して、運用に乗せていくという型にはめることが行われています。一度スムーズに動作する型にはめてしまえば、こうしたダイナミックなネットワークの制御も難しいことではありません。

他にも、TTDB と認証サーバと連携させることでアカウント管理を一元化したり、出展者様のブースごとのトラフィック量をリアルタイムに地図の上に可視化したりするなど、データベースを中心に据えてデータと手続きの流れの型をつくり、運用にはめこんでいくことで、運用自体やサービスが簡単・便利になったり柔軟性を持たせられたり、といったことを実現してきました。

このように、実際の運用の中から型として取り出せそうなものを、ソフトウェアやデータベースを中心とした運用にはめ込んでいくことで、複雑で大量な作業を一瞬でこなしたり、柔軟なサービスを提供できたりするわけです。その分人間が暇になれば、もっとクリエイティブなことに取り組んだり、元気になるため昼寝をしたり、と、他のことに時間を割けるようになります。もちろん型を作り、はめ込んでいく作業にはそれなりの労力が必要ですが、 目的を達成するためのコストを長い目で見て低くできるだろうか、ということを考えると、皆さんのまわりにもまだ型にはめきってないものがあることに気づくのではないでしょうか。

実際、SDN という考え方でネットワークを作り、運用することの御利益として、こうした管理・制御の柔軟性の向上が挙げられることがよくあります。ソフトウェアでネットワークを制御するということは、コンピュータで処理可能な形に機能や運用手順を落とし込むことが前提でもあります。SDN が注目を浴び、管理対象のシステムが巨大化・複雑化しつつある流れで、本質的にはこうした「型にはめる」能力がエンジニアにも求められてくるのでしょう。

OpenFlow も含め、SDN の関連プロトコル・API・ツール群が出揃ってきて、「型にはめる」作業は少しずつやりやすくなってきています。もちろん「それ OpenFlow じゃなくても○○(既存の仕組み)でできるよ」ということも少なくないのですが、ネットワークをソフトウェアで制御するということに注目が集まることをきっかけに、何を「型にはめる」べきなのか、ネットワーク運用の全体像を見直すのはとてもいいことではないかと思います。

少し方向を変えて、誤解を恐れず言うならば、

オペレーションだけやってきた人もコード書こうよ、
コードだけ書いてきた人もオペレーションを知ろうよ

ということでもあります。変な分業意識にとらわれず運用と開発のバランス感覚を持つことって、現場ではこれから一層大事になると思います、はい。

2013 年の ShowNet では、

「開発とネットワーク運用の融合」

を心がけ、SDN のあるべき姿をお見せできるよう、NOC メンバーにもフレッシュでデラックスな人材を加え、着々と準備中であると伺っています。(諸般の事情で、今年は残念ながら私自身の ShowNet への参加は一回休みですが、陰ながら応援しています。)

是非、2013 年の ShowNet で SDN の開発と運用の新たなモデルを見つけてください!