SlideShare a Scribd company logo
1 of 76
Download to read offline
Extending	
  Applica/ons	
  To	
  The	
  Edge	
  
With	
  CDNs	
  
Hooman	
  Behesh/,	
  VP	
  Technology	
  
Dreamforce	
  2015	
  
CDN	
  
•  Globally	
  distributed	
  network	
  of	
  servers	
  
•  Built	
  primarily	
  with	
  caching	
  engines	
  (squid,	
  nginx,	
  
varnish,	
  etc)	
  
•  Footprints	
  vary	
  
•  Benefits:	
  
–  Performance	
  
–  Origin	
  offload	
  
–  Much	
  much	
  more…	
  
In	
  the	
  past…	
  
Classic	
  CDNs	
  
•  Black	
  box	
  service	
  
•  Making	
  changes	
  sucked!	
  
•  LiXle	
  to	
  no	
  real-­‐/me	
  interfaces	
  
– Configura/on,	
  visibility,	
  etc	
  
•  Lots	
  of	
  professional	
  services	
  
•  Decent	
  caching,	
  terrible	
  uncaching	
  
Usage  pa(erns  have  changed
CDNs  have  had  to  evolve…
Caching
Types  of  Content
Cacheable	
  
Uncacheable	
  
Sta$c	
  Dynamic	
  
Sta<c  =  Cacheable
Cache-Control: max-age=31536000
Sta<c  =  Cacheable
All  Else  =  Dynamic  =  Uncacheable
Dynamic  Content
Sta<c  =  Cacheable
All  Else  =  Dynamic  =  Uncacheable
Sta<c  =  Cacheable
All  Else  =  Dynamic  =  Uncacheable
Cacheable	
  
Uncacheable	
  Sta$c	
  
Dynamic	
  
Event	
  
Driven	
  
Sta<c  for  unpredictable  periods  of  <me
Event  Driven  Content:
Uncaching
Purging
Purging  content  from  a  CDN
•  Event-­‐driven	
  content	
  can	
  be	
  cached	
  if	
  the	
  CDN	
  allows	
  instantaneous	
  
programma/c	
  purging	
  
•  Cache	
  normally	
  
•  Purge	
  when	
  change	
  trigger	
  happens	
  
•  Rinse	
  and	
  repeat!	
  
•  Slow	
  purge	
  /mes	
  unacceptable	
  in	
  this	
  case	
  
•  We	
  need	
  instant	
  purging	
  
•  Determinis/c	
  and	
  predictable	
  
Purging  content  from  a  CDN
•  Event-­‐driven	
  content	
  can	
  be	
  cached	
  if	
  the	
  CDN	
  allows	
  instantaneous	
  
programma/c	
  purging	
  
•  Cache	
  normally	
  
•  Purge	
  when	
  change	
  trigger	
  happens	
  
•  Rinse	
  and	
  repeat!	
  
•  Slow	
  purge	
  /mes	
  unacceptable	
  in	
  this	
  case	
  
•  We	
  need	
  instant	
  purging	
  
•  Determinis/c	
  and	
  predictable	
  
Example:  
CMS  (blog)  +  Purge
CMS:  Then
CDN	
  Node	
   CMS	
  Origin	
  
CMS:  Then
CDN	
  Node	
   CMS	
  Origin	
  
CMS:  Then
CDN	
  Node	
   CMS	
  Origin	
  
CMS:  Then
CDN	
  Node	
   CMS	
  Origin	
  
CMS:  Then
CDN	
  Node	
  
Cache	
  
CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
   CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
  
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 55,666
Cache-Control: Totally Long Time!
CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
  
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 55,666
Cache-Control: Totally Long Time!
CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
   CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
   CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
  
PURGE	
  
CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
  
PURGE	
  
CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
  
(Has	
  to	
  be	
  instantaneous!)	
  
PURGE	
  
CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
  
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 55,666
Cache-Control: Totally Long Time!
CMS	
  Origin	
  
CMS:  Now
CDN	
  Node	
   CMS	
  Origin	
  
Long  tail  content    
and    
cache  hit  ra<o
Origin	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
TCP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HTTP	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
HOT	
   COLD	
  
Origin	
  
Cache	
  
	
  
	
  
	
  
	
  
cache	
  “hit”	
  
Object  storage
Caching
•  Cache	
  more	
  
•  Serve	
  more	
  from	
  the	
  edge	
  
•  Control	
  caching	
  and	
  uncaching,	
  instantaneously	
  	
  
Control
Programmability
•  Granular	
  invalida/on	
  API	
  
•  Configura/on	
  API	
  
•  Logic	
  at	
  the	
  edge	
  
•  All	
  configura/on	
  interac/on	
  must	
  be	
  instantaneous	
  
Control  at  the  edge
•  Moving	
  applica/on	
  logic	
  to	
  the	
  edge	
  
•  Example:	
  VCL	
  (Varnish	
  Configura/on	
  Language)	
  
•  Script-­‐like	
  configura/on	
  for	
  func/onality	
  at	
  the	
  edge	
  
Control  at  the  edge
•  Moving	
  applica/on	
  logic	
  to	
  the	
  edge	
  
•  Example:	
  VCL	
  (Varnish	
  Configura/on	
  Language)	
  
•  Script-­‐like	
  configura/on	
  for	
  func/onality	
  at	
  the	
  edge	
  
•  Not	
  exclusive	
  to	
  varnish	
  
•  Any	
  mechanism	
  offered	
  by	
  the	
  CDN	
  to	
  allow	
  logic	
  to	
  be	
  executed	
  at	
  the	
  edge	
  
is	
  good	
  
Logic  at  the  edge
•  Generate	
  content	
  at	
  the	
  edge	
  
•  HTTP	
  header	
  manipula/on	
  
•  Origin	
  selec/on	
  
•  Caching	
  rules	
  
•  Geo-­‐IP	
  rules	
  
•  Flexible	
  cache	
  keys	
  
•  Forcing	
  SSL	
  
•  Serving	
  stale	
  content	
  	
  
•  Etc,	
  etc,	
  etc	
  
Control
•  Programma/c	
  interfaces	
  
•  Real-­‐/me	
  interac/on	
  with	
  the	
  CDN	
  
•  Running	
  logic	
  at	
  the	
  edge	
  
Visibility
Real-­‐<me  analy<cs
•  Sta/s/cs	
  API	
  
•  Network	
  stats	
  
•  HTTP	
  stats	
  (status	
  codes,	
  etc)	
  
•  Caching	
  stats	
  (hits,	
  misses,	
  errors,	
  etc)	
  
•  Everything	
  has	
  to	
  be	
  real-­‐/me	
  
•  Historic	
  data	
  is	
  also	
  a	
  must	
  
Logging
•  Daily	
  or	
  hourly	
  logs	
  are	
  not	
  good	
  enough	
  
•  Logs	
  in	
  real-­‐/me	
  
•  Log	
  streaming	
  
•  To	
  any	
  logging	
  des/na/on	
  endpoint	
  
•  Syslog,	
  S3,	
  FTP,	
  etc.	
  
Visibility
•  We	
  need	
  to	
  see	
  what’s	
  going	
  on	
  
•  Real-­‐/me	
  stats	
  
•  Stats	
  API	
  
•  Real-­‐/me	
  logs	
  
Example:  
Beacon  Termina<on  at  the  Edge
Then
CDN	
  Node	
  
Origin	
  
Log	
  Analysis	
  
http://collector.site.com/beacon.img?a=1&b=2&c=3
Then
CDN	
  Node	
  
Origin	
  
Log	
  Analysis	
  
http://collector.site.com/beacon.img?a=1&b=2&c=3
Then
CDN	
  Node	
  
Origin	
  
Log	
  Analysis	
  
HTTP/1.1 200 OK
Expires: Wed, 19 Apr 2000 11:43:00 GMT
Cache-Control: no-cache, no-store
Last-Modified: Wed, 21 Jan 2004 19:51:30 GMT
Content-Type: image/gif
Date: Fri, 20 Jun 2014 12:22:20 GMT
Server: Apache
Content-Length: 35
http://collector.site.com/beacon.img?a=1&b=2&c=3
Then
CDN	
  Node	
  
Origin	
  
Log	
  Analysis	
  
HTTP/1.1 200 OK
Expires: Wed, 19 Apr 2000 11:43:00 GMT
Cache-Control: no-cache, no-store
Last-Modified: Wed, 21 Jan 2004 19:51:30 GMT
Content-Type: image/gif
Date: Fri, 20 Jun 2014 12:22:20 GMT
Server: Apache
Content-Length: 35
http://collector.site.com/beacon.img?a=1&b=2&c=3
Then
CDN	
  Node	
  
Origin	
  
Log	
  Analysis	
  
HTTP/1.1 200 OK
Expires: Wed, 19 Apr 2000 11:43:00 GMT
Cache-Control: no-cache, no-store
Last-Modified: Wed, 21 Jan 2004 19:51:30 GMT
Content-Type: image/gif
Date: Fri, 20 Jun 2014 12:22:20 GMT
Server: Apache
Content-Length: 35
http://collector.site.com/beacon.img?a=1&b=2&c=3
Now
CDN	
  Node	
  
Origin	
  
http://collector.site.com/beacon.img?a=1&b=2&c=3
Now
CDN	
  Node	
  
Origin	
  
HTTP/1.1 200 OK
Expires: Wed, 19 Apr 2000 11:43:00 GMT
Cache-Control: no-cache, no-store
Last-Modified: Wed, 21 Jan 2004 19:51:30 GMT
Content-Type: image/gif
Date: Fri, 20 Jun 2014 12:22:20 GMT
Server: Apache
Content-Length: 35
http://collector.site.com/beacon.img?a=1&b=2&c=3
Now  (204)
CDN	
  Node	
  
Origin	
  
HTTP/1.1 204 No Content
Date: Sat, 21 Jun 2014 23:21:12 GMT
Server: Awesome Server
Content-Length: 0
http://collector.site.com/beacon.img?a=1&b=2&c=3
Now
CDN	
  Node	
  
Origin	
  
Syslog	
  /	
  S3	
  /	
  FTP/etc	
  
http://collector.site.com/beacon.img?a=1&b=2&c=3
Summary:  CDN  is  an  extension  of  the  app
•  Flexible	
  caching…	
  
•  …and	
  uncaching	
  
•  All	
  tail	
  sizes	
  should	
  perform	
  comparably!	
  
•  Control	
  over	
  func/onality	
  at	
  the	
  edge	
  
•  Real	
  /me	
  interfaces	
  for	
  programmability	
  
•  Logic	
  at	
  the	
  edge	
  
•  Real-­‐/me	
  visibility	
  
•  Real-­‐/me	
  analy/cs	
  
Thank  you!
hooman@fastly.com	
  

More Related Content

What's hot

Benchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsBenchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsNGINX, Inc.
 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyLeif Hedstrom
 
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015Fastly
 
What's New in NGINX Plus R12?
What's New in NGINX Plus R12? What's New in NGINX Plus R12?
What's New in NGINX Plus R12? NGINX, Inc.
 
Nginx - Tips and Tricks.
Nginx - Tips and Tricks.Nginx - Tips and Tricks.
Nginx - Tips and Tricks.Harish S
 
Lcu14 Lightning Talk- NGINX
Lcu14 Lightning Talk- NGINXLcu14 Lightning Talk- NGINX
Lcu14 Lightning Talk- NGINXLinaro
 
NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX, Inc.
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINXNGINX, Inc.
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX, Inc.
 
Introduction to Amazon Elastic Transcoder
 Introduction to Amazon Elastic Transcoder  Introduction to Amazon Elastic Transcoder
Introduction to Amazon Elastic Transcoder Amazon Web Services
 
Load Balancing with Nginx
Load Balancing with NginxLoad Balancing with Nginx
Load Balancing with NginxMarian Marinov
 
Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011leo lapworth
 
Altitude SF 2017: Optimizing your hit rate
Altitude SF 2017: Optimizing your hit rateAltitude SF 2017: Optimizing your hit rate
Altitude SF 2017: Optimizing your hit rateFastly
 
NGINX 101 - now with more Docker
NGINX 101 - now with more DockerNGINX 101 - now with more Docker
NGINX 101 - now with more DockerSarah Novotny
 
(NET308) Consolidating DNS Data in the Cloud with Amazon Route 53
(NET308) Consolidating DNS Data in the Cloud with Amazon Route 53(NET308) Consolidating DNS Data in the Cloud with Amazon Route 53
(NET308) Consolidating DNS Data in the Cloud with Amazon Route 53Amazon Web Services
 
Extending functionality in nginx, with modules!
Extending functionality in nginx, with modules!Extending functionality in nginx, with modules!
Extending functionality in nginx, with modules!Trygve Vea
 
Altitude SF 2017: Logging at the edge
Altitude SF 2017: Logging at the edgeAltitude SF 2017: Logging at the edge
Altitude SF 2017: Logging at the edgeFastly
 
Maximizing PHP Performance with NGINX
Maximizing PHP Performance with NGINXMaximizing PHP Performance with NGINX
Maximizing PHP Performance with NGINXNGINX, Inc.
 
Rate Limiting with NGINX and NGINX Plus
Rate Limiting with NGINX and NGINX PlusRate Limiting with NGINX and NGINX Plus
Rate Limiting with NGINX and NGINX PlusNGINX, Inc.
 

What's hot (20)

Varnish SSL / TLS
Varnish SSL / TLSVarnish SSL / TLS
Varnish SSL / TLS
 
Benchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsBenchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and Results
 
Usenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a ProxyUsenix LISA 2012 - Choosing a Proxy
Usenix LISA 2012 - Choosing a Proxy
 
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015
 
What's New in NGINX Plus R12?
What's New in NGINX Plus R12? What's New in NGINX Plus R12?
What's New in NGINX Plus R12?
 
Nginx - Tips and Tricks.
Nginx - Tips and Tricks.Nginx - Tips and Tricks.
Nginx - Tips and Tricks.
 
Lcu14 Lightning Talk- NGINX
Lcu14 Lightning Talk- NGINXLcu14 Lightning Talk- NGINX
Lcu14 Lightning Talk- NGINX
 
NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & Acceleration
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
 
Introduction to Amazon Elastic Transcoder
 Introduction to Amazon Elastic Transcoder  Introduction to Amazon Elastic Transcoder
Introduction to Amazon Elastic Transcoder
 
Load Balancing with Nginx
Load Balancing with NginxLoad Balancing with Nginx
Load Balancing with Nginx
 
Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011
 
Altitude SF 2017: Optimizing your hit rate
Altitude SF 2017: Optimizing your hit rateAltitude SF 2017: Optimizing your hit rate
Altitude SF 2017: Optimizing your hit rate
 
NGINX 101 - now with more Docker
NGINX 101 - now with more DockerNGINX 101 - now with more Docker
NGINX 101 - now with more Docker
 
(NET308) Consolidating DNS Data in the Cloud with Amazon Route 53
(NET308) Consolidating DNS Data in the Cloud with Amazon Route 53(NET308) Consolidating DNS Data in the Cloud with Amazon Route 53
(NET308) Consolidating DNS Data in the Cloud with Amazon Route 53
 
Extending functionality in nginx, with modules!
Extending functionality in nginx, with modules!Extending functionality in nginx, with modules!
Extending functionality in nginx, with modules!
 
Altitude SF 2017: Logging at the edge
Altitude SF 2017: Logging at the edgeAltitude SF 2017: Logging at the edge
Altitude SF 2017: Logging at the edge
 
Maximizing PHP Performance with NGINX
Maximizing PHP Performance with NGINXMaximizing PHP Performance with NGINX
Maximizing PHP Performance with NGINX
 
Rate Limiting with NGINX and NGINX Plus
Rate Limiting with NGINX and NGINX PlusRate Limiting with NGINX and NGINX Plus
Rate Limiting with NGINX and NGINX Plus
 

Similar to Extending Your Applications to the Edge with CDNs

Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Amazon Web Services
 
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...Amazon Web Services
 
Reducing latency on the web with the Azure CDN- TechDays NL 2014
Reducing latency on the web with the Azure CDN- TechDays NL 2014Reducing latency on the web with the Azure CDN- TechDays NL 2014
Reducing latency on the web with the Azure CDN- TechDays NL 2014Maarten Balliauw
 
AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)Amazon Web Services
 
Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch...
Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch...Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch...
Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch...nine
 
Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014bryan_call
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to knowGökhan Şengün
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...Amazon Web Services
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 SystemsDavid Newman
 
Measuring CDN performance and why you're doing it wrong
Measuring CDN performance and why you're doing it wrongMeasuring CDN performance and why you're doing it wrong
Measuring CDN performance and why you're doing it wrongFastly
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark AnalysisYoss Cohen
 
Enterprise WordPress - Performance, Scalability and Redundancy
Enterprise WordPress - Performance, Scalability and RedundancyEnterprise WordPress - Performance, Scalability and Redundancy
Enterprise WordPress - Performance, Scalability and RedundancyJohn Giaconia
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftRX-M Enterprises LLC
 
Running Cloud Foundry for 12 months - An experience report | anynines
Running Cloud Foundry for 12 months - An experience report | anyninesRunning Cloud Foundry for 12 months - An experience report | anynines
Running Cloud Foundry for 12 months - An experience report | anyninesanynines GmbH
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Tatsuhiko Miyagawa
 
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast TrackHCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast Trackpanagenda
 
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...Cloud Native Day Tel Aviv
 
Website & Internet + Performance testing
Website & Internet + Performance testingWebsite & Internet + Performance testing
Website & Internet + Performance testingRoman Ananev
 
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Germany
 

Similar to Extending Your Applications to the Edge with CDNs (20)

Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
 
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
 
Reducing latency on the web with the Azure CDN- TechDays NL 2014
Reducing latency on the web with the Azure CDN- TechDays NL 2014Reducing latency on the web with the Azure CDN- TechDays NL 2014
Reducing latency on the web with the Azure CDN- TechDays NL 2014
 
AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)
 
Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch...
Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch...Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch...
Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch...
 
Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014Choosing A Proxy Server - Apachecon 2014
Choosing A Proxy Server - Apachecon 2014
 
SDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLSSDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLS
 
Http - All you need to know
Http - All you need to knowHttp - All you need to know
Http - All you need to know
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
 
Measuring CDN performance and why you're doing it wrong
Measuring CDN performance and why you're doing it wrongMeasuring CDN performance and why you're doing it wrong
Measuring CDN performance and why you're doing it wrong
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark Analysis
 
Enterprise WordPress - Performance, Scalability and Redundancy
Enterprise WordPress - Performance, Scalability and RedundancyEnterprise WordPress - Performance, Scalability and Redundancy
Enterprise WordPress - Performance, Scalability and Redundancy
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache Thrift
 
Running Cloud Foundry for 12 months - An experience report | anynines
Running Cloud Foundry for 12 months - An experience report | anyninesRunning Cloud Foundry for 12 months - An experience report | anynines
Running Cloud Foundry for 12 months - An experience report | anynines
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast TrackHCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
HCL Nomad Web 101: Skip the Mistakes and Get on the Fast Track
 
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
 
Website & Internet + Performance testing
Website & Internet + Performance testingWebsite & Internet + Performance testing
Website & Internet + Performance testing
 
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
 

More from Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Extending Your Applications to the Edge with CDNs

  • 1. Extending  Applica/ons  To  The  Edge   With  CDNs   Hooman  Behesh/,  VP  Technology   Dreamforce  2015  
  • 2. CDN   •  Globally  distributed  network  of  servers   •  Built  primarily  with  caching  engines  (squid,  nginx,   varnish,  etc)   •  Footprints  vary   •  Benefits:   –  Performance   –  Origin  offload   –  Much  much  more…  
  • 3.
  • 4.
  • 5.
  • 7. Classic  CDNs   •  Black  box  service   •  Making  changes  sucked!   •  LiXle  to  no  real-­‐/me  interfaces   – Configura/on,  visibility,  etc   •  Lots  of  professional  services   •  Decent  caching,  terrible  uncaching  
  • 9. CDNs  have  had  to  evolve…
  • 15. Sta<c  =  Cacheable All  Else  =  Dynamic  =  Uncacheable
  • 17. Sta<c  =  Cacheable All  Else  =  Dynamic  =  Uncacheable
  • 18. Sta<c  =  Cacheable All  Else  =  Dynamic  =  Uncacheable
  • 19. Cacheable   Uncacheable  Sta$c   Dynamic   Event   Driven  
  • 20. Sta<c  for  unpredictable  periods  of  <me Event  Driven  Content:
  • 23. Purging  content  from  a  CDN •  Event-­‐driven  content  can  be  cached  if  the  CDN  allows  instantaneous   programma/c  purging   •  Cache  normally   •  Purge  when  change  trigger  happens   •  Rinse  and  repeat!   •  Slow  purge  /mes  unacceptable  in  this  case   •  We  need  instant  purging   •  Determinis/c  and  predictable  
  • 24. Purging  content  from  a  CDN •  Event-­‐driven  content  can  be  cached  if  the  CDN  allows  instantaneous   programma/c  purging   •  Cache  normally   •  Purge  when  change  trigger  happens   •  Rinse  and  repeat!   •  Slow  purge  /mes  unacceptable  in  this  case   •  We  need  instant  purging   •  Determinis/c  and  predictable  
  • 26. CMS:  Then CDN  Node   CMS  Origin  
  • 27. CMS:  Then CDN  Node   CMS  Origin  
  • 28. CMS:  Then CDN  Node   CMS  Origin  
  • 29. CMS:  Then CDN  Node   CMS  Origin  
  • 30. CMS:  Then CDN  Node   Cache   CMS  Origin  
  • 31. CMS:  Now CDN  Node   CMS  Origin  
  • 32. CMS:  Now CDN  Node   HTTP/1.1 200 OK Content-Type: text/html Content-Length: 55,666 Cache-Control: Totally Long Time! CMS  Origin  
  • 33. CMS:  Now CDN  Node   HTTP/1.1 200 OK Content-Type: text/html Content-Length: 55,666 Cache-Control: Totally Long Time! CMS  Origin  
  • 34. CMS:  Now CDN  Node   CMS  Origin  
  • 35. CMS:  Now CDN  Node   CMS  Origin  
  • 36. CMS:  Now CDN  Node   PURGE   CMS  Origin  
  • 37. CMS:  Now CDN  Node   PURGE   CMS  Origin  
  • 38. CMS:  Now CDN  Node   (Has  to  be  instantaneous!)   PURGE   CMS  Origin  
  • 39. CMS:  Now CDN  Node   HTTP/1.1 200 OK Content-Type: text/html Content-Length: 55,666 Cache-Control: Totally Long Time! CMS  Origin  
  • 40. CMS:  Now CDN  Node   CMS  Origin  
  • 41. Long  tail  content     and     cache  hit  ra<o
  • 43. Origin   Cache          
  • 44. TCP   Origin   Cache          
  • 45. HTTP   Origin   Cache          
  • 46. Origin   Cache           HTTP  
  • 47. Origin   Cache           HTTP  
  • 48. Origin   Cache           HTTP  
  • 49. Origin   Cache           HOT   COLD  
  • 50. Origin   Cache           cache  “hit”  
  • 52. Caching •  Cache  more   •  Serve  more  from  the  edge   •  Control  caching  and  uncaching,  instantaneously    
  • 54. Programmability •  Granular  invalida/on  API   •  Configura/on  API   •  Logic  at  the  edge   •  All  configura/on  interac/on  must  be  instantaneous  
  • 55.
  • 56. Control  at  the  edge •  Moving  applica/on  logic  to  the  edge   •  Example:  VCL  (Varnish  Configura/on  Language)   •  Script-­‐like  configura/on  for  func/onality  at  the  edge  
  • 57.
  • 58. Control  at  the  edge •  Moving  applica/on  logic  to  the  edge   •  Example:  VCL  (Varnish  Configura/on  Language)   •  Script-­‐like  configura/on  for  func/onality  at  the  edge   •  Not  exclusive  to  varnish   •  Any  mechanism  offered  by  the  CDN  to  allow  logic  to  be  executed  at  the  edge   is  good  
  • 59. Logic  at  the  edge •  Generate  content  at  the  edge   •  HTTP  header  manipula/on   •  Origin  selec/on   •  Caching  rules   •  Geo-­‐IP  rules   •  Flexible  cache  keys   •  Forcing  SSL   •  Serving  stale  content     •  Etc,  etc,  etc  
  • 60. Control •  Programma/c  interfaces   •  Real-­‐/me  interac/on  with  the  CDN   •  Running  logic  at  the  edge  
  • 62. Real-­‐<me  analy<cs •  Sta/s/cs  API   •  Network  stats   •  HTTP  stats  (status  codes,  etc)   •  Caching  stats  (hits,  misses,  errors,  etc)   •  Everything  has  to  be  real-­‐/me   •  Historic  data  is  also  a  must  
  • 63. Logging •  Daily  or  hourly  logs  are  not  good  enough   •  Logs  in  real-­‐/me   •  Log  streaming   •  To  any  logging  des/na/on  endpoint   •  Syslog,  S3,  FTP,  etc.  
  • 64. Visibility •  We  need  to  see  what’s  going  on   •  Real-­‐/me  stats   •  Stats  API   •  Real-­‐/me  logs  
  • 65. Example:   Beacon  Termina<on  at  the  Edge
  • 66. Then CDN  Node   Origin   Log  Analysis   http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 67. Then CDN  Node   Origin   Log  Analysis   http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 68. Then CDN  Node   Origin   Log  Analysis   HTTP/1.1 200 OK Expires: Wed, 19 Apr 2000 11:43:00 GMT Cache-Control: no-cache, no-store Last-Modified: Wed, 21 Jan 2004 19:51:30 GMT Content-Type: image/gif Date: Fri, 20 Jun 2014 12:22:20 GMT Server: Apache Content-Length: 35 http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 69. Then CDN  Node   Origin   Log  Analysis   HTTP/1.1 200 OK Expires: Wed, 19 Apr 2000 11:43:00 GMT Cache-Control: no-cache, no-store Last-Modified: Wed, 21 Jan 2004 19:51:30 GMT Content-Type: image/gif Date: Fri, 20 Jun 2014 12:22:20 GMT Server: Apache Content-Length: 35 http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 70. Then CDN  Node   Origin   Log  Analysis   HTTP/1.1 200 OK Expires: Wed, 19 Apr 2000 11:43:00 GMT Cache-Control: no-cache, no-store Last-Modified: Wed, 21 Jan 2004 19:51:30 GMT Content-Type: image/gif Date: Fri, 20 Jun 2014 12:22:20 GMT Server: Apache Content-Length: 35 http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 71. Now CDN  Node   Origin   http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 72. Now CDN  Node   Origin   HTTP/1.1 200 OK Expires: Wed, 19 Apr 2000 11:43:00 GMT Cache-Control: no-cache, no-store Last-Modified: Wed, 21 Jan 2004 19:51:30 GMT Content-Type: image/gif Date: Fri, 20 Jun 2014 12:22:20 GMT Server: Apache Content-Length: 35 http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 73. Now  (204) CDN  Node   Origin   HTTP/1.1 204 No Content Date: Sat, 21 Jun 2014 23:21:12 GMT Server: Awesome Server Content-Length: 0 http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 74. Now CDN  Node   Origin   Syslog  /  S3  /  FTP/etc   http://collector.site.com/beacon.img?a=1&b=2&c=3
  • 75. Summary:  CDN  is  an  extension  of  the  app •  Flexible  caching…   •  …and  uncaching   •  All  tail  sizes  should  perform  comparably!   •  Control  over  func/onality  at  the  edge   •  Real  /me  interfaces  for  programmability   •  Logic  at  the  edge   •  Real-­‐/me  visibility   •  Real-­‐/me  analy/cs