HTTP/2 and Fiori
Sascha Wenninger
@sufw
NET52433 @ TechEd 2017
@sufw
What?
Next version of HTTP Protocol
Based on Google’s SPDY
Designed to ‘fix’ many annoying aspects of HTTP
@sufw
Why?
• Binary
• Multiplexing
• Header Compression
• Encryption
Image credit: Nick Yang
@sufw
Multiplexing - Benefits
With HTTP/1.1, browsers open 4-8 TCP connections per origin
For each connection:
• TCP Handshake (2 Round-Trips)
• TLS Handshake (2+ Round Trips)
• TCP Slow Start
HTTP/2 Multiplexing avoids this!
1 TCP Connection for everything
Application  HTTP
Presentation  TLS
Session
Transport  TCP
Network  IP
Data Link
Physical
@sufw
Can I use it? – Browser
• IE 6 = WTF?
• IE 7 = LOL
• IE 8 = No
• IE 11 = Kind of
• Anything* else = Yes!
*yes even Edge!
@sufw
Can I use it? – Server
• SAP WebDispatcher/ICM kernel >= 7.49
• Proper SSL setup
@sufw
Set it up!
1. icm/HTTP/support_http2=true
2. Restart ICM
See Nick Yang’s blog post
SAP Web Dispatcher
ABAP System Java System
ICM
HANA DB
ICM
HANA DB
HTTP/2
HTTP/1.1
@sufw
Set it up!
1. icm/HTTP/support_http2=true
2. Restart ICM
Bonus points for Web Dispatcher:
wdisp/support_http2_to_backend=true
See Nick Yang’s blog post
SAP Web Dispatcher
ABAP System Java System
ICM
HANA DB
ICM
HANA DB
HTTP/2
HTTP/2
@sufw
Isn’t TLS Slow?
@sufw
Isn’t TLS Slow?
No.
@sufw
Isn’t TLS Slow?
No.
Not even on an SAP ICM, on ~2011 era hardware!
3%
Throughput Response Time (ms)
Requests/s* Median 99th percentile
HTTP 93 20 33
HTTPS 93 36 40 4%
*Designed for 100/s, so my PC wasn’t fast enough.
New TLS Handshake for each connection
7%
@sufw
Let’s Test!
My role-based Fiori Launchpad
UI5 1.44
~180ms to server
30Mbps WAN link
Chrome
Empty cache
n=10
Time to Load event
@sufw
TCP Connections
See chrome://net-internals/#sockets
Requests TCP Handshakes TLS Handshakes
HTTP/1.1 68 7 7
HTTP/2 68 1 1
@sufw
Profit!
0
1
2
3
4
5
0 2 4 6 8 10 12 14 16 18 20 22 24
Frequency
Load Time
Fiori Launchpad: Time to 'Load' event
That’s the median, obviously
-20%
18s
14s
@sufw
@sufw
Fiori CDN
• Often A Good Idea, but depends on network topology
• Where are your users? Is Akamai really “closer”?
• Do you have Riverbed WAN Acceleration?
• Is your internet link congested?
• Is your proxy slow?
• Individual results may vary
• Does not currently support HTTP/2, even though Akamai does 
@sufw
@sufw
@sufw
Profit!
0
1
2
3
4
5
0 2 4 6 8 10 12 14 16 18 20 22 24
Frequency
Load Time
Fiori Launchpad: Time to 'Load' event
-20%
18s
14s
-20%
11s
@sufw
@sufw
Further Reading
• The HTTP/2 “Home Page”
• The HTTP/2 RFC
• SAP Help on HTTP/2
• Nick Yang’s blog post about HTTP/2
• Set up Fiori CDN
• Improving Fiori Performance
• Is TLS Fast Yet?
• My blog post on TLS performance
• Browser support for HTTP/2
@sufw
Thank you!
Sascha Wenninger
sascha@BlueT.com.sg
@sufw
+65 8799 1446
https://www.slideshare.net/sufw/http2-and-sap-fiori

HTTP/2 and SAP Fiori

  • 1.
    HTTP/2 and Fiori SaschaWenninger @sufw NET52433 @ TechEd 2017
  • 2.
    @sufw What? Next version ofHTTP Protocol Based on Google’s SPDY Designed to ‘fix’ many annoying aspects of HTTP
  • 3.
    @sufw Why? • Binary • Multiplexing •Header Compression • Encryption Image credit: Nick Yang
  • 4.
    @sufw Multiplexing - Benefits WithHTTP/1.1, browsers open 4-8 TCP connections per origin For each connection: • TCP Handshake (2 Round-Trips) • TLS Handshake (2+ Round Trips) • TCP Slow Start HTTP/2 Multiplexing avoids this! 1 TCP Connection for everything Application  HTTP Presentation  TLS Session Transport  TCP Network  IP Data Link Physical
  • 5.
    @sufw Can I useit? – Browser • IE 6 = WTF? • IE 7 = LOL • IE 8 = No • IE 11 = Kind of • Anything* else = Yes! *yes even Edge!
  • 6.
    @sufw Can I useit? – Server • SAP WebDispatcher/ICM kernel >= 7.49 • Proper SSL setup
  • 7.
    @sufw Set it up! 1.icm/HTTP/support_http2=true 2. Restart ICM See Nick Yang’s blog post SAP Web Dispatcher ABAP System Java System ICM HANA DB ICM HANA DB HTTP/2 HTTP/1.1
  • 8.
    @sufw Set it up! 1.icm/HTTP/support_http2=true 2. Restart ICM Bonus points for Web Dispatcher: wdisp/support_http2_to_backend=true See Nick Yang’s blog post SAP Web Dispatcher ABAP System Java System ICM HANA DB ICM HANA DB HTTP/2 HTTP/2
  • 9.
  • 10.
  • 11.
    @sufw Isn’t TLS Slow? No. Noteven on an SAP ICM, on ~2011 era hardware! 3% Throughput Response Time (ms) Requests/s* Median 99th percentile HTTP 93 20 33 HTTPS 93 36 40 4% *Designed for 100/s, so my PC wasn’t fast enough. New TLS Handshake for each connection 7%
  • 12.
    @sufw Let’s Test! My role-basedFiori Launchpad UI5 1.44 ~180ms to server 30Mbps WAN link Chrome Empty cache n=10 Time to Load event
  • 13.
    @sufw TCP Connections See chrome://net-internals/#sockets RequestsTCP Handshakes TLS Handshakes HTTP/1.1 68 7 7 HTTP/2 68 1 1
  • 14.
    @sufw Profit! 0 1 2 3 4 5 0 2 46 8 10 12 14 16 18 20 22 24 Frequency Load Time Fiori Launchpad: Time to 'Load' event That’s the median, obviously -20% 18s 14s
  • 15.
  • 16.
    @sufw Fiori CDN • OftenA Good Idea, but depends on network topology • Where are your users? Is Akamai really “closer”? • Do you have Riverbed WAN Acceleration? • Is your internet link congested? • Is your proxy slow? • Individual results may vary • Does not currently support HTTP/2, even though Akamai does 
  • 17.
  • 18.
  • 19.
    @sufw Profit! 0 1 2 3 4 5 0 2 46 8 10 12 14 16 18 20 22 24 Frequency Load Time Fiori Launchpad: Time to 'Load' event -20% 18s 14s -20% 11s
  • 20.
  • 21.
    @sufw Further Reading • TheHTTP/2 “Home Page” • The HTTP/2 RFC • SAP Help on HTTP/2 • Nick Yang’s blog post about HTTP/2 • Set up Fiori CDN • Improving Fiori Performance • Is TLS Fast Yet? • My blog post on TLS performance • Browser support for HTTP/2
  • 22.
    @sufw Thank you! Sascha Wenninger sascha@BlueT.com.sg @sufw +658799 1446 https://www.slideshare.net/sufw/http2-and-sap-fiori