Putting the Network to Work Manish Vachharajani Senior Architect, F5 Networks
Your App vs. the Network The Internet Devices Servers Users
Your App vs. the Network (2) The Internet Devices Router Firewall Servers Users Limited Bandwidth Long Round Trip Times (RTT, aka Ping Time) Poor protocol and web browser interactions
High Performance Websites in One Slide Avoid Render Blocking by Scripts Avoid Render Blocking by CSS Minify HTML Minify Javascript Minify CSS Optimize Images Avoid Landing Page Redirects Prioritize Visible Content Leverage Browser Caching Reduce Server Response Time Optimize TCP for client networks Route clients to the best datacenter Use SSL False start Enable SSL Reuse Use OCSP stapling Use HSTS
Network Waterfall Timing Diagram Web Page Test (www.webpagetest.org)
Javascript and the Network
Transport Compression Increased Latency Transport Compression After compression 1.5 seconds faster Before Compression
CSS and the Network
Images, other External Resources and the Network CSS cascade 150 kB Images
Semantic Compression – Minification and JPG PNG Is BEtter UglifyCSS, … JPG is Better UglifyJS, …
Inlining Content Gross! But Effective! SPDY and HTTP/2.0 Resolve Connection Blocking with multiple Streams Per Connection
RTT and Connection Establishment Server Client Speed Of Light, NY to London is 28 ms 1.5 RTT = 84ms SYN 56 ms SYN/ACK ACK HTTP Request RTT is primarily controlled by ISP infrastructure Cannot reduce RTT Except by moving TCP end points closer to the client CDN, proper DNS resolution to closest datacenter
Now add TLS/SSL Client Server SYN SYN/ACK ACK/Client Hello Server Hello/Cert/etc. 224 ms ClientKeyExchange/Ciphers Ciphers HTTP Request
Optimize SSL Score your site: https://www.ssllabs.com/ssltest/ See istlsfastyet.com for suggestions Session resumption (i.e., reuse, caching ok, tickets preferred) reduces RTs To 168 ms in prior example (1 RT) SSL False Start Concurrently transmit application data with ClientKeyExchange Overlaps application data transfer with session establishment, hiding latency Early Termination Terminate connections closer to the end client OCSP Stapling Eliminate network traffic for client to validate server certificate HTTP Strict Transport Security Avoid HTTP to HTTPS redirect on subsequent visits
Lots of Other Stuff There are dozens of talks about how to best do each of these things, and avoid the problems. There are other effects and optmizations I have not even discussed here, and are not covered by Google Page Speed and other tools
F5 BIG IP The Internet Servers Users Devices DNS, Firewall, Load Balancing, Content Optimization, TCP optimization, SSL Acceleration, … BIG-IP Platform Servers Users
BIG IP Examples The Internet GET /index.html HTTP/1.1 Devices The Internet DNS, Firewall, Load Balancing, Content Optimization, TCP optimization, SSL Acceleration, … BIG-IP Platform Servers GET /index.html HTTP/1.1 GET /index.html HTTP/1.1 TCP Optimized SSL Optimized Cache Headers Added Optional Caching URL rewriting (CDN, etc.) SPDY, HTTP/2.0 … GET /index.css HTTP/1.1 Returns minified index.html minified inlined index.css, inlined imports inlined and minified index.js inlined images, etc. (inlining, minification configurable) GET /index.js HTTP/1.1
BIG IP Form Factors and Availability Hardware, Virtual Machine, Cloud Marketplace VMWare, Xen, KVM, and AWS Marketplace, BYOL in other clouds More deployment options going forward
LineRate Node.js in the datapath Bare Metal or VM (high performance or high density) Fully automated deployment via true REST API Download and buy at linerate.f5.com
Booth #508