Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
Webアプリ実⾏行行環境の変遷(現在)
n クラウド化
⁃ アプリサーバの⾃自動追加/削除等
⁃ Infrastructure as Code
n TLSが必須に
⁃ 「広範な盗聴は攻撃である」(RFC 7258)
⁃ ウェブブラウザにおいてHTTPを「安全でない」と表
⽰示する動き
5
H2O -‐‑‒ making HTTP better
6.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
Webアプリ実⾏行行環境の変遷(現在その2)
n HTTP/2
⁃ HTTP/1 の問題を解決
⁃ 優先度度制御による表⽰示速度度の⾼高速化
• 依存関係と重みづけによってコンテンツの優先順位を決定
⁃ 例例: CSS / JavaScript の後に画像をダウンロード
• サーバからのpush
⁃ CSSをHTMLの前に送信
⁃ ヘッダのデータ量量が⼤大きい
• プロトコルのバイナリ化と圧縮によりヘッダサイズを削減
⁃ 標準化完了了まで秒読み段階
6
H2O -‐‑‒ making HTTP better
7.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
HTTPの適⽤用範囲拡⼤大と、その意義
n Web の普及とともに、HTTP の適⽤用範囲は広がってきた
⁃ WebDAV(ファイルシステム)
⁃ Google Apps(メールやアプリ)
⁃ Canvas API / WebSocket(リアルタイムゲーム)
n プロトコルを HTTP に集約するメリット
⁃ 実装間の競争による品質向上
⁃ ロックインの回避
⁃ 相互運⽤用性の確保
⁃ 問題解析の容易易性
7
H2O -‐‑‒ making HTTP better
8.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
「⾮非ウェブ」領領域の拡⼤大
n 例例:
⁃ スマホアプリ(HTTP はプロトコルの⼀一選択肢)
⁃ IoT(HTTP/1 はバンド幅的に重たいケースも)
n 懸念念:
⁃ マイナーなプロトコルを使うことによるコスト増⼤大
• 品質や相互運⽤用性、ロックイン等
8
H2O -‐‑‒ making HTTP better
9.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
HTTPサーバが直⾯面している課題
n 最適化されたリバースプロキシ実装
⁃ アプリケーションサーバとの接続の使い回し
⁃ 動的な再構成や負荷分散制御
n TLS の適切切な設定
⁃ OCSP Stapling, Session Resumption w.
Memcached, Session Ticket w. automatic key
rollover, ...
n HTTP/2
⁃ 最適化された優先度度制御
⁃ プッシュ配信
⁃ 通信オーバーヘッドの圧縮
9
H2O -‐‑‒ making HTTP better
10.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
H2O
10
H2O -‐‑‒ making HTTP better
11.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
H2O
n 2014年年夏より開発しているウェブサーバ
⁃ HTTP/1, HTTP/2 (draft), WebSocket に対応
⁃ 2014/12/25 に最初のバージョンがリリース
⁃ 現在 Version 0.9.2-‐‑‒alpha1
n もともとはディー・エヌ・エー社内のゲーム⽤用サーバ
⁃ HTTP/1 処理理に picohttpparser を利利⽤用
• picohttpparser = PerlのWebアプリにおけるデファクト
11
H2O -‐‑‒ making HTTP better
12.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
H2O の⽬目標
n ⾼高品質かつ便便利利な HTTP サーバ実装を提供すること
⁃ 競争を促進することで HTTP 実装の⽔水準を上げる
⁃ それにより HTTP の適⽤用範囲を広げ、運⽤用を容易易に
n 短期的には:
⁃ HTTP/1, HTTP/2 と TLS の⾼高品質な実装たること
n 中期的には:
⁃ クラウドのメッセージングの中⼼心となる実装たること
12
H2O -‐‑‒ making HTTP better
13.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
デモとベンチマーク
13
H2O -‐‑‒ making HTTP better
14.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
14
H2O -‐‑‒ making HTTP better
15.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
なぜ速いのか
n シンプルで⾼高速なコードを書いているから
15
H2O -‐‑‒ making HTTP better
n 例例: node.js のものより10倍
⾼高速な HTTP/1 パーサ
⁃ これに触発され http-‐‑‒
parser が⾼高速化
⁃ → io.js が5%⾼高速に
16.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
H2O の現状
n HTTP/2 のサーバ実装におけるフロントランナー
⁃ we hope to see http2 support soon get added to popular
server implementations such as the Apache HTTP Server
and nginx. H2O is a new blazingly fast HTTP server with
http2 support that shows potential.
http://daniel.haxx.se/http2/http2-v1.8.pdf
⁃ So in the HTTP/2 era, we may see H2O as a new rising star,
next to the proven webservers like Nginx and Apache.
https://ma.ttias.be/architecting-websites-http2-era/
n HTTP/2 のプロトコル実装としては nghttp2 が最有⼒力力
16
H2O -‐‑‒ making HTTP better
17.
Copyright
(C)
2015
DeNA
Co.,Ltd.
All
Rights
Reserved.
H2O の現状
17
H2O -‐‑‒ making HTTP better
n 注⽬目度度⾼高