Successfully reported this slideshow.
Your SlideShare is downloading. ×

H2O - making HTTP better

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 20 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to H2O - making HTTP better (20)

Advertisement

More from Kazuho Oku (20)

Recently uploaded (20)

Advertisement

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

×