16
軽量Rubyで実現する 柔軟なルータ SEILへの軽量Rubyの組み込み 2013114Tokyo Ruby Kaigi 10 曽我部

Tokyo ruby kaigi 10 (sogabe)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Tokyo ruby kaigi 10 (sogabe)

軽量Rubyで実現する

柔軟なルータ

SEILへの軽量Rubyの組み込み

2013年1月14日 Tokyo Ruby Kaigi 10

曽我部 崇

Page 2: Tokyo ruby kaigi 10 (sogabe)

曽我部 崇(@rev4t)● IIJで企業向けルータの開発などに従事

最近の活動場所● mruby (http://github.com/iij/mruby)● openstack

○ コントリビュータ始めました(IPv6まわりの修正をした程度..)

自己紹介

Page 3: Tokyo ruby kaigi 10 (sogabe)

SEIL(ザイル)作っています

● ISPのノウハウを結集してIIJが開発した企業向けアクセスルータ

● Firmwareは独自開発、Hardwareは国内製造● 仮想化環境(VMWare, KVM, Hyper-V)対応

http://seil.jp/

Page 4: Tokyo ruby kaigi 10 (sogabe)

mrubyとの出会い

● 2011年春頃○ 社内プロジェクトで、SEILに cruby を組み込んで使った

○ firmware内の使わない機能を削除して、ギリギリ動いた

● 2011年8月頃○ 社内の先輩 前橋さん(@tmeb4)にmrubyの存在を教えてもらう

■ 1/13 16:00-16:15 「Rubyによるお手軽分散処理」

○ SEILに載るか試したくなり、関係者にコンタクトを取る

● 2011年12月頃○ ソースコードを入手し、SEIL上でもmrubyが問題なく動作した!○ 兼ねてから温めていた「柔軟なルータ」構想が、実現で

きそう

Page 5: Tokyo ruby kaigi 10 (sogabe)

もっと柔軟なルータが欲しい

● イベントスクリプト機能 開発中○ SEILの機能をmrubyスクリプトから操作○ 経路障害、インタフェースのUp/Downなどのイベントをト

リガになる

Page 6: Tokyo ruby kaigi 10 (sogabe)

色々作ってみました(1)

● つぶやくルータ○ 電力消費量をtweet○ https://github.com/iij/mruby/tree/iij/app/twitter

■ matsumoto-rさんにmrbgem化していただきました● https://github.com/matsumoto-r/mruby-oauth

Page 7: Tokyo ruby kaigi 10 (sogabe)

色々作ってみました(2)

● Amazon S3○ 監視異常をトリガにして、コンテンツをアップロード

■ https://github.com/iij/mruby-aws-s3

監視異常

アップロード

Page 8: Tokyo ruby kaigi 10 (sogabe)

いざ、組み込みの世界へ..

● 今までの組み込み機器開発○ ドライバ、アプリ(ロジック)全てC言語又はアセンブリ言語

で開発

● これからの方向性○ 速度やリソースの制約がある箇所だけC言語やアセンブ

リ言語で記述○ その他のロジック部分は、出来る限り開発効率の良い

言語で開発

Ruby技術者を組み込みの世界に誘いたい :-)

Page 9: Tokyo ruby kaigi 10 (sogabe)

mrbgem

● mruby版のGEM● 2012年12月、本家にコミットされた● mrubyのビルド時にGEMを組み込むことができ

る○ rubyスクリプト、C言語のコードどちらも組み込み可能

mrbgemに対応した以後、mrubyのエコシステムが急速に進化中

https://github.com/mruby/mruby/wiki/Related-Projects

Page 10: Tokyo ruby kaigi 10 (sogabe)

Small is Beautiful

● mruby(ミニマム)はruby言語の最少セットのみを提供○ 利用者は、必要なものだけを選んで組み込む○ 不要なものは入れなくて済むため、コンパクトになる

RiteVM

gem A(IO)

gem B(Regexp)

gem C(Socket)

gem A

gem B

Application Program

Page 11: Tokyo ruby kaigi 10 (sogabe)

mrubyは組込機器以外にも適用できる

● アプリへの組み込みにも向いている● 例

○ apache に組み込む => mod_mruby○ iOSアプリに組み込む => MobiRuby○ 言語内DSL

■ mruby(ミニマム) + 必要なmrbgemだけを組み込むことで、コンパクトかつ堅牢になる

● 利点○ アプリ動作ホストのruby環境に依存しない

■ rubyバージョン、gem依存を気にしなくて良い

Page 12: Tokyo ruby kaigi 10 (sogabe)

ruby+mruby = Internet of Things

● ruby + mrubyで、様々なモノやクラウドをインターネットを介して結び付けることができる

照明、家電、冷暖房、蓄電池、各種センサ ,etc.

Page 13: Tokyo ruby kaigi 10 (sogabe)

mrubyはフロンティア :-)

● 現時点では、mrubyの基本部分が出来ただけ○ エコシステム、ドキュメント、mrbgemsなど、未整備のモノ多数

Page 14: Tokyo ruby kaigi 10 (sogabe)

今ならコントリビュートできることが沢山あります!

Page 15: Tokyo ruby kaigi 10 (sogabe)

軽量Rubyフォーラムのご紹介

● 2013年2月に発足予定のNPO法人

○ http://forum.mruby.org○ IIJも加入予定

● このような人・企業は、是非ご参加ください!○ 自社製品の開発言語として軽量Rubyを採用してみたい

○ 軽量Rubyの今後の開発方針をいち早く知りたい

○ 軽量Rubyの今後の開発方針について意見したい

○ 顧客に軽量Rubyを提案することで差別化を図りたい

○ 軽量Ruby(あるいはその周辺ツール)の開発に関与したい

○ 自社で軽量Ruby製品をNPOを通じて宣伝したい

○ 軽量Ruby教育関連事業を企画したい

○ とにかく軽量Rubyを応援したい

Page 16: Tokyo ruby kaigi 10 (sogabe)

PR: mrubyの夕べ

● 日時: 1月28日(月)● 時間: 17:00-19:20● 場所: 東京 神保町 IIJ本社● http://bit.ly/mruby-evening

17:00-18:30 に、まつもとゆきひろさんによるmrubyに関する講演があります!