Post on 18-Jul-2015
Agenda
• What is a CDN? • Brief on Akamai • Advantages of a CDN • Exploiting Caching • Statistics & Numbers • Architectural Considerations • Further References
About Me - Gurpreet Luthra• 13+ years, Developer & Lead Consultant • Working on Scala • Spent last few months harnessing Akamai • Twitter: _zenx_
CDN Distribution Scheme
"NCDN - CDN" by Kanoha - Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons http://commons.wikimedia.org/wiki/File:NCDN_-_CDN.png#/media/File:NCDN_-_CDN.png
Examples of CDNs
https://hostingreview360.com/top-5-cdn-providers/
• 15-30% of all Web Traffic • $1.96 Billion Annual Revenue • 5000+ employees • 170,000 Servers in 102 countries • 2 trillion daily Internet interactions
http://www.akamai.com/html/about/facts_figures.html
http://www.akamai.com/html/technology/real-time-web-monitor.html
Recap — Why CDN?
• Caching: Reduced Page Construction Time • Closer: Reduced Latency • Traffic Offloaded: Reduced Loads • Backup: Served even if site is down • Protection: Prevent DoS Attacks • Others: Redirects/Auto-compression/Best-route
detection
Types of Caches on the Internet
• Web browser • Proxy • CDNs • Reverse Proxies • Web Server’s / Specialized Caches
cache-control
• max-age= (seconds) • s-maxage= • public • private • no-cache • must-revalidate • proxy-revalidate
https://www.mnot.net/cache_docs/#CACHE-CONTROL
Fingerprinting
• Javascripts • CSS • Assets
http://server.com/css/global-908e25f4bf641868d8683022a5b62f54.css
Fingerprinting
HTML Pages Not fingerprinted
5 - 30 mins
JS/CSS/Assets Fingerprinted 1 year
Images 30 days - 1 year
Cookie-less Domain
• Why submit cookies for every GET request for assets?
http://my-assets-host.com/css/global-908e25f4bf641868d8683022a5b62f54.css
Caching & SSL?
http://www.akamai.com/dl/feature_sheets/fs_edgesuite_securecontentdelivery.pdf
Impact on one Website
• 85% - 90% Traffic offloaded to Akamai • MONTH
• Assets: 100 GB (3KB Cookie) • Assets: 16 Million requests • Traffic: 47 TB (Akamai) • Traffic: 4 TB (Origin) • Peak: 742 Hits/sec (Akamai) • Peak: 47 Hits/sec (Origin)
Architectural Considerations
• Page Fragments • User Centric Data - Client Side - AJAX • Mobile/Non-Mobile Views in one payload
Further References
• The minimum about Web caching you should know: https://www.mnot.net/cache_docs
• http://www.mobify.com/blog/beginners-guide-to-http-cache-headers/
• http://guides.rubyonrails.org/asset_pipeline.html • http://www.ietf.org/rfc/rfc2616.txt (Section 14.9) • http://ocw.mit.edu/courses/mathematics/18-996-topics-in-
theoretical-computer-science-internet-research-problems-spring-2002/lecture-notes/
• http://www.akamai.com/dl/technical_publications/GloballyDistributedContentDelivery.pdf
• Image Credits: http://publicdomainvectors.org/