Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
サーバ技術の評価軸
5HTTPとサーバ技術の最新動向
6.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
サーバ技術の評価軸
サーバ負荷
転送データ量
応答性
設定・運用コスト
6HTTPとサーバ技術の最新動向
7.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
サーバ負荷の削減
例: HandlerSocket
⁃ DeNA樋口が開発
• MySQL Conference Community Awards 2011受賞
⁃ MySQLサーバにKVSプロトコルを追加
⁃ 単純なクエリにSQLを使わないことにより、大量の接
続を高速に処理
⁃ 効果:
• スレーブ台数を削減(LANのデータ転送量も)
• サーバが数千台規模だと、削減コスト>>開発費
7HTTPとサーバ技術の最新動向
8.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
転送データ量の削減
主な受益者
⁃ 大規模事業者
⁃ モバイル回線のユーザ
参考:
⁃ Amazon EC2のネットワーク価格: 〜$0.05/GB
• 10Gbps * 1 year = 40PB / year → 2.4億円 / 年
8HTTPとサーバ技術の最新動向
9.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
応答性
9HTTPとサーバ技術の最新動向
出典: http://radar.oreilly.com/2009/06/bing-and-google-agree-slow-pag.html
レスポンスタイム短縮 → 売上増加
10.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
HTTP/2の基本
10HTTPとサーバ技術の最新動向
11.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
誕生の背景
11HTTPとサーバ技術の最新動向
12.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
転送データ量は増大中
12HTTPとサーバ技術の最新動向
出典: http://httparchive.org/trends.php?s=All&minlabel=Aug+1+2011&maxlabel=Aug+1+2015#bytesTotal&reqTotal
13.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
バンド幅も増大中
エンドユーザのバンド幅は年率50%で増加(ニールセン
の法則)
13HTTPとサーバ技術の最新動向
出典: http://www.nngroup.com/articles/law-of-bandwidth/
14.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
未来はバラ色?
14HTTPとサーバ技術の最新動向
15.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
ページロード時間はバンド幅に比例しない
15HTTPとサーバ技術の最新動向
出典: More Bandwidth Doesn't Matter - 2011 Mike Belshe (Google)
※実効バンド幅は1.6Mbps程度で頭打ちに
16.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
ページロードはレイテンシが小さいほど速い
16HTTPとサーバ技術の最新動向
出典: More Bandwidth Doesn't Matter - 2011 Mike Belshe (Google)
17.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
Why?
17HTTPとサーバ技術の最新動向
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
サーバプッシュ
例: RTT=50ms, アプリサーバの処理時間=200ms
52HTTPとサーバ技術の最新動向
req.
processrequest
push-asset
HTML
push-asset
push-asset
push-asset
req.
processrequest
asset
HTML
asset
asset
asset
req.
450ms(5RTT+processingme)
250ms(1RTT+processingme)
without push with push
53.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
サーバプッシュ
CDNによるウェブ高速化にも応用可能
⁃ アプリサーバの応答を待つ間も回線を有効活用可能
⁃ アプリ提供者は、その分、アプリサーバの設置拠点を
減らすことが可能に
53HTTPとサーバ技術の最新動向
req.
push-asset
HTML
push-asset
push-asset
push-asset
client edge server (CDN) app. server
req.
HTML
54.
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
サーバプッシュ
実用にむけた課題:
⁃ (クライアントに頼らない)優先度制御
⁃ プッシュの起動方法
⁃ ブラウザキャッシュとの兼ね合い
54HTTPとサーバ技術の最新動向
Copyright (C) 2016DeNA Co.,Ltd. All Rights Reserved.
非同期タスクを用いたESI実装
# HTML内の<ESI>タグを展開しつつ、届いたところからクライアントに送信
class ESIResponse
def initialize(input)
@parts = input.split /(<esi:include +src=".*?" */>)/
@parts.each_with_index do |part, index|
@parts[index] = http_request("http://127.0.0.1:5000/#{$1}")
if /^<esi:include +src=" *(.*?) *"/.match(part)
end
end
def each(&block)
@parts.each do |part
if part.kind_of? String
block.call(part)
else
part.join[2].each(&block)
end
end
end
end
88HTTPとサーバ技術の最新動向