11th - Arista の EOS SDK 公開

今朝、EOS+ のリリースを見てさすがに驚いた。Arista は遂にそのソフトウェアの大半をオープンにしたことになる。何と言っても EOS SDK のインパクトが大きい。EOS のコードをまるまる出しているように見える。
プレスリリースの EOS SDK の項を見ると、こうなっている。ちょっとすごい。
"EOS SDK – a development framework that allows native access to all levels of EOS for custom development and integration with forwarding and routing stacks that leverage advanced features such as MPLS."
(EOS の全レベルにアクセスして、forwarding と routing スタックも含めてカスタムな開発とインテグレーションを可能にする。例えば MPLS の機能を利用する、といったこと。)
12/6 の投稿で少し触れたけれど、EOS はとても直接的に手を入れる事ができる。どのようにすれば良いか、どんなことが出来るか、といったことは個人的にも Arista Square なるサイトを立ち上げて情報を集積していたりした。例えば簡単なコマンドの作成などはここにある。
"コマンドの追加 / EOSに独自のコマンドを追加する", Arista Square
Arista のスタッフも良く分かっていて、同じように最初に見るべきサンプルとして Hello World を作ってきた。ただしこっちは Agent (常駐プロセス)として、だ。
"EOS SDK Quick Start: a Hello World Agent", Arista Networks
これを見ると、どこにどう書けば自分のプログラムを EOS に追加できるか,少なくともその雰囲気はわかると思う。ちょっと想像を働かせば、全体構造がどうなっているかも透けて見えるのでは無いかと思う。
そして SDK 自身を Extension としてインストールする、というのがなかなか洒落ていて良い。さすがにきれいだ。EOS のこのあたりの内部構造を知っている人がそれと知れば、ああ、なるほどそれは合理ね、と共感してもらえるだろう。
"Downloading and Installing the SDK", Arista Networks
SDK のコードの置き場所が GitHub であることも興味深い。リリースを見ると 2013年の12月つまり一年前から準備してきたことがわかる。最初のパブリック・リリース 1.5.0 のリリース日は 12/10、つまり昨日だ。本当に do it yourself なユーザを応援する気なのだなあ、と感じる。
Do it yourself なユーザを応援する、ということはずっと Arista が標榜し続けてきたことだ。今回のリリースでも以下のような記述がある。
"Arista also introduced the EOS SDK for customers and technology partners who are looking for a “do-it-yourself” approach to applications that are custom-fit for their network environments. The EOS SDK allows customers to develop applications that integrate directly with the switch operating system."
(Arista は SDK を "do-it-yourself" アプローチを探している顧客と技術提携先に提供する。SDK はスイッチ OS に直接インテグレートされたアプリケーションを顧客が開発することを可能にする。)
この Hackability を重視した姿勢が 2009 年以来変わらないことがとても嬉しい。
それにしても思い切りが良い。Arista のオフィスを僕が初めて覗いたのは 2009 年のことだが、その時から既にソフトウェアエンジニアが多かった。以来時間を掛けて分厚く積み上げてきた Network OS を公開する、というアクションは、それが今の最良の戦略だと分かっていてもやはりインパクトがある。
Arista は当初からソフトウェア企業のようなところがあった。ソフト開発会社が、と思えば不思議は無いかも知れないが、しかしスイッチベンダーが自分達の NOS を GitHub で公開するなんて、なかなか面白い構図だと思う。
そして本当の SDN というのはやはりこう言うことなのだ、と思う。

References