Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O
making  HTTP  better
DeNA  Co.,  Ltd.
K...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
⾃自⼰己紹介
n  奥  ⼀一穂(株式会社ディー・エヌ・エー  CTO室)
n  ...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
HTTP  の現状と課題
3	
  H2O  -‐‑‒  making  HTTP  ...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Webアプリ実⾏行行環境の変遷(これまで)
n  CGI
⁃  外部プロセス起動によ...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Webアプリ実⾏行行環境の変遷(現在)
n  クラウド化
⁃  アプリサーバの⾃自動...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
Webアプリ実⾏行行環境の変遷(現在その2)
n  HTTP/2
⁃  HTTP/1...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
HTTPの適⽤用範囲拡⼤大と、その意義
n  Web  の普及とともに、HTTP  ...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
「⾮非ウェブ」領領域の拡⼤大
n  例例:
⁃  スマホアプリ(HTTP  はプロト...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
HTTPサーバが直⾯面している課題
n  最適化されたリバースプロキシ実装
⁃  ア...
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,  H...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  の⽬目標
n  ⾼高品質かつ便便利利な  HTTP  サーバ実装を提供する...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
デモとベンチマーク
13	
  H2O  -‐‑‒  making  HTTP  be...
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  ...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  の現状
n  HTTP/2  のサーバ実装におけるフロントランナー
⁃  ...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  の現状
17	
  H2O  -‐‑‒  making  HTTP  bet...
Copyright	
  (C)	
  2015	
  DeNA	
  Co.,Ltd.	
  All	
  Rights	
  Reserved.	
  
H2O  の主要機能⼀一覧
n  HTTP/1
n  HTTP/2(依存関係と重み...
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  ...
Upcoming SlideShare
Loading in …5
×

H2O - making HTTP better

48,096 views

Published on

presentation slides at データ転送ミドルウェア勉強会

Published in: Technology

H2O - making HTTP better

  1. 1. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O making  HTTP  better DeNA  Co.,  Ltd. Kazuho  Oku 1  
  2. 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. 3. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   HTTP  の現状と課題 3  H2O  -‐‑‒  making  HTTP  better
  4. 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. 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. 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. 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. 8. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   「⾮非ウェブ」領領域の拡⼤大 n  例例: ⁃  スマホアプリ(HTTP  はプロトコルの⼀一選択肢) ⁃  IoT(HTTP/1  はバンド幅的に重たいケースも) n  懸念念: ⁃  マイナーなプロトコルを使うことによるコスト増⼤大 •  品質や相互運⽤用性、ロックイン等 8  H2O  -‐‑‒  making  HTTP  better
  9. 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. 10. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O 10  H2O  -‐‑‒  making  HTTP  better
  11. 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. 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. 13. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   デモとベンチマーク 13  H2O  -‐‑‒  making  HTTP  better
  14. 14. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   14  H2O  -‐‑‒  making  HTTP  better
  15. 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. 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. 17. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   H2O  の現状 17  H2O  -‐‑‒  making  HTTP  better n  注⽬目度度⾼高
  18. 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. 19. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   まとめ 19  H2O  -‐‑‒  making  HTTP  better
  20. 20. Copyright  (C)  2015  DeNA  Co.,Ltd.  All  Rights  Reserved.   まとめ n  H2O  の⽬目標はクラウド,  HTTP/2,  常時  TLS  時代に最適 化された  HTTP  サーバ ⁃  優れた性能を低い管理理コストで提供 ⁃  HTTP  実装全体への波及効果も狙い n  ⽣生まれたてだが、注⽬目度度の⾼高いプロジェクト ⁃  コントリビュータ絶賛募集中 ⁃  「使ってみた」レポートや、感想、要望等お待ちして おります! 20  H2O  -‐‑‒  making  HTTP  better

×