Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mrubyとこれからのWebサーバ技術

 mrubyとこれからのWebサーバ技術

Ruby東京プレゼンテーション2014テクニカルトーク後半

MATSUMOTO Ryosuke

February 01, 2014
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Research

Transcript

  1. mrubyとこれからのWebサーバ技術
    京都大学 松本 亮介
    (研究者として)

    View full-size slide

  2. Webサーバの構成の変化
    • CGIはforkのコストにより遅い
    • インタプリタをサーバプロセスに組み込む
    • コンテンツとWebサーバ機能が密結合
    • アプリケーションサーバとプロキシの分離
    • 各機能が疎結合
    • いかに各機能を効率よく連携させるか
    • mod_mrubyやngx_mrubyが有用
    2
    Ruby東京プレゼンテーション2014

    View full-size slide

  3. Webクライアントの変化と影響
    • PC上でのブラウザ
    • スマートフォンの普及
    • Webサーバへのアクセス数が日々増加
    • セッション確立のコストを低減させたい
    • 通信データの圧縮
    • SPDY、HTTP/2.0の登場
    • デバイスでもSPDY、HTTP/2.0通信がしたい
    • mruby-spdy、mruby-http2の開発
    3
    Ruby東京プレゼンテーション2014

    View full-size slide

  4. これからのWebサーバ技術とモノ
    • IoT(Internet of Things)
    • モノがインターネットとつながっていく
    • mrubyはIoTの時代に重要な役割を担う
    • よりWeb APIが普及
    • 各種デバイスがSPDY、HTTP/2.0でデータ通信
    • ユーザインターフェイスはデバイスに
    • データはAPIを介して向こう側に
    • 状態を持つ・持たないでアプリやデータを明確に分離
    4
    Ruby東京プレゼンテーション2014

    View full-size slide

  5. 状態を持つ・持たないで分離した結果
    • 汎用的で軽量なWebアプリ実行環境の開発が進む
    • 状態を持たないWebアプリと実行環境は使い捨て可能
    • Webアプリを静的コンテンツのように扱える
    • 汎用的な実行環境テスト[1]
    • 状態を持たないWebアプリと実行環境の分散化
    • 応用例
    – 必要な時にWebアプリと実行環境を作成・破棄・分散
    – P2Pによる静的コンテンツ[2]やWebアプリの負荷分散
    5
    [1]宮下剛輔・栗林健太郎・松本亮介, serverspec: 宣言的記述でサーバの状態をテスト可能な汎用性の高い
    テストフレームワーク, 情報処理学会研究報告 - 第24回 インターネットと運用技術(IOT), 2014年2月.
    [2] Hiroki Okamoto, Ryosuke Matsumoto, Yasuo Okabe, Design of Cooperative Load Distribution for
    Addressing Flash Crowds Using P2P File Sharing Network, IEEE 37th Annual International Computer Software
    and Applications Conference (COMPSAC2013), July 2013. 参照: http://blog.matsumoto-r.jp/?p=3679

    View full-size slide

  6. まとめ
    • 今後の課題
    – 状態を持つデータ(サーバ)をどう扱うか
    – 状態を持たないアプリの分散をどう実装するか
    • Webサーバのアーキテクチャの見直しの時期?
    – アーキテクチャの本質は20年変わっていない
    – Webサーバのプロセスモデルや権限分離の扱い
    – HTTP/2のタイミングでセキュリティやC10Kを見直す
    6
    Ruby東京プレゼンテーション2014

    View full-size slide