Software-Defined Networkで、ネットワーク構成をプログラマが作り込む時代がやってくる
この記事は、日経SYSTEMS 4月号から始まった連載「新野淳一の技術インパクト」の第1回のオリジナル原稿です。雑誌には編集済みの記事が掲載されていますが、Publickeyでは編集部との合意を得て、雑誌発行から一定期間後にオリジナル原稿をPublickeyに掲載します。
Software-Defined Network
クラウドの登場で、「サーバを調達する」という意味が大きく変わろうとしていることは、多くのプログラマが感じ始めていることだろう。
クラウド以前、「サーバを調達する」とは、物理的にサーバを発注して納品してもらい、設置することだった。調達しようと思い立ってから実際にサーバが使えるようになるまでに、複数の関係者が関わって何週間もかかることも覚悟しなければならない。
しかしクラウドの時代の「サーバを調達する」とは、必要なメモリ容量やプロセッサ性能、ストレージ容量をメニューを選んでクラウドのコンソールからボタンを押す、という行為、あるいは行為ですらなく、該当のAPIをコールするだけになる。それだけで数秒から数分後には、そのサーバが使える状態でクラウドの中に立ち現れてくるのだ(もちろん、クラウドの中の人にとっては引き続き物理的なサーバを調達する必要があるけれども、この文章はクラウドの外側にいる多くのシステム開発者を想定している)。
ソフトウェアでネットワーク構成を定義する時代
いま、「ネットワークを構成する」という意味が同じように変わろうとしている。 例えば、サーバをインターネットに接続し、その手前にはロードバランサーとファイアウォールを入れる、というネットワーク構成を考えてみよう。これを実現するには物理的なネットワーク機器の調達が必要だった。
しかし「Software-Defined Network」、文字通り「ソフトウェアで定義されたネットワーク」の時代がやってくれば、「ここにルータを置いて経路情報はこうする。ここにファイアウォールを置いてフィルタリングルールはこう、あそこにはロードバランサーを置いてアルゴリズムはこれ」とネットワーク構成をすべてソフトウェアで設定し、ボタンを押せば、あるいはAPIをコールすれば、その構成のネットワークがたちまちできあがるようになる。
アプリケーションとネットワークの主従が逆転
ここには2つの大きな変革がある。1つは、ネットワーク構成というものがスタティックなものではなくなるということ。単にルーティングやスイッチやロードバランスやそれらのコンフィグレーションが動的に変わるだけはなく、ネットワーク上のどこにルータやロードバランサーやスイッチやその他の機器が存在するのか、ケーブルがどのように配線されているかということですら、ソフトウェアによってダイナミックに変化するようになる。
サーバ仮想化が、システムの中でダイナミックにサーバの起動、終了を制御できることでシステム全体の効率からサーバの使い方まで変えてしまったように、ネットワーク全体がダイナミックに構成可能になれば、いままでにない効率性と利用法が生まれることは間違いない。
もう1つの変革は、ネットワーク構成の決定権をプログラマが握れるようになることだ。いままでアプリケーションにとってのネットワーク構成とは、システムの稼働条件として与えられるものだった。
しかしネットワーク構成がソフトウェアによっていくらでも書き換えられるということは、アプリケーションが主体となって、動作に必要なネットワーク構成を動的に変更できるようになるということだ。
プログラマがアプリケーションに対して動作に必要なメモリを割り当てるように、ネットワークに対して必要な帯域を割り当てるようなプログラミングを行ったり、複数のサーバに対して意図したようなトラフィックの分散が行われるようにロードバランサのアルゴリズムを動的に変更する、セキュリティのために一時的にすべてのトラフィックを遮断する、といったことがプログラミング可能になる。
これはつまり、アプリケーションに適切なネットワーク環境をプログラミングする責任がプログラマにかかってくる可能性があるということであり、見方を変えればプログラミングの可能性がネットワークを含めたデータセンターレベルに拡大でき、プログラマの権限が非常に大きくなると見ることもできるだろう。
大手ベンダからも製品出荷が始まる
このSoftware-Defined Networkを実現する技術として熱い注目を集めているのが「OpenFlow」だ。OpenFlowでは、「スイッチやルータ、ファイアウォールなどどんなネットワーク機器にも変身できるネットワーク機器の素(もと)となる箱=OpenFlowスイッチ」と、その箱に対してコンフィグレーションを行うためのOpenFlowプロトコルを定義している。
すでにNECやIBMやブロケード、シスコ、ジュニパーといった大手からベンチャーまで、さまざまな企業がOpenFlow対応を表明し、製品の出荷が始まっている。Software-Defined Networkの時代の幕は事実上開いたと言っていい。
Software-Defined Networkはパブリッククラウドを提供しているような大規模データセンターで導入が始まっているが、いずれ一般の企業のデータセンターや家庭にまで使われるようになると予想される。その方が便利で高機能で安価なソリューションを、圧倒的に素早く提供できるのは確実だからだ。
いままでネットワーク管理とアプリケーション開発は少し離れた分野として分業されていたが、これからは密接に、あるいはクロスオーバーな分野になり、プログラミングと呼ばれる仕事の範囲が広がっていくことだろう。
あわせて読みたい
jQuery MobileのテーマにMetroスタイルが登場。Microsoft Open Technologiesが発表
≪前の記事
PR:Oracle Exadataの性能を徹底的に絞り出す、NTTデータ先端技術が事前検証を開始