Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O
making  HTTP  better
DeNA  Co.,  Ltd.
Kazuho  Oku
1	
  
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
⾃自⼰己紹介
n  奥  ⼀一穂(株式会社ディー・エヌ・エー  CTO室)
n  これまでの仕事:
⁃  Palmscape  /  Xiino
•  世界初のPalm  OS⽤用本格的ウェブブラウザ
⁃  IPA未踏スーパークリエータ(Webアプリ開発環境)
⁃  Q4M,  mycached  等  MySQL  拡張
⁃  picohttpparser,  Server::Starter,  Starlet,  …
•  Perl  のWebアプリケーションサーバ⽤用ライブラリ群
⁃  JSX
•  静的型付なJavaScript⽅方⾔言+最適化コンパイラ
2	
  H2O  -‐‑‒  making  HTTP  better
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
HTTP  の現状と課題
3	
  H2O  -‐‑‒  making  HTTP  better
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Webアプリ実⾏行行環境の変遷(これまで)
n  CGI
⁃  外部プロセス起動による柔軟性
n  Apache  +  mod_̲XXX
⁃  mod_̲fastcgi,  mod_̲jk,  mod_̲perl,  mod_̲php,  ...
⁃  Apacheと密結合してプロセス起動コストを改善
n  reverse  proxy
⁃  Jetty,  Unicorn,  Plack,  ...
⁃  粗結合化
4	
  H2O  -‐‑‒  making  HTTP  better
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Webアプリ実⾏行行環境の変遷(現在)
n  クラウド化
⁃  アプリサーバの⾃自動追加/削除等
⁃  Infrastructure  as  Code
n  TLSが必須に
⁃  「広範な盗聴は攻撃である」(RFC  7258)
⁃  ウェブブラウザにおいてHTTPを「安全でない」と表
⽰示する動き
5	
  H2O  -‐‑‒  making  HTTP  better
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
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
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
「⾮非ウェブ」領領域の拡⼤大
n  例例:
⁃  スマホアプリ(HTTP  はプロトコルの⼀一選択肢)
⁃  IoT(HTTP/1  はバンド幅的に重たいケースも)
n  懸念念:
⁃  マイナーなプロトコルを使うことによるコスト増⼤大
•  品質や相互運⽤用性、ロックイン等
8	
  H2O  -‐‑‒  making  HTTP  better
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
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O
10	
  H2O  -‐‑‒  making  HTTP  better
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
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
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
デモとベンチマーク
13	
  H2O  -‐‑‒  making  HTTP  better
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
14	
  H2O  -‐‑‒  making  HTTP  better
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%⾼高速に
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
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  の現状
17	
  H2O  -‐‑‒  making  HTTP  better
n  注⽬目度度⾼高
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  の主要機能⼀一覧
n  HTTP/1
n  HTTP/2(依存関係と重みづけによる優先度度制御,  Push)
n  リバースプロキシ(keep-‐‑‒alive,  実⾏行行中の再構成,  上流流接
続数の制限,  負荷のモニタリング)
n  YAML  による設定
n  SSL(⾃自動的なOCSP  stapling,  Memcached  を利利⽤用した  
session  resumption,  ⾃自動的な鍵更更新を伴う  session  
ticket)
※灰⾊色は未実装
18	
  H2O  -‐‑‒  making  HTTP  better
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
まとめ
19	
  H2O  -‐‑‒  making  HTTP  better
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
まとめ
n  H2O  の⽬目標はクラウド,  HTTP/2,  常時  TLS  時代に最適
化された  HTTP  サーバ
⁃  優れた性能を低い管理理コストで提供
⁃  HTTP  実装全体への波及効果も狙い
n  ⽣生まれたてだが、注⽬目度度の⾼高いプロジェクト
⁃  コントリビュータ絶賛募集中
⁃  「使ってみた」レポートや、感想、要望等お待ちして
おります!
20	
  H2O  -‐‑‒  making  HTTP  better

More Related Content

H2O - making HTTP better

  • 1. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O making  HTTP  better DeNA  Co.,  Ltd. Kazuho  Oku 1  
  • 2. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   ⾃自⼰己紹介 n  奥  ⼀一穂(株式会社ディー・エヌ・エー  CTO室) n  これまでの仕事: ⁃  Palmscape  /  Xiino •  世界初のPalm  OS⽤用本格的ウェブブラウザ ⁃  IPA未踏スーパークリエータ(Webアプリ開発環境) ⁃  Q4M,  mycached  等  MySQL  拡張 ⁃  picohttpparser,  Server::Starter,  Starlet,  … •  Perl  のWebアプリケーションサーバ⽤用ライブラリ群 ⁃  JSX •  静的型付なJavaScript⽅方⾔言+最適化コンパイラ 2  H2O  -‐‑‒  making  HTTP  better
  • 3. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   HTTP  の現状と課題 3  H2O  -‐‑‒  making  HTTP  better
  • 4. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   Webアプリ実⾏行行環境の変遷(これまで) n  CGI ⁃  外部プロセス起動による柔軟性 n  Apache  +  mod_̲XXX ⁃  mod_̲fastcgi,  mod_̲jk,  mod_̲perl,  mod_̲php,  ... ⁃  Apacheと密結合してプロセス起動コストを改善 n  reverse  proxy ⁃  Jetty,  Unicorn,  Plack,  ... ⁃  粗結合化 4  H2O  -‐‑‒  making  HTTP  better
  • 5. 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  注⽬目度度⾼高
  • 18. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O  の主要機能⼀一覧 n  HTTP/1 n  HTTP/2(依存関係と重みづけによる優先度度制御,  Push) n  リバースプロキシ(keep-‐‑‒alive,  実⾏行行中の再構成,  上流流接 続数の制限,  負荷のモニタリング) n  YAML  による設定 n  SSL(⾃自動的なOCSP  stapling,  Memcached  を利利⽤用した   session  resumption,  ⾃自動的な鍵更更新を伴う  session   ticket) ※灰⾊色は未実装 18  H2O  -‐‑‒  making  HTTP  better
  • 19. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   まとめ 19  H2O  -‐‑‒  making  HTTP  better
  • 20. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   まとめ n  H2O  の⽬目標はクラウド,  HTTP/2,  常時  TLS  時代に最適 化された  HTTP  サーバ ⁃  優れた性能を低い管理理コストで提供 ⁃  HTTP  実装全体への波及効果も狙い n  ⽣生まれたてだが、注⽬目度度の⾼高いプロジェクト ⁃  コントリビュータ絶賛募集中 ⁃  「使ってみた」レポートや、感想、要望等お待ちして おります! 20  H2O  -‐‑‒  making  HTTP  better