48
Tremaとその最新情報 -OpenFlowフレームワークの選びかた- 高宮 安仁 Trema 開発チーム 1 13524日金曜日

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

Embed Size (px)

Citation preview

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

Tremaとその最新情報-OpenFlowフレームワークの選びかた-

高宮 安仁Trema 開発チーム

113年5月24日金曜日

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

Trema開発チームの自称リーダーです

213年5月24日金曜日

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

NOX

RyuPOXTrema

Floodlight

OpenDaylight

313年5月24日金曜日

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

映画「ロスト・イン・トランスレーション」より

「一体どれがいいの?」

413年5月24日金曜日

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

作り手の視点から、

OpenFlow用ソフトウェアを

選ぶポイントを紹介します

513年5月24日金曜日

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

NOX

RyuPOXTrema

Floodlight

OpenDaylight

プログラミングフレームワーク

613年5月24日金曜日

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

Webフレームワーク

713年5月24日金曜日

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

OFフレームワーク

SDN

813年5月24日金曜日

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

! よくある誤解 !フレームワークをインストールすれば、ネットワークを OpenFlow 化できる?

913年5月24日金曜日

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

OpenFlow化するには

1.コントローラを自分で作る

2.フリーなコントローラを探す

3.ソリューションを購入する 道具の出来がとても重要!

1013年5月24日金曜日

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

「作り手」の目1.生産性は?

2.機能は?

3.品質は?

1113年5月24日金曜日

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

POINT 1

“IBM の調査によると、あるプログラミング

言語での経験豊富なプログラマは、

その言語にほとんど経験のないプログラマの

3 倍以上の生産性がある”-Walston and Felix,1977

http://www.flickr.com/photos/mkeefe/3123775954/sizes/o/in/photostream/

言語で選ぶ

1213年5月24日金曜日

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

Ruby C++

JavaPythonFloodlightOpenDaylight

RyuPOX

使い慣れた言語を選ぼう

NOXTrema

1313年5月24日金曜日

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

1.0 1.1 1.2 1.3

対応バージョンで選ぶ

Floodlight

Trema

NOXPOX

RyuOpenDaylight

Ryu

TremaRyu

OpenDaylight

POINT 2

1413年5月24日金曜日

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

研究 プロダクション

NOXPOX

用途で選ぶ

Trema

FloodlightRyu

OpenDaylight

POINT 3

1513年5月24日金曜日

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

Trema (Ruby)

Ryu (Python)

OpenDaylight (Java)

Floodlight (Java)

プロダクションに向くもの

1.3 Ready1613年5月24日金曜日

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

...その中でおすすめは?

1713年5月24日金曜日

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

の特長

1813年5月24日金曜日

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

他のフレームワーク Trema

1913年5月24日金曜日

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

小ささ

200,000行 45,000行

2013年5月24日金曜日

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

http://www.spokesman.com/blogs/officehours/2012/apr/

同じ機能の

2,000行のコードと

どちらがバグが少ないか? 500行のコード

2113年5月24日金曜日

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

小ささ

信頼性

2213年5月24日金曜日

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

(NICT 石井秀治氏 提供)

Interop2012 ShowNet

さまざまな

スイッチのバグを

Tremaが発見!

2313年5月24日金曜日

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

小ささ

開発コスト

ダウン

2413年5月24日金曜日

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

アジャイル、高生産性

• Trema は Ruby を採用(Ruby on Rails と同じく、高い生産性)

•少ないコード数で機能の追加や変更が可能

•少ない工数で柔軟な NI, SI が可能

2513年5月24日金曜日

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

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日金曜日

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

“高級言語を使うプログラマの生産性と

品質は、低水準言語を使うプログラマより高い。

高級言語は 1 行のコードでより多くの

命令を伝えることができる”- Brooks 1987; Jones 1998; Boehm 2000

http://www.flickr.com/photos/mkeefe/3123775954/sizes/o/in/photostream/

Rubyの記述性

2713年5月24日金曜日

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

Trema POX NOX Floodlight

ハブのコード行数

14

36

95

111

2813年5月24日金曜日

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

600,000行40,000行

Iaasのコード規模

2913年5月24日金曜日

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

高信頼 低コスト

実績増

3013年5月24日金曜日

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

Floodlight

Trema 12000

15000

ダウンロード数

30ダウンロード/日

3113年5月24日金曜日

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

Trema採用事例

•Biglobe データセンター

•NTTPC WebARENA VPS クラウド※

•KCCS GreenOffice UnifiedCloud※

•企業・組織 = NCLC, APC, NICT など※ Wakame-VDC を採用 完全OpenFlow 化は検討中

OSSで(一部)公開中!

3213年5月24日金曜日

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

小さいけれど

便利な道具

3313年5月24日金曜日

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

OFライブラリ

他のフレームワーク

コントローラ

3413年5月24日金曜日

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

OFライブラリ

Tremaコントローラ

NWエミュレータ

3513年5月24日金曜日

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

コントローラ

仮想環境

ノートPC 1台で実装 & テスト

実環境

そのままデプロイ

3613年5月24日金曜日

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

Trema Switch• Trema 特製、1.3 対応ソフトウェアスイッチ

•コントローラのテストに特化

•小さくて改造しやすい設計開発版を公開中!

https://github.com/trema/trema-edge/

3713年5月24日金曜日

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

Tremashark

3813年5月24日金曜日

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

小ささ

学習コスト

ダウン

3913年5月24日金曜日

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

学習コスト4013年5月24日金曜日

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

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日金曜日

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

日本語フォーラム

4213年5月24日金曜日

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

ゼロから半年で開発

4313年5月24日金曜日

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

Trema Day(年4回)

4413年5月24日金曜日

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

4513年5月24日金曜日

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

オープンな開発

• 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日金曜日

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

Tremaの小ささ生産性・信頼性が高く、開発・学習コストが低い

商用クラウドでの実績が多数

日本語ドキュメントが豊富

4713年5月24日金曜日

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

4813年5月24日金曜日