Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@flano-yuki
Last active February 9, 2016 09:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save flano-yuki/7d5ed99df954f3251b9b to your computer and use it in GitHub Desktop.
Save flano-yuki/7d5ed99df954f3251b9b to your computer and use it in GitHub Desktop.
HTTP2界隈、題材キーワード (お気軽にコメントお願いします)

HTTP/2

使い方/場所

  • Webのフロント(ブラウザと通信)
  • 構成: http://jxck.hatenablog.com/entry/http2-server-side-architecture
  • ネイティブアプリ (個人的に、あんまり分からない。ユースケース・構成例あれば
  • AWS環境/ELB (個人的に、あんまり分からない。ユースケース・構成例あれば
  • grpc (ユースケース・構成例あれば
  • DC内通信 (Reverse Proxy - App 間)
  • CDNでのHTTP2利用
  • MPEG DASH over HTTP2
  • 組み込み(で使う話も聞いたことある
  • (websocket over HTTP2)
  • (h2c ダイレクト・アップグレード)
  • アップグレード: https://www.ietf.org/proceedings/94/slides/slides-94-hopsrg-1.pdf

サーバ側

  • ミドルウェア喧々諤々
  • Apache, Nginx, H2O, nghttp2, ATS, Varnish, HA-Proxy, IIS...
  • ミドルウェアのh2サポート状態の差
  • (この状態はCritでエラーログ吐いて欲しいとか、微妙な差)
  • HTTP/2サーバのモニタリング
  • フレーム毎の送受信数とか
  • Settingsのパラメータ
  • Push時のRST_STREAM率
  • mod-h2のhttp2-status みたいなのとか(メモリ状況とか)
  • 監視
  • H2レイヤで追加で監視したいこと(不意のINADEQUATE_SECURITYとか問題が会った時にきづけないと辛い)
  • 外形監視(curlとかで?もともと外部サービス使ってる場合は?)
  • L4バランサなどから、振り分け先の生存確認にL7使っている場合は?(keepalivedのhttp_get等)
  • 振る舞いのテスト(confの正しさ)
  • varnishtestとか使うとある程度書けそう
  • H2レイヤチューニング
  • Max Concurrent Stream
  • table size
  • (DATA) frame size
  • timeout
  • TLSレイヤ
  • 暗号スイートとprefer、SNIだけ気をつければよい?
  • (Dynamic TLS record sizes)
  • https://summerwind.jp/docs/rfc7540/#section9-2
  • renegotiation使ってる人居るの? (Reactive Certificate-Based Client Authentication in HTTP/2)
  • tcpレイヤチューニング
  • http://tools.ietf.org/html/draft-stenberg-httpbis-tcp-01
  • https://github.com/HTTPWorkshop/workshop2015/wiki/HTTP-Ideas#http2-over-tcptls
  • Nginx/Apacheの既存の設定/プラグインとの相性
  • MaxClientsとかは...?
  • 既存のDDoS対策の有効性(コネクション数だけ見てる場合は?)
  • https://summerwind.jp/docs/rfc7540/#section10-5
  • サーバプッシュ
  • 使いたいユースケースとかあれば
  • Push API + Service Worker, (WebPush)
  • HPACK、WINDOW_UPDATE、パディング
  • 特に意識することは無さそう
  • ログフォーマット
  • access.log にh2 or h1出す、priority,stream_idとか欲しい?
  • log level(フレームレイヤログ)出したい?
  • 日和見暗号
  • alt-svc使いたい?
  • 巨大ヘッダ問題
  • https://summerwind.jp/docs/rfc7540/#section10-5-1
  • https://lists.w3.org/Archives/Public/public-webappsec/2016Jan/0013.html

運用

  • コネクションの生存時間の長期化
  • DNSレコード切り替えに時間がかかる?
  • gracefull reloadに時間がかかる?GOAWAYちゃんと投げて欲しい
  • ちゃんと負荷分散できる? alt-svc対応する・使える?
  • NATの内側ポートの枯渇?
  • 中間装置(各種スイッチ、L4バランサ等)にコネクション切られる?
  • 部分導入方法は?(並べてるところに1サーバだけ有効にしても、どんどん偏りそう)
  • h2.hoge.com みたいに分ける?
  • 構築増設・conf配布・障害対応・撤去時に考える事
  • 特に特殊な事は無いとは思う
  • 障害時の影響
  • PINGのタイムアウトまで待つ? Establishなコネクション数が増えるので、微妙ながら影響は増加する(無視できる程度かなと)?
  • HTTP/2をオフにする場合(特定のブラウザでバグが見つかったとか)
  • Directが無ければ大丈夫(事前知識がある場合、ってやつ)?
  • 上位L4バランサの分散アルゴリズム
  • rr, lc?

サイトパフォーマンス

  • 早くなる?遅くなる?正しい検証/測定とは
  • ブラウザは
  • First Paint?
  • ネットワーク状態はどういう場合を想定(ネットワーク遅延・パケットロス)
  • RUM
  • Priorityとサーバサイドモニタリング
  • Status Code 421
  • https://summerwind.jp/docs/rfc7540/#section9-1-2
  • HTTP/1.1での最適化をどうするか
  • 既にSPDY対応してる場合は?
  • コネクション再利用出来るように考慮スべきこと
  • https://summerwind.jp/docs/rfc7540/#section9

HTTP/2自体ではない問題

  • サイトのHTTPS化
  • PFS必須による復号の困難化
  • L7ネットワーク機器
  • OpenSSL 1.0.2対応
  • 古いOSでは...Static Linkするか? セキュリティフィックス対応とか自前?
  • 学習コスト
  • ミドルウェ構成変更コスト
  • 既存の運用ツールどれくらいある?
  • 手順書整備
  • 秘伝のタレconfファイルをどう移植するか

自前でHTTP/2のコードを書くとき

  • CLIツールなり、簡易サーバなり...欲しい時ある?
  • h2o, nghttp2 mruby
  • ライブラリ状況とか
  • Web Apprication
  • PHP7 -> HTTP/2なリクエスト出せる・プッシュ受け取れる
  • Go
  • 他は?

その他、疑問・質問・知見等あれば

  • ...

HTTP/2その先は?

  • ...
@flano-yuki
Copy link
Author

割りと入れてから考えればいいと思いつつ、懸念事項とか、他の人はどんなとこ気にしてるか言い合えれば良いかなと

SPDY入れてるってて問題なければ結構大丈夫そう(そういう人いる?

@Jxck
Copy link

Jxck commented Feb 7, 2016

足りてないこと

TLS 化

  • AD 問題 次回やりたい
    • 聞きたい freakout, scaleout etc
  • mixed contents 問題
    • iframe
  • アプリ設計
  • SNI 対応問題
    • android 2.3
    • win xp

http2

  • alpn 対応
  • 421 問題
  • ELB
    • loadbalance
  • CDN
    • Akamai, Cloudfront, Rackspace, Fastly etc
    • 対応して欲しい
    • Akamai の中の人
  • 自社 CA
    • ドメインと CA の同時更新
    • DC 内通信暗号化?
    • 聞きたい: さくら, データホテル, GMO etc
  • コンテンツ最適化
    • High Performance Web Site 問題
    • モバイルアプリ
  • 運用・監視
    • Logging
    • 障害・攻撃検知
    • メトリクス
    • ツール、実装
  • grpc

TODO

  • 412 のブログ @flano_yuki
  • いい感じの CA ツールを実装する @deeeet
  • http2conference 2016 9月
    • 各自、事例、数字、知見などを準備

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment