- 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
- サイトのHTTPS化
- PFS必須による復号の困難化
- L7ネットワーク機器
- OpenSSL 1.0.2対応
- 古いOSでは...Static Linkするか? セキュリティフィックス対応とか自前?
- 学習コスト
- ミドルウェ構成変更コスト
- 既存の運用ツールどれくらいある?
- 手順書整備
- 秘伝のタレconfファイルをどう移植するか
- CLIツールなり、簡易サーバなり...欲しい時ある?
- h2o, nghttp2 mruby
- ライブラリ状況とか
- Web Apprication
- PHP7 -> HTTP/2なリクエスト出せる・プッシュ受け取れる
- Go
- 他は?
- ...
- ...
割りと入れてから考えればいいと思いつつ、懸念事項とか、他の人はどんなとこ気にしてるか言い合えれば良いかなと
SPDY入れてるってて問題なければ結構大丈夫そう(そういう人いる?