オープンソースとマイクロソフト の良い関係 ~ Ruby on Rails on Azure ~ 日本Rubyの会 arton (Tajima Akio) D5-302
自己紹介 2000年(Ruby 1.4)から Rubyist 昼の仕事は、業種特化垂直統合システムの開発者 Ruby や C# や Java についての著作があります 2010 年の 9 月から Ruby のコミッタ
アジェンダ Ruby on Windows、Ruby on Rails on Azure Ruby は Windowsをサポートしています Windows 用 Ruby のディストリビューション 演能-Windows 特化 Web サーバインターフェイス 能楽堂-Ruby on Rails 特化ディストリビューション NougakuDoCompanion ― Azure 用インストーラ
プログラミング言語 Ruby スクリプト言語 正規表現、ヒアドキュメント、テキストベース ファイル、ディレクトリ操作 ソケット、http などのネットワークライブラリ クラスベースオブジェクト指向言語 class Ruby def hello puts ‘hello world !’ end Ruby.new.hello
プログラミング言語 Ruby (続) ほとんどすべてが式 if true 4 else 3 end #=> 4 関数プログラミング [1, 2, 3, 4].map(&:succ).inject(0, &:+) #=> 14 メタプログラミング
Rubyのサポートプラットフォーム Supported 公式にサポートしている。 エラーが残っている限りリリースしない。 Debian GNU/Linux 4.0 on IA32 Best Effort Supported には及ばない。 多少のエラーがあってもリリースしてしまう。 mswin32,mswin64,mingw32 他に Mac OS X (Intel) 10.5 以降 など 19/wiki/SupportedPlatformsJa
Windows ディストリビューション バイナリー配布 zip ― ruby mswin C:\Ruby ― RubyInstaller ActiveScriptRuby ― C:\Program Files ソースからビルド (Gemの作成に必須) 依存ライブラリの入手、ビルド コマンドラインからのMake 無料のビルド環境 (Visual C++ Express Edition) X64 については Platform SDK を併用
Ruby on Rails Web アプリケーションフレームワーク全部入り MVC フレームワーク テスティングフレームワーク 開発、テスト、運用の 3 つの環境 OR マッパー 特徴 少ないコード量 シンプルな生成物 少ない設定ファイル 純粋な設定ファイルは RDBMS の構成ファイルのみ
Ruby on Rails Web アプリケーションフレームワーク全部入り MVC フレームワーク テスティングフレームワーク 開発、テスト、運用の 3 つの環境 OR マッパー 特徴 少ないコード量 シンプルな生成物 少ない設定ファイル 純粋な設定ファイルは RDBMS の構成ファイルのみ
Ruby on Rails on Windows SQL Server binding ? MySQL IIS binding ? CGI ! 仮想ホスト中心主義 JRuby JDBC for SQL Server Tomcat + Apache with AJP or WebLogic それって次善の策と次善の策の組み合わせ……
Ruby on Rails の黄金パターン 一度起動したらメモリーフルになるまで常駐 仮想ホスト マルチプロセス Apache Web サーバ Thin or Mongrel etc. …… Rack Ruby on Rails アプリケーション Web サーバ Rub y
Http.sys Windows Server 2003 / Windows XP SP2 カーネルモードドライバ プロトコルハンドラ + リクエストベースイベント マルチプロセス 同一 ポート、マルチ URI Http.sys IIS 既定の Web サイト IIS 追加の Web サイト …… Web サーバ WCF ホスト アプリケーショ ン
演能 (Ennou & Ennoumu) Rack ハンドラー マルチプロセスサポート IIS と共存可能 Http.sys Ennou …… Rack Ruby on Rails アプリケーション Web サーバ Rub y Ennou
Visual C (x64) ですべてをビルド Ruby mswin64 zlib, yaml, OpenSSL などのライブラリ tds.lib, tiny_tds, activerecord_sqlserver Ennou/Ennoumu 1.0.x → Rails x → Rails 3.1 Http.sys は Administrator のみが利用可能 ローンチャ 能楽堂 (NougakuDo)
activerecord_sqlserver (tiny_tds) は、 SQL Azure に対応済み NougakuDo は X64 native Ruby on Rails は REST を推進 (サーバステートレス) → クラウドのスケーラビリティとの相性 Ruby on Rails on Azure
開発PC に構築した能楽堂とアプリケーションを 簡便な手順で zip 形式でパッケージ化 Web ロールに配置し、 zip をロードして実行 能楽堂コンパニオン
能楽堂コンパニオンの仕組み Web Role VM AdminWeb(8080) Management site Role Instance NougakudoControlle r Deploy runtime Deploy apps Control apps NougakudoLauncher Rack start(80) / stop Azure Storage Blob Table Queue Runtime Applications Configuration Configuration file
Ruby は Windows を サポートしている Web アプリケーション プラットフォームとして Ruby on Rails は実用レベルで稼働 Ruby on Rails 運用プラットフォームとして Windows Azure は有力な選択肢 まとめ
リファレンス 能楽堂 tiny_tds 演能 能楽堂コンパニオン Ruby環境構築講座 Windows編
ご清聴ありがとうございました アンケート にご協力 ください D5-302
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista,Windows 7 and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.