Reorganizing Website Architecture for HTTP/2 and Beyond

Kazuho Oku
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Reorganizing Website Architecture
for HTTP/2 and Beyond
DeNA Co., Ltd.
Kazuho Oku
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Who am I
n  lead developer of H2O HTTP/2 server
⁃  one of the most sophisticated HTTP/2 impl.
⁃  initial public release: 2014/10 (license: MITL)
⁃  used by Fastly, etc.
n  author of HTTP performance-related I-Ds
⁃  Cache Digests for HTTP/2
⁃  103 Early Hints
n  lives in Japan, works for DeNA Co., Ltd.
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Current State of HTTP
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Why use HTTP/2?
n  latency has become the bottleneck of the Web
n  HTTP/2 to conceal latency by raising concurrency
⁃  6 concurrent requests in HTTP/1
⁃  ~100 in HTTP/2
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Current state of HTTP
n  HTTP/2 (RFC 7540) released on May 2015
1: https://github.com/HTTPWorkshop/workshop2016/blob/master/talks/http2-review-data.pdf
Reorganizing Website Architecture for HTTP/2 and Beyond
45	
28	
37	
41	
18	
31	
0%	 20%	 40%	 60%	 80%	 100%	
2015/7	
2016/7	
#	of	transac+ons	by	Firefox1
HTTP	 HTTPS	(H1)	 HTTPS	(H2)
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Achievements
n  header compression (HPACK)
⁃  compression ratio: 90% (at median) according to
Mozilla
n  multiplexing
⁃  the tiled benchmark
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
So is everything optimal now? Not quite.
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Issues
n  errors in prioritization
n  TCP head-of-line blocking
n  inefficiency of HTTP/2 push
n  compression ratio of small responses
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Prioritization
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージが破損している可能性があります。コンピュー
ターを再起動して再度ファイルを開いてください。それでも赤い x が表示される場合は、イメージを削除して挿入してください。
イメージを表示できません。メモリ不足のためにイメージを開
くことができないか、イメージが破損している可能性がありま
す。コンピューターを再起動して再度ファイルを開いてくださ
い。それでも赤い x が表示される場合は、イメージを削除して
挿入してください。
イメージを表示できません。メモリ不足のためにイメージを
開くことができないか、イメージが破損している可能性があ
ります。コンピューターを再起動して再度ファイルを開いて
ください。それでも赤い x が表示される場合は、イメージを
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージが破損している可能性があります。コンピュー
ターを再起動して再度ファイルを開いてください。それでも赤い x が表示される場合は、イメージを削除して挿入してください。
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージが破損している可能性があります。コンピューターを再起動して再度ファイルを開いてください。それでも赤い x が表示さ
れる場合は、イメージを削除して挿入してください。
The prioritization tree
Reorganizing Website Architecture for HTTP/2 and Beyond
Root
Leader	G	
Follower	G	
weight:	1
HTML	
weight:	32
Image	
weight:	22
Image	
weight:	22
Image	
weight:	22
CSS	
weight:	32
CSS	
weight:	32
n  hybrid approach using weights and chaining
⁃  servers are expected to obey to the priority
specified by the clients
n  Firefoxʼs prioritization tree is shown below
JS	
weight:	32
JS	
weight:	32
イメージを表示できません。メモリ不足のためにイメージを
開くことができないか、イメージが破損している可能性があ
ります。コンピューターを再起動して再度ファイルを開いて
ください。それでも赤い x が表示される場合は、イメージを
削除して挿入してください。
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージが破損している可能性があります。コンピュータ
ーを再起動して再度ファイルを開いてください。それでも赤い x が表示される場合は、イメージを削除して挿入してください。
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
The prioritization tree
n  some web browsers fail to specify priority
⁃  Safari, Blink
⁃  older versions of Chrome also had issues
⁃  server-side countermeasures required
Reorganizing Website Architecture for HTTP/2 and Beyond
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージが破損している可能性があります。コンピューターを再起動して再
度ファイルを開いてください。それでも赤い x が表示される場合は、イメージを削除して挿入してください。
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージが破損している可能性があります。コンピューターを再起動して
再度ファイルを開いてください。それでも赤い x が表示される場合は、イメージを削除して挿入してください。
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イ
メージが破損している可能性があります。コンピューターを再起動して再度ファイルを
開いてください。それでも赤い x が表示される場合は、イメージを削除して挿入してく
ださい。
イメージを表示で
きません。メモリ
不足のためにイメ
ージを開くことが
イメージを表示できませ
ん。メモリ不足のために
イメージを開くことがで
きないか、イメージが破
イメージを表示できません。メモリ不足のためにイメージを開くことができないか、イメージ
が破損している可能性があります。コンピューターを再起動して再度ファイルを開いてくださ
い。それでも赤い x が表示される場合は、イメージを削除して挿入してください。
イメージを表示できません。メモリ不足のためにイメージを開くことができないか
ァイルを開いてください。それでも赤い x が表示される場合は、イメージを削除し
Root
HTML	
weight:	16
CSS	
weight:	16
JS	
weight:	16
Image	
weight:	16
Image	
weight:	16
Image	
weight:	16
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP/2 prioritization: the solution
n  bandwidth distribution on server-side:
⁃  use Weighted Fair Queuing (WFQ) or Deficit
Round Robin (DRR)
⁃  some servers do it right:
•  nghttp2 (and Apache) implements WFQ in O(log N)
•  H2O approximates WFQ in O(1)
n  detect dumb clients and fallback to server-driven
prioritization
⁃  H2O reprioritizes CSS, JS for clients that do not
use priority chains
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP/2 prioritization: benchmark
n  differences between the times spent until first-paint
(red bar)
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP head-of-line blocking
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Typical sequence of HTTP/2
Reorganizing Website Architecture for HTTP/2 and Beyond
HTTP/2 200 OK
<!DOCTYPE HTML>
...
<LINK HREF="style.css"...
client server
GET /
GET /style.css
need	to	switch	from	sending	HTML	
to	sending	CSS	at	this	very	moment,	
or	from	sending	images	to	sending	
CSS	in	case	the	CSS	in	discovered	
late	(i.e.	hidden	assets)
1	RTT
*
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP head-of-line blocking
n  head-of-line blocking:
⁃  high-priority data blocked by preceding data in
flight
n  TCP head-of-line blocking:
⁃  data in TCP send buffer blocks following data of
higher priority
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP head-of-line blocking
Reorganizing Website Architecture for HTTP/2 and Beyond
n  typical H2 server writes much more than that can be
sent immediately
⁃  unsent data in TCP send buffer (and TLS buffer)
head-of-line blocks following data
TCP	send	buffer
CWND	
unacked	 poll	threshold	
TLS	buf.
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP head-of-line blocking: the solution
n  write only what can be sent immediately
⁃  obtain CWND and unacked size using TCP_INFO
n  adjust poll threshold to delay write notification until
TCP becomes ready to send some data immediately
Reorganizing Website Architecture for HTTP/2 and Beyond
CWND	
unacked	 poll	threshold	
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
TCP	send	buffer
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP head-of-line blocking: benchmark 1
Reorganizing Website Architecture for HTTP/2 and Beyond
n  conditions:
⁃  server in Ireland, client in Tokyo (RTT 250ms)
⁃  load tiny js at the top of a large HTML
n  result: delay decreased from 511ms to 250ms
⁃  i.e. JS fetch latency was 2 RTT, became 1 RTT
•  similar results in other environments
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP head-of-line blocking: benchmark 2
n  using same data as previous
n  server and client both in Japan (25ms RTT)
Reorganizing Website Architecture for HTTP/2 and Beyond
0	
50	
100	
150	
200	
250	
300	
HTML	 JS	
milliseconds
downloading	HTML	(and	JS	within)	
RTT	~25ms
master	 latopt
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP buffers exist everywhere
n  HTTP/2 serverʼs TCP send buffer
⁃  the negative impact can be avoided by a clever
HTTP/2 server (as shown by H2O)
n  TLS terminator
⁃  better to avoid using, if performance matters
n  mobile networks
⁃  cannot be controlled by a web-site admin
⁃  QUIC would be the final solution
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Push
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Push
n  positive reports:
⁃  “20-30% speedup on page render time”2
n  negative comments:
⁃  many unnecessary pushes (47% are reset2)
⁃  increased render time in anti-patterns3
⁃  “consider preload instead of push”3
n  what is the cause of these negative views?
2: https://github.com/HTTPWorkshop/workshop2016/blob/master/talks/server-push.pdf
3: https://docs.google.com/document/d/1K0NykTXBbbbTlv60t5MyJvXjqKGsCVNYHyLEXIxYMv0/edit
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Itʼs the cached resources
n  server shouldnʼt push resources already cached
⁃  but HTTP/2 doesnʼt provide a way to determine
⁃  pushing same resources multiple times is waste
of bandwidth
n  solution: cache-digests
⁃  now an IETF HTTP WG draft
⁃  https://tools.ietf.org/html/draft-ietf-httpbis-
cache-digest-01
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Cache-digests
n  client sends a digest of cached responses along with
an HTTP request
n  server examines the digest, pushes only the
resources that arenʼt cached
n  digest: list of SHA(URL)s stored in Golomb-coded sets (a space-
efficient variant of bloom filter)
n  size of digest: ~ N*log2(1/P) bits
⁃  N: # of resources
⁃  P: false-positive-rate
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Example
n  set false positive rate to: P=1/27
n  calculate SHA256 of two URLs (N=2)
⁃  https://example.com/style.css (SHA256: baf9…)
⁃  https://example.com/script.js (SHA256: 1174…)
n  truncate to log2(N*1/P) bits and sort
⁃  0x11, 0xba
n  emit log2(N), log2(1/P) in 5 bits, then the deltas of
sorted list using Golomb coding (subtracted by 1)
⁃  00001 00111 1 0010001 01 010 1000
N 1/P 0x11 0xa8 (0xba-0x11-1)
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Overhead of sending a Cache Digest
n  # of fresh responses in browser cache per domain is
expected to be <~1K
⁃  looking at about:cache
•  *.facebook.com: 790
•  *.google.com: 373
n  HTTP request + cache-digest can be packed into a
single TCP packet
⁃  when setting P to 1/128 or 1/256
•  or, P can be set to a bigger value to conserve space,
or cache-digest could be split into multiple packets
following the HTTP request
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Implementation Status
n  three ways to send a cache-digest
⁃  I-D proposes the use of HTTP/2 frame
⁃  header-based scheme is TBD
•  so that websites can implement cache-digest using
ServiceWorker (e.g. cache-digest.js)
1: the listed softwares may have interoperability issues due to implementing different versions of the draft
2: approximating the cache state using cookies has accuracy issues
Reorganizing Website Architecture for HTTP/2 and Beyond
Conveyer Server	Implementa+on Client	Implementa+on
HTTP/2	frame nghYp2 N/A
HTTP	header1 Apache,	H2O cache-digest.js
HTTP	cookie2 H2O not	needed
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
but even after solving the never-push-cached-
resources issue, push doesnʼt necessarily improve
performance
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Benchmark scores
n  first-paint does not change
⁃  since the browser needs both HTML and CSS
⁃  push only changes the order between the two
n  less time spent showing a blank page
⁃  since unload happens when HTML arrives
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
so is push an useless technology? no
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Three use-cases of H2 push
n  prioritization
n  push while processing request
n  push from edge
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Pushing for prioritization
Reorganizing Website Architecture for HTTP/2 and Beyond
client server
GET /
GET
/style.css
HTTP/2 200 OK
<html>
<link
rel=style.css
...
HTTP/2 200 OK
body: ...
#title: ...
1.  send CSS, JS first
2.  then send HTML
(can be rendered
progressively)
without	push
client server
GET /
GET /style.css HTTP/2
HTTP/2 200 OK
body: ...
#title: ...
with	push
HTTP/2 200 OK
<html>

<link
rel=style.css ...
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Push while processing request
n  web applications involving DB access, etc.
Reorganizing Website Architecture for HTTP/2 and Beyond
req.
process	request
push-asset
HTML
push-asset
push-asset
push-asset
req.
process	request
asset
HTML
asset
asset
asset
req.
450ms	(5	RTT	+	processing	=me)
250ms	(1	RTT	+	processing	=me)
without	push with	push
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Push from edge
n  CDNsʼ use-case
⁃  utilize the conn. while waiting for app. response
Reorganizing Website Architecture for HTTP/2 and Beyond
req.
push-asset
HTML
push-asset
push-asset
push-asset
client edge	server	(CDN) app.	server
req.
HTML
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Impact of push
n  prioritization doesnʼt have much benefit
⁃  as discussed
n  push-while-processing, and push-from-edge are the
real use-cases
⁃  but how to use?
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Push while processing
Reorganizing Website Architecture for HTTP/2 and Beyond
req.
process	request
push-asset
HTML
push-asset
push-asset
push-asset
req.
process	request
asset
HTML
asset
asset
asset
req.
450ms	(5	RTT	+	processing	=me)
250ms	(1	RTT	+	processing	=me)
without	push with	push
n  One way is to configure the H2 server
mruby.handler: |
Proc.new do |env|
push_paths = []
if /(/|.html)$/.match(env["PATH_INFO"])
push_paths << "/style.css”
...
end
[399, push_paths.empty? ? {} : {
"link" => push_paths.map{|p|
"<#{p}>; rel=preload”
}.join("n")
}, []]
end
fastcgi.connect: ...
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Push while processing
Reorganizing Website Architecture for HTTP/2 and Beyond
n  or use 103 Early Hints
⁃  application sends 103 then processes the request
GET / HTTP/1.1
Host: example.com
HTTP/1.1 103 Early Hints
Link: </style.css>; rel=preload
HTTP/1.1 200 OK
Content-Type: text/html
Link: </style.css>; rel=preload
<!DOCTYPE HTML>
...
HTTP/2	server app.	server
GET	/
103	Early	Hints	
Link:	…
200	OK
process	request
Web	Browser
GET	/
200	OK
push
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
103 Early Hints
n  a new I-D (published last week)
⁃  https://tools.ietf.org/html/draft-kazuho-early-
hints-status-code-00
n  the status code indicates that the server is likely to
send a final request with the headers included in the
informational response
⁃  can be used to hint preloading 3rd party assets
(e.g. ads) as well
n  already supported by: nghttp2, H2O
⁃  other server / web-application framework
developers have shown interest
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Push from edge
n  at least some CDNs are likely to provide
configuration directives at the edge-server level
Reorganizing Website Architecture for HTTP/2 and Beyond
req.
push-asset
HTML
push-asset
push-asset
push-asset
client edge	server	(CDN) app.	server
req.
HTML
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
compression ratio of small responses
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
File size vs. compression ratio
n  claim: no need to concatenate, since H2 improves
request concurrency
n  reality: small files suffer from low compression ratio
⁃  problem for API as well
note: first N bytes of jquery-3.1.1.js compressed with best quality settings
Reorganizing Website Architecture for HTTP/2 and Beyond
0	
0.1	
0.2	
0.3	
0.4	
0.5	
0.6	
0.7	
0.8	
256	 1,024	 4,096	 16,384	 65,536	 86,709	
file	size
Compression	ra/o	of	a	JavaScript	file
gzip	
brotli
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Two proposals
n  Shared Dictionary Compression over HTTP (SDCH)
⁃  uses a pre-shared compression dictionary
⁃  https://tools.ietf.org/html/draft-lee-sdch-spec-00
n  Compression Dictionaries for HTTP/2
⁃  re-uses the compression context of a previously
transmitted response
⁃  https://tools.ietf.org/html/draft-vkrasnov-h2-
compression-dictionaries-01
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Differences between the approaches
n  pre-shared dictionary:
⁃  achieves high compression ratio when the
dictionary is cached by the client (i.e. when
revisiting)
⁃  cannot be used at first visit
n  re-using compression context of another response:
⁃  works effectively at first visit
⁃  easier to use, since no configuration needed
⁃  may have security issues
•  i.e. CRIME attack
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Compression ratio of small responses
n  beneficial to concatenate small files (to ~32KB or
larger) for the time being
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Summary
Reorganizing Website Architecture for HTTP/2 and Beyond
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
HTTP/2 is not perfect (yet)
n  choice of servers / CDNs causes difference
⁃  be careful when looking at benchmarks
n  avoid using:
⁃  TLS terminators
⁃  hidden assets (or un-hide them w. preload links)
n  use push for either of:
⁃  push-while-processing (103 Early Hints)
⁃  push-from-edge (configure your CDN)
n  continue to concatenate files, at least the tiny ones
Reorganizing Website Architecture for HTTP/2 and Beyond
1 of 47

Recommended

Developing the fastest HTTP/2 server by
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 serverKazuho Oku
52.3K views56 slides
H2O - the optimized HTTP server by
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP serverKazuho Oku
76.6K views74 slides
How happy they became with H2O/mruby and the future of HTTP by
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPIchito Nagata
26.9K views67 slides
CPUの同時実行機能 by
CPUの同時実行機能CPUの同時実行機能
CPUの同時実行機能Shinichiro Niiyama
4.4K views53 slides
plotnetcfg入門 | Introduction to plotnetcfg by
plotnetcfg入門 | Introduction to plotnetcfgplotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgKentaro Ebisawa
2.6K views8 slides
Linux Profiling at Netflix by
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at NetflixBrendan Gregg
1M views84 slides

More Related Content

What's hot

Gangliaはじめました by
GangliaはじめましたGangliaはじめました
Gangliaはじめましたyuzorock
21.5K views23 slides
Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messages by
Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messagesMulti-Tenancy Kafka cluster for LINE services with 250 billion daily messages
Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messagesLINE Corporation
2.6K views43 slides
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022 by
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022HostedbyConfluent
1.1K views61 slides
噛み砕いてKafka Streams #kafkajp by
噛み砕いてKafka Streams #kafkajp噛み砕いてKafka Streams #kafkajp
噛み砕いてKafka Streams #kafkajpYahoo!デベロッパーネットワーク
5.8K views38 slides
10GbE時代のネットワークI/O高速化 by
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
59.4K views67 slides
BPF Internals (eBPF) by
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)Brendan Gregg
15.3K views122 slides

What's hot(20)

Gangliaはじめました by yuzorock
GangliaはじめましたGangliaはじめました
Gangliaはじめました
yuzorock21.5K views
Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messages by LINE Corporation
Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messagesMulti-Tenancy Kafka cluster for LINE services with 250 billion daily messages
Multi-Tenancy Kafka cluster for LINE services with 250 billion daily messages
LINE Corporation2.6K views
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022 by HostedbyConfluent
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
HostedbyConfluent1.1K views
10GbE時代のネットワークI/O高速化 by Takuya ASADA
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA59.4K views
BPF Internals (eBPF) by Brendan Gregg
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
Brendan Gregg15.3K views
Jenkins multi configuration (matrix) by Muhammad Zbeedat
Jenkins multi configuration (matrix)Jenkins multi configuration (matrix)
Jenkins multi configuration (matrix)
Muhammad Zbeedat899 views
From Generator to Fiber the Road to Coroutine in PHP by Albert Chen
From Generator to Fiber the Road to Coroutine in PHPFrom Generator to Fiber the Road to Coroutine in PHP
From Generator to Fiber the Road to Coroutine in PHP
Albert Chen669 views
マルチコアとネットワークスタックの高速化技法 by Takuya ASADA
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
Takuya ASADA16.9K views
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料) by NTT DATA Technology & Innovation
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
VPP事始め by npsg
VPP事始めVPP事始め
VPP事始め
npsg11.2K views
Container Performance Analysis by Brendan Gregg
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
Brendan Gregg448.6K views
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C... by Preferred Networks
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
Preferred Networks2.1K views
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】 by Masahito Zembutsu
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu82.4K views
Using eBPF to Measure the k8s Cluster Health by ScyllaDB
Using eBPF to Measure the k8s Cluster HealthUsing eBPF to Measure the k8s Cluster Health
Using eBPF to Measure the k8s Cluster Health
ScyllaDB778 views
DPDKによる高速コンテナネットワーキング by Tomoya Hibi
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi6.6K views
SHARP: In-Network Scalable Hierarchical Aggregation and Reduction Protocol by inside-BigData.com
SHARP: In-Network Scalable Hierarchical Aggregation and Reduction ProtocolSHARP: In-Network Scalable Hierarchical Aggregation and Reduction Protocol
SHARP: In-Network Scalable Hierarchical Aggregation and Reduction Protocol
inside-BigData.com1.4K views

Similar to Reorganizing Website Architecture for HTTP/2 and Beyond

Recent Advances in HTTP, controlling them using ruby by
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyKazuho Oku
9.8K views37 slides
H2O - making the Web faster by
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web fasterKazuho Oku
24.2K views29 slides
CON5898 What Servlet 4.0 Means To You by
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouEdward Burns
31.5K views51 slides
Improving your shell usage - 2010 by
Improving your shell usage - 2010Improving your shell usage - 2010
Improving your shell usage - 2010Chris Sinjakli
360 views28 slides
Servlet 4.0 at GeekOut 2015 by
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Edward Burns
19.3K views87 slides
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015 by
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015Edward Burns
19.2K views82 slides

Similar to Reorganizing Website Architecture for HTTP/2 and Beyond(20)

Recent Advances in HTTP, controlling them using ruby by Kazuho Oku
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using ruby
Kazuho Oku9.8K views
H2O - making the Web faster by Kazuho Oku
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web faster
Kazuho Oku24.2K views
CON5898 What Servlet 4.0 Means To You by Edward Burns
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
Edward Burns31.5K views
Improving your shell usage - 2010 by Chris Sinjakli
Improving your shell usage - 2010Improving your shell usage - 2010
Improving your shell usage - 2010
Chris Sinjakli360 views
Servlet 4.0 at GeekOut 2015 by Edward Burns
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
Edward Burns19.3K views
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015 by Edward Burns
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Edward Burns19.2K views
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento by FIWARE
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE486 views
The 5 most common reasons for a slow WordPress site and how to fix them by Otto Kekäläinen
The 5 most common reasons for a slow WordPress site and how to fix themThe 5 most common reasons for a slow WordPress site and how to fix them
The 5 most common reasons for a slow WordPress site and how to fix them
Otto Kekäläinen780 views
Web375 course project web architecture plan for the de vry daily tribune new... by bestwriter
Web375 course project  web architecture plan for the de vry daily tribune new...Web375 course project  web architecture plan for the de vry daily tribune new...
Web375 course project web architecture plan for the de vry daily tribune new...
bestwriter23 views
Angular (v2 and up) - Morning to understand - Linagora by LINAGORA
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
LINAGORA480 views
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco by Alessandro Nadalin
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
Alessandro Nadalin3.8K views
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to... by Datacratic
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
Datacratic1.4K views
Meetup Tech Talk on Web Performance by Jean Tunis
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web Performance
Jean Tunis132 views
Angular v2 et plus : le futur du développement d'applications en entreprise by LINAGORA
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entreprise
LINAGORA794 views
HTTP/2, HTTP/3 and SSL/TLS State of the Art in Our Servers by Jean-Frederic Clere
HTTP/2, HTTP/3 and SSL/TLS State of the Art in Our ServersHTTP/2, HTTP/3 and SSL/TLS State of the Art in Our Servers
HTTP/2, HTTP/3 and SSL/TLS State of the Art in Our Servers
Jean-Frederic Clere1.7K views
Surviving Slashdot by johnbuckman
Surviving SlashdotSurviving Slashdot
Surviving Slashdot
johnbuckman589 views
Willing Webcam manual by wwwilling
Willing Webcam manualWilling Webcam manual
Willing Webcam manual
wwwilling2.3K views

More from Kazuho Oku

HTTP/2で 速くなるとき ならないとき by
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときKazuho Oku
36K views102 slides
QUIC標準化動向 〜2017/7 by
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7Kazuho Oku
9.8K views37 slides
HTTP/2の課題と将来 by
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来Kazuho Oku
36.4K views50 slides
TLS 1.3 と 0-RTT のこわ〜い話 by
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話Kazuho Oku
15K views28 slides
Programming TCP for responsiveness by
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
3.5K views17 slides
Programming TCP for responsiveness by
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
9.7K views30 slides

More from Kazuho Oku(20)

HTTP/2で 速くなるとき ならないとき by Kazuho Oku
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
Kazuho Oku36K views
QUIC標準化動向 〜2017/7 by Kazuho Oku
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
Kazuho Oku9.8K views
HTTP/2の課題と将来 by Kazuho Oku
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
Kazuho Oku36.4K views
TLS 1.3 と 0-RTT のこわ〜い話 by Kazuho Oku
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku15K views
Programming TCP for responsiveness by Kazuho Oku
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
Kazuho Oku3.5K views
Programming TCP for responsiveness by Kazuho Oku
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
Kazuho Oku9.7K views
TLS & LURK @ IETF 95 by Kazuho Oku
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
Kazuho Oku3K views
HTTPとサーバ技術の最新動向 by Kazuho Oku
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
Kazuho Oku44.3K views
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先 by Kazuho Oku
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
Kazuho Oku44.9K views
Cache aware-server-push in H2O version 1.5 by Kazuho Oku
Cache aware-server-push in H2O version 1.5Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5
Kazuho Oku4.6K views
HTTP/2時代のウェブサイト設計 by Kazuho Oku
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計
Kazuho Oku52.2K views
H2O - making HTTP better by Kazuho Oku
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
Kazuho Oku54.5K views
JSON SQL Injection and the Lessons Learned by Kazuho Oku
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons Learned
Kazuho Oku37.8K views
JSX 速さの秘密 - 高速なJavaScriptを書く方法 by Kazuho Oku
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku29.1K views
JSX の現在と未来 - Oct 26 2013 by Kazuho Oku
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
Kazuho Oku8.2K views
Using the Power to Prove by Kazuho Oku
Using the Power to ProveUsing the Power to Prove
Using the Power to Prove
Kazuho Oku2.8K views
JSX - 公開から1年を迎えて by Kazuho Oku
JSX - 公開から1年を迎えてJSX - 公開から1年を迎えて
JSX - 公開から1年を迎えて
Kazuho Oku8.3K views
JSX - developing a statically-typed programming language for the Web by Kazuho Oku
JSX - developing a statically-typed programming language for the WebJSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the Web
Kazuho Oku18.5K views
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜 by Kazuho Oku
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
Kazuho Oku17K views

Recently uploaded

Measuring User on the web with the core web vitals - by @theafolayan.pptx by
Measuring User on the web with the core web vitals - by @theafolayan.pptxMeasuring User on the web with the core web vitals - by @theafolayan.pptx
Measuring User on the web with the core web vitals - by @theafolayan.pptxOluwaseun Raphael Afolayan
14 views13 slides
Generative AI: Shifting the AI Landscape by
Generative AI: Shifting the AI LandscapeGenerative AI: Shifting the AI Landscape
Generative AI: Shifting the AI LandscapeDeakin University
78 views55 slides
"Node.js vs workers — A comparison of two JavaScript runtimes", James M Snell by
"Node.js vs workers — A comparison of two JavaScript runtimes", James M Snell"Node.js vs workers — A comparison of two JavaScript runtimes", James M Snell
"Node.js vs workers — A comparison of two JavaScript runtimes", James M SnellFwdays
14 views30 slides
"Package management in monorepos", Zoltan Kochan by
"Package management in monorepos", Zoltan Kochan"Package management in monorepos", Zoltan Kochan
"Package management in monorepos", Zoltan KochanFwdays
37 views18 slides
Deep Tech and the Amplified Organisation: Core Concepts by
Deep Tech and the Amplified Organisation: Core ConceptsDeep Tech and the Amplified Organisation: Core Concepts
Deep Tech and the Amplified Organisation: Core ConceptsHolonomics
17 views21 slides
Qualifying SaaS, IaaS.pptx by
Qualifying SaaS, IaaS.pptxQualifying SaaS, IaaS.pptx
Qualifying SaaS, IaaS.pptxSachin Bhandari
1.1K views8 slides

Recently uploaded(20)

"Node.js vs workers — A comparison of two JavaScript runtimes", James M Snell by Fwdays
"Node.js vs workers — A comparison of two JavaScript runtimes", James M Snell"Node.js vs workers — A comparison of two JavaScript runtimes", James M Snell
"Node.js vs workers — A comparison of two JavaScript runtimes", James M Snell
Fwdays14 views
"Package management in monorepos", Zoltan Kochan by Fwdays
"Package management in monorepos", Zoltan Kochan"Package management in monorepos", Zoltan Kochan
"Package management in monorepos", Zoltan Kochan
Fwdays37 views
Deep Tech and the Amplified Organisation: Core Concepts by Holonomics
Deep Tech and the Amplified Organisation: Core ConceptsDeep Tech and the Amplified Organisation: Core Concepts
Deep Tech and the Amplified Organisation: Core Concepts
Holonomics17 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu474 views
Measurecamp Brussels - Synthetic data.pdf by Human37
Measurecamp Brussels - Synthetic data.pdfMeasurecamp Brussels - Synthetic data.pdf
Measurecamp Brussels - Synthetic data.pdf
Human37 27 views
Cocktail of Environments. How to Mix Test and Development Environments and St... by Aleksandr Tarasov
Cocktail of Environments. How to Mix Test and Development Environments and St...Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE85 views
AI + Memoori = AIM by Memoori
AI + Memoori = AIMAI + Memoori = AIM
AI + Memoori = AIM
Memoori15 views
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdf by MichaelOLeary82
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdfAdopting Karpenter for Cost and Simplicity at Grafana Labs.pdf
Adopting Karpenter for Cost and Simplicity at Grafana Labs.pdf
MichaelOLeary8213 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays38 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
"Node.js Development in 2024: trends and tools", Nikita Galkin by Fwdays
"Node.js Development in 2024: trends and tools", Nikita Galkin "Node.js Development in 2024: trends and tools", Nikita Galkin
"Node.js Development in 2024: trends and tools", Nikita Galkin
Fwdays37 views
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf by ThomasBronack
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdfBronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf
ThomasBronack31 views
Initiating and Advancing Your Strategic GIS Governance Strategy by Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software198 views

Reorganizing Website Architecture for HTTP/2 and Beyond