Fastly VP of Technology Hooman Beheshti gives a keynote on The Future of CDNs at Software Practice Advancement Conference 2015.
More resources: http://spaconference.org/spa2015/uploads/resources/SPA%202015%20KEYNOTE%20AND%20DIVERSIONS.pdf
5. Deployment
• Originally simple:
• Serve root web page (HTML) direct from origin
• Point static assets on the page to a domain owned by the CDN
• Everything controlled through DNS
21. Three types of content
• Static
• Infrequent changes, can cache for a long time
• Cache-‐control headers are often good enough
• Examples: images, javascript, css, etc
• Dynamic
• Can’t cache at all – must go to origin
• DSA and transport optimization is key for performance
• Examples: logins, credit card transactions, Ajax, etc
• Event-‐driven:
• Static, but unpredictably
• Cache-‐control headers are not good enough on their own
• Examples: news stories, wiki pages, user comments, sports scores, etc
22. Three types of content
• Static
• Infrequent changes, can cache for a long time
• Cache-‐control headers are often good enough
• Examples: images, javascript, css, etc
• Dynamic
• Can’t cache at all – must go to origin
• DSA and transport optimization is key for performance
• Examples: logins, credit card transactions, Ajax, etc
• Event-‐driven:
• Static, but unpredictably
• Cache-‐control headers are not good enough on their own
• Examples: news stories, wiki pages, user comments, sports scores, etc
23. Three types of content
• Static
• Infrequent changes, can cache for a long time
• Cache-‐control headers are often good enough
• Examples: images, javascript, css, etc
• Dynamic
• Can’t cache at all – must go to origin
• DSA and transport optimization is key for performance
• Examples: logins, credit card transactions, Ajax, etc
• Event-‐driven:
• Static, but unpredictably
• Cache-‐control headers are not good enough on their own
• Examples: news stories, wiki pages, user comments, sports scores, etc
26. CDN problems
• Services were black boxes
• Lots of professional services
• Caching efficiency has decreased
• Not a lot of visibility
• No real-‐time feedback
• No real-‐time interfaces
• APIs
• Not enough real-‐time control
• Removing content from the CDN
• Configuration changes
36. Purging content from a CDN
• Event-‐driven content can be cached if the CDN allows instantaneous
programmatic purging
• Cache normally
• Purge when change trigger happens
• Rinse and repeat!
• Slow purge times unacceptable in this case
• We need instant purging
• Deterministic and predictable
78. Control at the edge
• Moving application logic to the edge
• Example: VCL (Varnish Configuration Language)
• Script-‐like configuration for functionality at the edge
79.
80. Control at the edge
• Moving application logic to the edge
• Example: VCL (Varnish Configuration Language)
• Script-‐like configuration for functionality at the edge
• Not exclusive to varnish
• Any mechanism offered by the CDN to allow logic to be executed at the edge
is good
81. Logic at the edge
• Generate content at the edge
• HTTP header manipulation
• Origin selection
• Caching rules
• Geo-‐IP rules
• Forcing SSL
• Serving stale content
• Etc, etc, etc
85. Real-‐time analytics
• Statistics API
• Network stats
• HTTP stats (status codes, etc)
• Caching stats (hits, misses, errors, etc)
• Everything has to be real-‐time
• Historic data is also a must
86. Logging
• Daily or hourly logs are not good enough
• Logs in real-‐time
• Log streaming
• To any logging destination endpoint
• Syslog, S3, FTP, etc.
87. Visibility
• We need to see what’s going on
• Real-‐time stats
• Stats API
• Real-‐time logs
103. Summary: CDN is an extension of the app
• Flexible caching…
• …and uncaching
• All tail sizes should perform comparably!
• Control over functionality at the edge
• Real time interfaces for programmability
• Logic at the edge
• Real-‐time visibility
• Real-‐time analytics
104. The future
• Security (more now than future!)
• Even more at the edge
• More logic
• Other parts of applications
• More delivery features