ScotlandJS 2016 @smithclay / New Relic What this talk isn't about • Code • Implementing HTTP/2 in Production • How HTTP/2 will totally, absolutely solve every performance problem (it won't). • H2 = HTTP/2
ScotlandJS 2016 @smithclay / New Relic Me ~40 ms roundtrip* Server San Francisco Northern Virginia Person Paris ~ 88ms roundtrip* *http://www.timbercon.com/time-delay-of-light-in-fiber-calculator/ *calculated using great-circle distance in fiber (not real life)
ScotlandJS 2016 @smithclay / New Relic More RTs, more latency Browser Server Data Transfer { Round trip 1. SYN 2. SYN/ACK 3. ACK { { TLS Full TCP + TLS (i.e. HTTPS) handshake TCP Handshake Cool TLS Demo: https://tls.openmirage.org/
ScotlandJS 2016 @smithclay / New Relic Front-end implications* Ciao Concatenation Sianara Sharding and Spriting Bye Inlining *Assuming most of your traffic has HTTP/2 capable browsers. https://blog.newrelic.com/2016/02/09/http2-best-practices-web-performance/
ScotlandJS 2016 @smithclay / New Relic PUSH_PROMISE FRAME • Not websockets replacement. • Intention to send responses. • https://www.w3.org/TR/ preload/#server-push-http-2 HTTP Request Precognition YOU WILL WANT THIS
ScotlandJS 2016 @smithclay / New Relic GOAWAY FRAME • Terminates the TCP connection. • Helps clients know what streams might not be processed. NO THANKS
ScotlandJS 2016 @smithclay / New Relic PING FRAME • Safely tests the connection without a request. • "A mechanism for measuring a minimal round-trip time from the sender, as well as determining whether an idle connection is still functional." STILL THERE?
ScotlandJS 2016 @smithclay / New Relic Takeaways Measure & Profile* Reduce Connections Design for latency CDNs: close to your users *http://wireshark.com/ https://mitmproxy.org/