tokyo ruby kaigi 10 (sogabe)
DESCRIPTION
TRANSCRIPT
軽量Rubyで実現する
柔軟なルータ
SEILへの軽量Rubyの組み込み
2013年1月14日 Tokyo Ruby Kaigi 10
曽我部 崇
曽我部 崇(@rev4t)● IIJで企業向けルータの開発などに従事
最近の活動場所● mruby (http://github.com/iij/mruby)● openstack
○ コントリビュータ始めました(IPv6まわりの修正をした程度..)
自己紹介
SEIL(ザイル)作っています
● ISPのノウハウを結集してIIJが開発した企業向けアクセスルータ
● Firmwareは独自開発、Hardwareは国内製造● 仮想化環境(VMWare, KVM, Hyper-V)対応
http://seil.jp/
mrubyとの出会い
● 2011年春頃○ 社内プロジェクトで、SEILに cruby を組み込んで使った
○ firmware内の使わない機能を削除して、ギリギリ動いた
● 2011年8月頃○ 社内の先輩 前橋さん(@tmeb4)にmrubyの存在を教えてもらう
■ 1/13 16:00-16:15 「Rubyによるお手軽分散処理」
○ SEILに載るか試したくなり、関係者にコンタクトを取る
● 2011年12月頃○ ソースコードを入手し、SEIL上でもmrubyが問題なく動作した!○ 兼ねてから温めていた「柔軟なルータ」構想が、実現で
きそう
もっと柔軟なルータが欲しい
● イベントスクリプト機能 開発中○ SEILの機能をmrubyスクリプトから操作○ 経路障害、インタフェースのUp/Downなどのイベントをト
リガになる
色々作ってみました(1)
● つぶやくルータ○ 電力消費量をtweet○ https://github.com/iij/mruby/tree/iij/app/twitter
■ matsumoto-rさんにmrbgem化していただきました● https://github.com/matsumoto-r/mruby-oauth
色々作ってみました(2)
● Amazon S3○ 監視異常をトリガにして、コンテンツをアップロード
■ https://github.com/iij/mruby-aws-s3
監視異常
アップロード
いざ、組み込みの世界へ..
● 今までの組み込み機器開発○ ドライバ、アプリ(ロジック)全てC言語又はアセンブリ言語
で開発
● これからの方向性○ 速度やリソースの制約がある箇所だけC言語やアセンブ
リ言語で記述○ その他のロジック部分は、出来る限り開発効率の良い
言語で開発
Ruby技術者を組み込みの世界に誘いたい :-)
mrbgem
● mruby版のGEM● 2012年12月、本家にコミットされた● mrubyのビルド時にGEMを組み込むことができ
る○ rubyスクリプト、C言語のコードどちらも組み込み可能
mrbgemに対応した以後、mrubyのエコシステムが急速に進化中
https://github.com/mruby/mruby/wiki/Related-Projects
Small is Beautiful
● mruby(ミニマム)はruby言語の最少セットのみを提供○ 利用者は、必要なものだけを選んで組み込む○ 不要なものは入れなくて済むため、コンパクトになる
RiteVM
gem A(IO)
gem B(Regexp)
gem C(Socket)
gem A
gem B
Application Program
mrubyは組込機器以外にも適用できる
● アプリへの組み込みにも向いている● 例
○ apache に組み込む => mod_mruby○ iOSアプリに組み込む => MobiRuby○ 言語内DSL
■ mruby(ミニマム) + 必要なmrbgemだけを組み込むことで、コンパクトかつ堅牢になる
● 利点○ アプリ動作ホストのruby環境に依存しない
■ rubyバージョン、gem依存を気にしなくて良い
ruby+mruby = Internet of Things
● ruby + mrubyで、様々なモノやクラウドをインターネットを介して結び付けることができる
照明、家電、冷暖房、蓄電池、各種センサ ,etc.
mrubyはフロンティア :-)
● 現時点では、mrubyの基本部分が出来ただけ○ エコシステム、ドキュメント、mrbgemsなど、未整備のモノ多数
今ならコントリビュートできることが沢山あります!
軽量Rubyフォーラムのご紹介
● 2013年2月に発足予定のNPO法人
○ http://forum.mruby.org○ IIJも加入予定
● このような人・企業は、是非ご参加ください!○ 自社製品の開発言語として軽量Rubyを採用してみたい
○ 軽量Rubyの今後の開発方針をいち早く知りたい
○ 軽量Rubyの今後の開発方針について意見したい
○ 顧客に軽量Rubyを提案することで差別化を図りたい
○ 軽量Ruby(あるいはその周辺ツール)の開発に関与したい
○ 自社で軽量Ruby製品をNPOを通じて宣伝したい
○ 軽量Ruby教育関連事業を企画したい
○ とにかく軽量Rubyを応援したい
PR: mrubyの夕べ
● 日時: 1月28日(月)● 時間: 17:00-19:20● 場所: 東京 神保町 IIJ本社● http://bit.ly/mruby-evening
17:00-18:30 に、まつもとゆきひろさんによるmrubyに関する講演があります!