Tremaとその最新情報
-OpenFlowフレームワークの選びかた-
高宮 安仁
Trema 開発チーム
113年5月24日金曜日
Trema開発チームの
自称リーダーです
213年5月24日金曜日
NOX
Ryu
POX
Trema
Floodlight
OpenDaylight
313年5月24日金曜日
映画「ロスト・イン・トランスレーション」より
「一体どれがいいの?」
413年5月24日金曜日
作り手の視点から、
OpenFlow用ソフトウェアを
選ぶポイントを紹介します
513年5月24日金曜日
NOX
Ryu
POX
Trema
Floodlight
OpenDaylight
プログラミングフレームワーク
613年5月24日金曜日
Webフレームワーク
713年5月24日金曜日
OFフレームワーク
SDN
813年5月24日金曜日
! よくある誤解 !
フレームワークをインストールすれば、
ネットワークを OpenFlow 化できる?
913年5月24日金曜日
OpenFlow化するには
1.コントローラを自分で作る
2.フリーなコントローラを探す
3.ソリューションを購入する
道具の出来が
とても重要!
1013年5月24日金曜日
「作り手」の目
1.生産性は?
2.機能は?
3.品質は?
1113年5月24日金曜日
POINT 1
“IBM の調査によると、あるプログラミング
言語での経験豊富なプログラマは、
その言語にほとんど経験のないプログラマの
3 倍以上の生産性がある”
-Walston and Felix,1977
http://www.flickr.com/photos/mkeefe/3123775954/sizes/o/in/photostream/
言語で選ぶ
1213年5月24日金曜日
Ruby C++
JavaPython
Floodlight
OpenDaylight
Ryu
POX
使い慣れた言語を選ぼう
NOXTrema
1313年5月24日金曜日
1.0 1.1 1.2 1.3
対応バージョンで選ぶ
Floodlight
Trema
NOX
POX
Ryu
OpenDaylight
Ryu
Trema
Ryu
OpenDaylight
POINT 2
1413年5月24日金曜日
研究 プロダクション
NOX
POX
用途で選ぶ
Trema
Floodlight
Ryu
OpenDaylight
POINT 3
1513年5月24日金曜日
Trema (Ruby)
Ryu (Python)
OpenDaylight (Java)
Floodlight (Java)
プロダクションに向くもの
1.3 Ready
1613年5月24日金曜日
...その中でおすすめは?
1713年5月24日金曜日
の特長
1813年5月24日金曜日
他のフレームワーク Trema
1913年5月24日金曜日
小ささ
200,000行 45,000行
2013年5月24日金曜日
http://www.spokesman.com/blogs/officehours/2012/apr/
同じ機能の
2,000行のコードと
どちらがバグが少ないか?
500行のコード
2113年5月24日金曜日
小ささ
信頼性
2213年5月24日金曜日
(NICT 石井秀治氏 提供)
Interop2012 ShowNet
さまざまな
スイッチのバグを
Tremaが発見!
2313年5月24日金曜日
小ささ
開発コスト
ダウン
2413年5月24日金曜日
アジャイル、高生産性
• Trema は Ruby を採用
(Ruby on Rails と同じく、高い生産性)
• 少ないコード数で
機能の追加や変更が可能
• 少ない工数で柔軟な NI, SI が可能
2513年5月24日金曜日
inst.install_datapath_flow(
dpid,
extract_flow(packet),
CACHE_TIMEOUT,
openflow.OFP_FLOW_PERMANENT,
[[openflow.OFPAT_OUTPUT, [0, prt[0]]]],
bufid,
openflow.OFP_DEFAULT_PRIORITY,
inport,
buf
)
vs.
send_flow_mod_add(
dpid,
:match => ExactMatch.from(message),
:buffer_id => message.buffer_id,
:actions => ActionOutput.new(message.in_port+1)
)
同じ機能を
1/2の行数で!
NOX
2613年5月24日金曜日
“高級言語を使うプログラマの生産性と
品質は、低水準言語を使うプログラマより高い。
高級言語は 1 行のコードでより多くの
命令を伝えることができる”
- Brooks 1987; Jones 1998; Boehm 2000
http://www.flickr.com/photos/mkeefe/3123775954/sizes/o/in/photostream/
Rubyの記述性
2713年5月24日金曜日
Trema POX NOX Floodlight
ハブのコード行数
14
36
95
111
2813年5月24日金曜日
600,000行
40,000行
Iaasのコード規模
2913年5月24日金曜日
高信頼 低コスト
実績増
3013年5月24日金曜日
Floodlight
Trema 12000
15000
ダウンロード数
30ダウンロード/日
3113年5月24日金曜日
Trema採用事例
•Biglobe データセンター
•NTTPC WebARENAVPS クラウド※
•KCCS GreenOffice UnifiedCloud※
•企業・組織 = NCLC,APC, NICT など
※ Wakame-VDC を採用
完全OpenFlow 化は検討中
OSSで(一部)公開中!
3213年5月24日金曜日
小さいけれど
便利な道具
3313年5月24日金曜日
OFライブラリ
他のフレームワーク
コントローラ
3413年5月24日金曜日
OFライブラリ
Trema
コントローラ
NWエミュレータ
3513年5月24日金曜日
コントローラ
仮想環境
ノートPC 1台で
実装 & テスト
実環境
そのまま
デプロイ
3613年5月24日金曜日
Trema Switch
• Trema 特製、1.3 対応ソフトウェアスイッチ
• コントローラのテストに特化
• 小さくて改造しやすい設計
開発版を
公開中!
https://github.com/trema/trema-edge/
3713年5月24日金曜日
Tremashark
3813年5月24日金曜日
小ささ
学習コスト
ダウン
3913年5月24日金曜日
学習コスト
4013年5月24日金曜日
Trema 連載記事
• こんな夜中に OpenFlow でネット
ワークをプログラミング!
(Trema チーム, SoftwareDesign 誌)
http://gihyo.jp/dev/serial/01/openflow_sd/0007
• Trema で SDN を手のひらに
(@SRCHACK.ORG, @IT にて連載中)
http://www.atmarkit.co.jp/ait/articles/304/15/news004.html
4113年5月24日金曜日
日本語
フォーラム
4213年5月24日金曜日
ゼロから
半年で開発
4313年5月24日金曜日
Trema Day
(年4回)
4413年5月24日金曜日
4513年5月24日金曜日
オープンな開発
• GPL2ライセンス
• 組織を越えた開発体制
NEC, axsh,GREE,Yandex, Stratosphere etc.
• 実用的でフリーなサンプルアプリが充実
https://github.com/trema/apps/
http://gigaom.com/2010/07/16/the-state-of-open-source-for-the-smart-grid/
4613年5月24日金曜日
Tremaの小ささ
生産性・信頼性が高く、
開発・学習コストが低い
商用クラウドでの実績が多数
日本語ドキュメントが豊富
4713年5月24日金曜日
4813年5月24日金曜日

OpenFlow フレームワークの選びかた