2012年7月29日日曜日

OpenFlow環境をつくってみた(Trema編)










前回まででNOXに落ち着きそうだったのですが、Tremaの紹介記事が分かりやすかったので、Tremaに関心が向いてしまいました。さらに、Trema自体に仮想スイッチ・仮想ホストを自由なトポロジで簡単にエミュレートする機能もあり、さらに気にいってしまいました。
Trema github

下記記事では、上のtutorialなどを日本語でさらに分かりやすく説明しています。
こんな夜中にOpenFlowでネットワークをプログラミング!:第7回 【Trema編】新シリーズ始動! OpenFlow界のRailsことTrema入門

環境準備、コントローラー、NWエミュレータの設定は上記記事を参考にして、順調にすすめられました。
また、Rubyは初めてだったので、平行してdotinstallで勉強しました。
NWエミュレータの説明はこちらが参考になります。Open vSwitchを使ってるみたいですね。

気になったのはテストです。プログラミングは専門ではなかったので、ちゃんとテストを考えたことなかったのですが、最近「TDD:Test Drive Development(テスト駆動開発)」という言葉を知り、気になっていたのですが、どのようにテストを書いたらいいのか考えていたところに、よい事例紹介がありました。
こんな夜中にOpenFlowでネットワークをプログラミング!:第9回 【Trema編】テストファーストでアジャイルに

ここでハマったのは、Rubyのversionです。私の環境では、Ruby v1.9.3では、ruby テストフレームワークのRSpecがうまく動かなかったので、rvmを使ってrubyバージョンを切り替えられるようにして、v1.8.7で正常動作確認できました。



今は、上記の本を読んでいるところです。Rspecの説明もありますが、BDD(ビヘイビア駆動開発)の概念とその実践の説明になっています。
OpenFlowからは離れつつありますが、Seleniumへの応用ができる予感がしています。

Ruby on Railsアプリ以外でも Selenium RC を使えば RSpec でテストが書ける! - @yuumi3のお仕事日記 

次回OpenFlowの話に戻れるか、テストの話になるか、はたまた全く関係のない話になるか分かりませんが、今日はこの辺で。。。
このエントリーをはてなブックマークに追加