見える化のすゝめ【ネットワーク編①】
どうも、Keiです。
最近、渋谷のヒカリエに行ったら、スケルトンのバッグインバッグがたくさん置いてありました。
透明でおしゃれだし、中に何があるか一目でわかるので便利だそうです。
ごちゃごちゃしたバッグの中身を透明にして「見える化」したように、
今回はビジネスでの「見える化」について話をしていきたいと思います。
見える化って?
「見える化」と単純に言っても、たくさんのケースがあると思います。
- プロジェクトの進捗をタスクごとにリスト化する
- プロジェクトに関わる全ての人々と関係性を図にする
- 複雑なコスト構造を洗い出して、表にまとめる
- 直観や経験で対処してきた事象を書き出し、ルールブックを作成する
- 収入や利益をグラフにして表示する
「見える化」をやる目的、メリットもケースによって違いはありますが
- コスト削減:既存のプロセスを洗い出して無駄を探す
- 頭の整理:物事を視覚的にとらえることで新しいアイディアが出る
- 理解の速さ:複雑な情報でもより少ない時間で理解できる
このような効果が期待できるのではないでしょうか。
さて、今回は少し技術的な話となりますが、
ITインフラを作る上で全世界に100台、200台のルータ、サーバ、スイッチを配置する際に、ネットワークをどのように管理しようか?というトピックについて話していきたいと思います。
ここが複雑!ネットワーク図
一般にITインフラはサーバ、ルータ、スイッチで構成されますよね。
下の図は、非常に小さい会社がオンプレで設備を持っている場合です。
このように小さな会社ならネットワークもかなり簡単だし、パワポレベルでも管理できると思うんですよね。
さて、上の例は非常にシンプルでしたが、ビル内の人が増えたり、サーバ数が増えたり、機器の冗長化を考えるとどのようになるでしょうか?
だんだん、ごちゃごちゃしてきましたね・・
どこのリンク(機器の間の線のこと)が故障したときに、どの経路をパケットは通るのかわかりにくくなってきました。
さらに、これらの拠点が全世界中に何十拠点もあることを考えると、1つのパワポでこれを管理するのは限界がありそうです。
(本気で作ればできないこともないんでしょうが、パワポの性質上、パケットがどの経路を通るかの情報はわかりません。)
NetworkXとCytoscapeを使った見える化
今回、「見える化」したいのは次の2つです。
- ネットワークのサーバ・ルータ・スイッチの接続関係を可視化
- パケットがどの経路を通るのか可視化したい
今回の記事では、どのようなフレームワークでこれを実現するかについて書いて行きます。
まず、1の「サーバ・ルータ・スイッチの接続関係」を視覚的に表示するには、Cytoscapeと呼ばれるソフトウェアを使用したいと思います。
また、2の「パケットがどの経路を通るのかの可視化」はPythonのlibraryであるNetworkXを使用したいと思います。
Cytoscapeとは?
Cytoscapeは、元々分子間の接続を図示するなど、生物系の分野で多くの情報とそのつながりを描画するオープンソースのソフトウェアです。
それが、だんだんと裾野を広げていき、ITインフラでネットワークの構成を描画するのにも注目を集めるようになってきました。
Cytoscape公式ページより引用
Cytoscapeでは、ノードの情報(どのビルに所属?機種?)やノード間の情報(帯域?光ケーブル?)の情報を入力すると、自動でネットワーク図を作ってくれます。
また、同じビルごとのノードをクラスタリング(一か所にまとめること)してくれたり、ノードとノードのつながりを分析する上で非常に便利な機能が備わっています。
NetworkXとは?
このNetworkXはpythonの外部ライブラリなのでプリセットでは入っていなく、新たにインストールする必要があるのですが、ネットワークの中のパケットの流れを分析する非常に強力なツールです。
Cytoscapeと同様にノードの情報とノード間の情報を入力すると、ネットワークを自動で作り上げてくれます。
しかし、Cytoscapeのように描画してくれるわけではありません。
NetworkXが優れているのは、簡単なpythonの操作でネットワークのパケットの流れを分析したり、"ネットワークがもしこんな風に変更になったら"というシミュレーションが簡単にできちゃうことです。
また、CytoscapeのソフトウェアにはpythonからCRUDでアクセスできるので(次回詳しく説明)、NetworkXでシミュレーションした結果を実際にCytoscapeのアプリケーション上で目で確認するような柔軟な仕組みが作れるのです。
つまり、あるルータから別のルータまでの経路はどこを通っているかをNetworkXで計算して、その経路をCytoscapeで描画できるのです。
さて、今回はCytoscapeとNetworkXを組み合わせてITインフラの「見える化」をする全体像について紹介しました。