SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
What	
  we	
  can	
  learn	
  from	
  CDNs	
  
about	
  Web	
  Development,	
  
Deployment,	
  and	
  Performance	
  
Hooman	
  Behesh+,	
  VP	
  Technology	
  
	
  
	
  
	
  
WebPerf	
  Meetup,	
  NYC,	
  May	
  13,	
  2014	
  
Who	
  am	
  I?	
  
•  Early	
  Load	
  Balancing	
  Vendors	
  
– Radware	
  
– Crescendo	
  Networks	
  
•  Front	
  End	
  Op+miza+on	
  
– Strangeloop	
  Networks	
  
•  Off	
  the	
  grid	
  for	
  a	
  year!	
  
•  Joined	
  Fastly	
  6	
  weeks	
  ago	
  
So,	
  really…	
  
What	
  I’ve	
  Learned	
  From	
  
Working	
  at	
  a	
  CDN	
  Company	
  
for	
  6	
  Weeks!!	
  
Lesson:	
  
	
  
CDNs	
  Are	
  Not	
  Solved!	
  
We	
  Don’t	
  Cache	
  As	
  Much	
  As	
  We	
  
Should!	
  
•  HTML	
  and	
  other	
  dynamic	
  content	
  
•  Worse	
  cache	
  hit	
  rate	
  than	
  we	
  think	
  
– Especially	
  for	
  long	
  tail	
  content	
  
•  Mobile	
  Apps,	
  APIs,	
  etc	
  
Making	
  Changes	
  SUCKS!!	
  
•  Configura+on	
  changes	
  take	
  way	
  too	
  long	
  
– People	
  are	
  used	
  to	
  making	
  changes	
  real-­‐+me	
  
– CDNs	
  aren’t	
  classically	
  good	
  at	
  this	
  
– Phone??	
  
•  Purging	
  is	
  a	
  real	
  problem	
  
– Slow	
  
– Difficult	
  
– Not	
  granular	
  enough	
  
Lots	
  of	
  Room	
  
•  New	
  Demands	
  from	
  Customers	
  
•  Plenty	
  of	
  room	
  for	
  differen+a+on	
  
•  Can’t	
  take	
  some	
  things	
  for	
  granted:	
  
– DNS	
  
– Rou+ng	
  
– TCP	
  
– SCALE!	
  
•  Plus:	
  lots	
  of	
  room	
  to	
  be	
  crea+ve	
  at	
  the	
  edge!	
  
Lesson:	
  
	
  
There’s	
  More	
  to	
  the	
  Web	
  Than	
  
the	
  Web!	
  
Non	
  “web”	
  Traffic	
  
•  Video	
  
–  HLS	
  (HTTP	
  Live	
  Streaming)	
  
–  HTTP-­‐based	
  small	
  video	
  chunks	
  
–  Unique	
  by	
  URL	
  
•  APIs	
  
–  Instant	
  purging	
  can	
  let	
  API	
  calls	
  be	
  cacheable	
  
–  Another	
  example	
  of	
  dynamic	
  content	
  cached	
  at	
  the	
  
edge	
  
•  Mobile	
  Apps	
  
Lesson:	
  
	
  
People	
  Use	
  Their	
  CDNs	
  Wrong	
  
CDNs	
  offer	
  a	
  toolset	
  
•  The	
  black	
  box	
  approach	
  isn’t	
  always	
  good	
  
•  Configura+on	
  isn’t	
  trivial	
  
– And	
  a	
  lot	
  s+ll	
  depends	
  on	
  configura+on	
  
•  Can’t	
  depend	
  on	
  the	
  CDN	
  to	
  solve	
  all	
  your	
  
problems	
  
•  Don’t	
  exacerbate	
  your	
  problems!	
  
hbp://bigqueri.es/t/sites-­‐that-­‐deliver-­‐images-­‐using-­‐gzip-­‐deflate-­‐encoding/220	
  
Gzipping	
  Images	
  
•  Not	
  a	
  very	
  good	
  thing	
  for	
  performance	
  
– Extra	
  bytes	
  
– Extra	
  work	
  for	
  the	
  browser	
  
•  But	
  was	
  this	
  the	
  Surrogate’s	
  fault?	
  
More	
  Examples	
  
•  Bad	
  caching	
  headers	
  
– max-­‐age,	
  s-­‐maxage	
  have	
  a	
  lot	
  of	
  power!	
  
•  Bad	
  TCP	
  connec+on	
  management	
  at	
  origin	
  
•  Not	
  Gzipping	
  (actual,	
  compressible	
  content)	
  
for	
  origin	
  fetches	
  
	
  
With	
  Great	
  Power…	
  
Lesson:	
  
	
  
Dynamic	
  Content	
  Is	
  Really	
  
InteresVng!	
  
What	
  Is	
  Dynamic	
  Content?	
  
•  Stuff	
  that’s	
  not	
  sta+c!	
  
•  With	
  web	
  traffic,	
  generally	
  the	
  base	
  HTML	
  
–  Big	
  deal	
  because	
  it’s	
  blocking	
  
–  And	
  some+mes	
  the	
  largest	
  object;	
  longer	
  download	
  
•  Some	
  AJAX	
  
•  More…	
  
Blocking	
  
Classically,	
  with	
  dynamic	
  content…	
  
Caching	
  
Caching	
  	
  
vs.	
  	
  
InvalidaVon	
  
We	
  tried…	
  
Dynamic	
  Content	
  Caching	
  Problems	
  
•  Serving	
  stale	
  pages	
  
– Lack	
  of	
  good	
  invalida+on	
  framework	
  
•  Visibility	
  
•  Logging	
  
	
  
CDNs	
  and	
  Dynamic	
  Content	
  
•  Generally,	
  handling	
  dynamic	
  content	
  has	
  been	
  
a	
  maber	
  of	
  transport	
  
– Middle	
  mile	
  op+miza+ons	
  
– TCP	
  tweaks	
  
•  Some	
  edge	
  micro	
  caching,	
  but	
  not	
  easy	
  
•  ESI	
  
	
  
Actually…	
  
•  Dynamic	
  content	
  is	
  more	
  cacheable	
  than	
  we	
  
think	
  
•  Sta+c	
  for	
  short	
  periods	
  of	
  +me	
  
•  Unpredictable	
  invalida+on	
  
– Standard	
  HTTP	
  caching	
  rules	
  aren’t	
  good	
  enough	
  
So	
  Many	
  Benefits!	
  
•  Performance	
  
– Faster	
  +me	
  to	
  first	
  byte	
  
– Faster	
  start	
  render	
  
– Happy	
  users!	
  
•  Offload	
  
– Less	
  work	
  for	
  our	
  servers	
  
– Less	
  bandwidth	
  at	
  origin	
  
What	
  Would	
  Make	
  It	
  BeZer?	
  
•  Programma+c	
  Invalida+on	
  
– Granular	
  
– Instantaneous	
  
•  Control	
  at	
  the	
  edge,	
  and	
  not	
  just	
  for	
  web	
  
pages	
  
– Real-­‐+me	
  log	
  files	
  
– Imagine	
  termina+ng	
  beacons	
  at	
  the	
  edge!	
  
	
  
Lesson:	
  
	
  
IntegraVng	
  is	
  Awesome!	
  
The	
  Influence	
  of	
  Clouds	
  
•  DevOps	
  people	
  like	
  programmability	
  and	
  
integra+on	
  
•  The	
  CDN	
  is	
  no	
  longer	
  a	
  black	
  box	
  mechanism,	
  
necessarily	
  
•  Cliché	
  Alert:	
  Content	
  as	
  a	
  Service!	
  
Real	
  Time	
  IntegraVon	
  
•  Tap	
  in	
  to	
  the	
  CDN:	
  
– Instantaneous	
  configura+on	
  changes	
  
– Instantaneous	
  cache	
  purge	
  and	
  invalida+on	
  
– Real	
  +me	
  stats	
  and	
  logs	
  
•  Infrastructure	
  as	
  code	
  
– Expect	
  extensive	
  APIs	
  
– Apps	
  need	
  to	
  naturally	
  extend	
  to	
  the	
  CDN	
  
– Your	
  content	
  =>	
  you	
  need	
  control	
  
About	
  Time!!	
  
Lesson:	
  
	
  
Measurement	
  is	
  SVll	
  Hard	
  
“SVll”	
  
•  In	
  the	
  world	
  of	
  FEO	
  
– Webpagetest.org	
  
– RUM	
  
– Synthe+c	
  tes+ng	
  vendors	
  
•  In	
  the	
  world	
  of	
  CDNs	
  
– Same	
  as	
  far	
  as	
  client	
  performance	
  goes	
  
– Some	
  new	
  things…	
  
Client-­‐side	
  Measurement	
  in	
  CDNs	
  
•  Cache	
  hit	
  ra+o	
  
– How	
  do	
  you	
  test	
  and	
  measure?	
  
•  Long	
  tail	
  content?	
  
•  DNS	
  and	
  edge	
  node	
  selec+on	
  
•  TTFB	
  out	
  of	
  datacenter	
  
– Memory	
  hit	
  vs	
  disk	
  hit	
  vs	
  mid-­‐+er	
  hit	
  vs	
  miss	
  
•  RUM	
  and	
  synthe+c	
  (Cedexis,	
  Catchpoint,	
  etc)	
  
•  There’s	
  s+ll	
  gaming	
  going	
  on!	
  
Let’s	
  Test	
  It!	
  
•  3	
  Objects	
  on	
  the	
  same	
  CDN	
  (anonymous)	
  
–  Cedexis	
  object	
  
–  Small	
  image	
  from	
  Alexa	
  5000	
  site	
  
–  Long	
  tail	
  object:	
  ~40	
  +mes	
  every	
  3-­‐4	
  hours	
  
•  Use	
  Catchpoint	
  last	
  mile	
  clients	
  in	
  US	
  
–  Test	
  every	
  15	
  minutes	
  
–  ~11,500	
  total	
  tests	
  across	
  all	
  test	
  nodes	
  
•  Focus	
  measurement	
  on:	
  
–  Connect	
  +me	
  (TCP)	
  
–  Wait	
  +me	
  (TTFB)	
  
Cedexis	
  Object	
  
Connect	
  (median)	
   Wait	
  (median)	
  
Cedexis	
   14ms	
   19ms	
  
Cedexis	
  Object	
   Alexa	
  5000	
  
Connect	
  (median)	
   Wait	
  (median)	
  
Cedexis	
   14ms	
   19ms	
  
Alexa	
  5000	
   14ms	
   24ms	
  
Cedexis	
  Object	
   Alexa	
  5000	
  
Connect	
  (median)	
   Wait	
  (median)	
  
Cedexis	
   14ms	
   19ms	
  
Alexa	
  5000	
   14ms	
   24ms	
  
26%	
  
Cedexis	
  Object	
   Long	
  Tail	
  Alexa	
  5000	
  
Connect	
  (median)	
   Wait	
  (median)	
  
Cedexis	
   14ms	
   19ms	
  
Alexa	
  5000	
   14ms	
   24ms	
  
Long	
  Tail	
   15ms	
   29ms	
  
Cedexis	
  Object	
   Long	
  Tail	
  Alexa	
  5000	
  
Connect	
  (median)	
   Wait	
  (median)	
  
Cedexis	
   14ms	
   19ms	
  
Alexa	
  5000	
   14ms	
   24ms	
  
Long	
  Tail	
   15ms	
   29ms	
   20%	
  
Cedexis	
  Object	
  
Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
  
Mem	
   11,074	
   14ms	
   19ms	
   481	
   14ms	
   19ms	
   6741	
   14ms	
   20ms	
  
Disk	
   428	
   12ms	
   24ms	
   9626	
   15ms	
   28ms	
   4692	
   14ms	
   31ms	
  
Miss	
   1	
   6ms	
   38ms	
   1355	
   16ms	
   51ms	
   28	
   13ms	
   45ms	
  
Cedexis	
  Object	
   Alexa	
  5000	
  
Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
  
Mem	
   11,074	
   14ms	
   19ms	
   6741	
   14ms	
   20ms	
   481	
   14ms	
   19ms	
  
Disk	
   428	
   12ms	
   24ms	
   4692	
   14ms	
   31ms	
   9626	
   15ms	
   28ms	
  
Miss	
   1	
   6ms	
   38ms	
   28	
   13ms	
   45ms	
   1355	
   16ms	
   51ms	
  
Cedexis	
  Object	
   Long	
  Tail	
  Alexa	
  5000	
  
Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
  
Mem	
   11,074	
   14ms	
   19ms	
   6741	
   14ms	
   20ms	
   481	
   14ms	
   19ms	
  
Disk	
   428	
   12ms	
   24ms	
   4692	
   14ms	
   31ms	
   9626	
   15ms	
   28ms	
  
Miss	
   1	
   6ms	
   38ms	
   28	
   13ms	
   45ms	
   1355	
   16ms	
   51ms	
  
Cedexis	
  Object	
   Long	
  Tail	
  Alexa	
  5000	
  
Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
  
Mem	
   11,074	
   14ms	
   19ms	
   6741	
   14ms	
   20ms	
   481	
   14ms	
   19ms	
  
Disk	
   428	
   12ms	
   24ms	
   4692	
   14ms	
   31ms	
   9626	
   15ms	
   28ms	
  
Miss	
   1	
   6ms	
   38ms	
   28	
   13ms	
   45ms	
   1355	
   16ms	
   51ms	
  
99.99%	
  
Mem:	
  96.27%	
  
Disk:	
  3.72%	
  
Cedexis	
  Object	
   Long	
  Tail	
  Alexa	
  5000	
  
Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
  
Mem	
   11,074	
   14ms	
   19ms	
   6741	
   14ms	
   20ms	
   481	
   14ms	
   19ms	
  
Disk	
   428	
   12ms	
   24ms	
   4692	
   14ms	
   31ms	
   9626	
   15ms	
   28ms	
  
Miss	
   1	
   6ms	
   38ms	
   28	
   13ms	
   45ms	
   1355	
   16ms	
   51ms	
  
99.99%	
  
Mem:	
  96.27%	
  
Disk:	
  3.72%	
  
99.76%	
  
Mem:	
  58.82%	
  
Disk:	
  40.94%	
  
Cedexis	
  Object	
   Long	
  Tail	
  Alexa	
  5000	
  
Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
   Count	
   TCP	
   TTFB	
  
Mem	
   11,074	
   14ms	
   19ms	
   6741	
   14ms	
   20ms	
   481	
   14ms	
   19ms	
  
Disk	
   428	
   12ms	
   24ms	
   4692	
   14ms	
   31ms	
   9626	
   15ms	
   28ms	
  
Miss	
   1	
   6ms	
   38ms	
   28	
   13ms	
   45ms	
   1355	
   16ms	
   51ms	
  
99.99%	
  
Mem:	
  96.27%	
  
Disk:	
  3.72%	
  
99.76%	
   88.17%	
  
Mem:	
  58.82%	
  
Disk:	
  40.94%	
  
Mem:	
  4.19%	
  
Disk:	
  83.98%	
  
Measurement!	
  
•  Not	
  only	
  do	
  I	
  care	
  about:	
  
– Cache	
  hit	
  rate	
  
– Long	
  tail	
  
– Measuring	
  the	
  right	
  thing	
  
•  Fetching	
  from	
  disk	
  could	
  suck!	
  
– SSDs!	
  
•  Caching	
  ≠	
  Caching	
  
Lesson:	
  
	
  
It’s	
  Not	
  Only	
  About…	
  
…Performance!!!	
  
Security	
  
•  Cer+ficate	
  management	
  
•  Perimeter	
  security	
  
•  DDoS	
  protec+on	
  <-­‐	
  benefit	
  of	
  scale!	
  
Flexibility,	
  Visibility,	
  and	
  Control	
  
•  Integra+on	
  
•  Programmability	
  
•  APIs	
  
•  Instant	
  purging	
  
•  Real	
  +me	
  logs	
  
Fun	
  at	
  the	
  Edge!	
  
•  Synthe+c	
  responses	
  
–  Example:	
  node	
  ID	
  for	
  Cedexis	
  measurements	
  
•  Cookie	
  manipula+on	
  
–  Remove/inject/replace/recall	
  
•  Beacon	
  termina+on	
  
–  204	
  responses	
  
–  Real	
  +me	
  logs	
  
–  Awesome!	
  
PERFORMANCE!!	
  
It’s	
  s+ll	
  preby	
  damn	
  important!	
  
Thank	
  you!	
  
hooman@fastly.com	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Buildinga billionuserloadbalancer may2015-sre-con15europe-shuff
Buildinga billionuserloadbalancer may2015-sre-con15europe-shuffBuildinga billionuserloadbalancer may2015-sre-con15europe-shuff
Buildinga billionuserloadbalancer may2015-sre-con15europe-shuffPatrick Shuff
 
Interactive web. O rly?
Interactive web. O rly?Interactive web. O rly?
Interactive web. O rly?timbc
 
Performance in business terms
Performance in business termsPerformance in business terms
Performance in business termsStrangeloop
 
Web Performance Automation - NY Web Performance Meetup
Web Performance Automation - NY Web Performance MeetupWeb Performance Automation - NY Web Performance Meetup
Web Performance Automation - NY Web Performance MeetupStrangeloop
 
Site Speed Fundamentals
Site Speed FundamentalsSite Speed Fundamentals
Site Speed FundamentalsMartin Breest
 
Scaling Instagram
Scaling InstagramScaling Instagram
Scaling Instagramiammutex
 
Nginx, PHP, Apache and Spelix
Nginx, PHP, Apache and SpelixNginx, PHP, Apache and Spelix
Nginx, PHP, Apache and SpelixHarald Zeitlhofer
 
HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときKazuho Oku
 
Debugging Distributed Systems - Velocity Santa Clara 2016
Debugging Distributed Systems - Velocity Santa Clara 2016Debugging Distributed Systems - Velocity Santa Clara 2016
Debugging Distributed Systems - Velocity Santa Clara 2016Donny Nadolny
 
Jvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGJvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGTomek Borek
 
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016MLconf
 
How happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPIchito Nagata
 
So that was HTTP/2, what's next?
So that was HTTP/2, what's next?So that was HTTP/2, what's next?
So that was HTTP/2, what's next?Daniel Stenberg
 
Bigdata for small pockets, by Javier Ramirez from teowaki. RubyC Kiev 2014
Bigdata for small pockets, by Javier Ramirez from teowaki. RubyC Kiev 2014Bigdata for small pockets, by Javier Ramirez from teowaki. RubyC Kiev 2014
Bigdata for small pockets, by Javier Ramirez from teowaki. RubyC Kiev 2014javier ramirez
 
Http3 fullstackfest-2019
Http3 fullstackfest-2019Http3 fullstackfest-2019
Http3 fullstackfest-2019Daniel Stenberg
 
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeAltitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeFastly
 
Spreadshirt Techcamp 2018 - Hold until Told
Spreadshirt Techcamp 2018 - Hold until ToldSpreadshirt Techcamp 2018 - Hold until Told
Spreadshirt Techcamp 2018 - Hold until ToldMartin Breest
 

Was ist angesagt? (20)

Buildinga billionuserloadbalancer may2015-sre-con15europe-shuff
Buildinga billionuserloadbalancer may2015-sre-con15europe-shuffBuildinga billionuserloadbalancer may2015-sre-con15europe-shuff
Buildinga billionuserloadbalancer may2015-sre-con15europe-shuff
 
Interactive web. O rly?
Interactive web. O rly?Interactive web. O rly?
Interactive web. O rly?
 
Performance in business terms
Performance in business termsPerformance in business terms
Performance in business terms
 
Web Performance Automation - NY Web Performance Meetup
Web Performance Automation - NY Web Performance MeetupWeb Performance Automation - NY Web Performance Meetup
Web Performance Automation - NY Web Performance Meetup
 
Site Speed Fundamentals
Site Speed FundamentalsSite Speed Fundamentals
Site Speed Fundamentals
 
Scaling Instagram
Scaling InstagramScaling Instagram
Scaling Instagram
 
Nginx, PHP, Apache and Spelix
Nginx, PHP, Apache and SpelixNginx, PHP, Apache and Spelix
Nginx, PHP, Apache and Spelix
 
Just curl it!
Just curl it!Just curl it!
Just curl it!
 
HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
 
Debugging Distributed Systems - Velocity Santa Clara 2016
Debugging Distributed Systems - Velocity Santa Clara 2016Debugging Distributed Systems - Velocity Santa Clara 2016
Debugging Distributed Systems - Velocity Santa Clara 2016
 
Jvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUGJvm tuning in a rush! - Lviv JUG
Jvm tuning in a rush! - Lviv JUG
 
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
 
HTTP/3
HTTP/3HTTP/3
HTTP/3
 
How happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTP
 
So that was HTTP/2, what's next?
So that was HTTP/2, what's next?So that was HTTP/2, what's next?
So that was HTTP/2, what's next?
 
HTTP/2 (2017)
HTTP/2 (2017)HTTP/2 (2017)
HTTP/2 (2017)
 
Bigdata for small pockets, by Javier Ramirez from teowaki. RubyC Kiev 2014
Bigdata for small pockets, by Javier Ramirez from teowaki. RubyC Kiev 2014Bigdata for small pockets, by Javier Ramirez from teowaki. RubyC Kiev 2014
Bigdata for small pockets, by Javier Ramirez from teowaki. RubyC Kiev 2014
 
Http3 fullstackfest-2019
Http3 fullstackfest-2019Http3 fullstackfest-2019
Http3 fullstackfest-2019
 
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the EdgeAltitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the Edge
 
Spreadshirt Techcamp 2018 - Hold until Told
Spreadshirt Techcamp 2018 - Hold until ToldSpreadshirt Techcamp 2018 - Hold until Told
Spreadshirt Techcamp 2018 - Hold until Told
 

Ähnlich wie What we can learn from CDNs about Web Development, Deployment, and Performance

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
 
Caching the Uncacheable: Leveraging Your CDN to Cache Dynamic Content
Caching the Uncacheable: Leveraging Your CDN to Cache Dynamic ContentCaching the Uncacheable: Leveraging Your CDN to Cache Dynamic Content
Caching the Uncacheable: Leveraging Your CDN to Cache Dynamic ContentFastly
 
Expecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningExpecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningAtlassian
 
Extending your applications to the edge with CDNs
Extending your applications to the edge with CDNsExtending your applications to the edge with CDNs
Extending your applications to the edge with CDNsSergeyChernyshev
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonNeotys
 
Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]Fastly
 
How to dominate a country
How to dominate a countryHow to dominate a country
How to dominate a countryTiago Henriques
 
2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro pythonAdam Hitchcock
 
SPA2015: Hooman Beheshti – The Future of CDNs
SPA2015: Hooman Beheshti – The Future of CDNsSPA2015: Hooman Beheshti – The Future of CDNs
SPA2015: Hooman Beheshti – The Future of CDNsFastly
 
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
 
How does the Cloud Foundry Diego Project Run at Scale?
How does the Cloud Foundry Diego Project Run at Scale?How does the Cloud Foundry Diego Project Run at Scale?
How does the Cloud Foundry Diego Project Run at Scale?VMware Tanzu
 
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...Amit Gupta
 
AtlasCamp 2015: Damn you Facebook - Raising the bar in SaaS
AtlasCamp 2015: Damn you Facebook - Raising the bar in SaaSAtlasCamp 2015: Damn you Facebook - Raising the bar in SaaS
AtlasCamp 2015: Damn you Facebook - Raising the bar in SaaSAtlassian
 
Reconsider TCPdump for Modern Troubleshooting
Reconsider TCPdump for Modern TroubleshootingReconsider TCPdump for Modern Troubleshooting
Reconsider TCPdump for Modern TroubleshootingAvi Networks
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneMaarten Balliauw
 
Website & Internet + Performance testing
Website & Internet + Performance testingWebsite & Internet + Performance testing
Website & Internet + Performance testingRoman Ananev
 
OPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKOPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKInfluxData
 

Ähnlich wie What we can learn from CDNs about Web Development, Deployment, and Performance (20)

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
 
Enei
EneiEnei
Enei
 
Caching the Uncacheable: Leveraging Your CDN to Cache Dynamic Content
Caching the Uncacheable: Leveraging Your CDN to Cache Dynamic ContentCaching the Uncacheable: Leveraging Your CDN to Cache Dynamic Content
Caching the Uncacheable: Leveraging Your CDN to Cache Dynamic Content
 
Preso fcul
Preso fculPreso fcul
Preso fcul
 
Expecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance TuningExpecto Performa! The Magic and Reality of Performance Tuning
Expecto Performa! The Magic and Reality of Performance Tuning
 
Extending your applications to the edge with CDNs
Extending your applications to the edge with CDNsExtending your applications to the edge with CDNs
Extending your applications to the edge with CDNs
 
Tcpdump hunter
Tcpdump hunterTcpdump hunter
Tcpdump hunter
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]Caching the Uncacheable [Long Version]
Caching the Uncacheable [Long Version]
 
How to dominate a country
How to dominate a countryHow to dominate a country
How to dominate a country
 
2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python
 
SPA2015: Hooman Beheshti – The Future of CDNs
SPA2015: Hooman Beheshti – The Future of CDNsSPA2015: Hooman Beheshti – The Future of CDNs
SPA2015: Hooman Beheshti – The Future of CDNs
 
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...
 
How does the Cloud Foundry Diego Project Run at Scale?
How does the Cloud Foundry Diego Project Run at Scale?How does the Cloud Foundry Diego Project Run at Scale?
How does the Cloud Foundry Diego Project Run at Scale?
 
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
 
AtlasCamp 2015: Damn you Facebook - Raising the bar in SaaS
AtlasCamp 2015: Damn you Facebook - Raising the bar in SaaSAtlasCamp 2015: Damn you Facebook - Raising the bar in SaaS
AtlasCamp 2015: Damn you Facebook - Raising the bar in SaaS
 
Reconsider TCPdump for Modern Troubleshooting
Reconsider TCPdump for Modern TroubleshootingReconsider TCPdump for Modern Troubleshooting
Reconsider TCPdump for Modern Troubleshooting
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologne
 
Website & Internet + Performance testing
Website & Internet + Performance testingWebsite & Internet + Performance testing
Website & Internet + Performance testing
 
OPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKOPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACK
 

Mehr von SergeyChernyshev

Capturing speed of user experience using user timing api
Capturing speed of user experience using user timing apiCapturing speed of user experience using user timing api
Capturing speed of user experience using user timing apiSergeyChernyshev
 
Managing application performance by Kwame Thomison
Managing application performance by Kwame ThomisonManaging application performance by Kwame Thomison
Managing application performance by Kwame ThomisonSergeyChernyshev
 
Fastest request is never made
Fastest request is never madeFastest request is never made
Fastest request is never madeSergeyChernyshev
 
Designing speed with progressive enhancement
Designing speed with progressive enhancementDesigning speed with progressive enhancement
Designing speed with progressive enhancementSergeyChernyshev
 
Web performance tools @ WebPerf.camp 2016
Web performance tools @ WebPerf.camp 2016Web performance tools @ WebPerf.camp 2016
Web performance tools @ WebPerf.camp 2016SergeyChernyshev
 
Scalability vs. Performance
Scalability vs. PerformanceScalability vs. Performance
Scalability vs. PerformanceSergeyChernyshev
 
Web performance: beyond load testing
Web performance: beyond load testingWeb performance: beyond load testing
Web performance: beyond load testingSergeyChernyshev
 
Introduction to web performance @ IEEE
Introduction to web performance @ IEEEIntroduction to web performance @ IEEE
Introduction to web performance @ IEEESergeyChernyshev
 
Introduction to Web Performance
Introduction to Web PerformanceIntroduction to Web Performance
Introduction to Web PerformanceSergeyChernyshev
 
Performance anti patterns in ajax applications
Performance anti patterns in ajax applicationsPerformance anti patterns in ajax applications
Performance anti patterns in ajax applicationsSergeyChernyshev
 
Keeping track of your performance using Show Slow
Keeping track of your performance using Show SlowKeeping track of your performance using Show Slow
Keeping track of your performance using Show SlowSergeyChernyshev
 
Keeping track of your performance using show slow
Keeping track of your performance using show slowKeeping track of your performance using show slow
Keeping track of your performance using show slowSergeyChernyshev
 
Building your own CDN using Amazon EC2
Building your own CDN using Amazon EC2Building your own CDN using Amazon EC2
Building your own CDN using Amazon EC2SergeyChernyshev
 
Php Code Profiling Using X Debug
Php Code Profiling Using X DebugPhp Code Profiling Using X Debug
Php Code Profiling Using X DebugSergeyChernyshev
 

Mehr von SergeyChernyshev (20)

Capturing speed of user experience using user timing api
Capturing speed of user experience using user timing apiCapturing speed of user experience using user timing api
Capturing speed of user experience using user timing api
 
Managing application performance by Kwame Thomison
Managing application performance by Kwame ThomisonManaging application performance by Kwame Thomison
Managing application performance by Kwame Thomison
 
Fastest request is never made
Fastest request is never madeFastest request is never made
Fastest request is never made
 
Designing speed with progressive enhancement
Designing speed with progressive enhancementDesigning speed with progressive enhancement
Designing speed with progressive enhancement
 
Web performance tools @ WebPerf.camp 2016
Web performance tools @ WebPerf.camp 2016Web performance tools @ WebPerf.camp 2016
Web performance tools @ WebPerf.camp 2016
 
Speed is feature #1
Speed is feature #1Speed is feature #1
Speed is feature #1
 
Tools of the trade 2014
Tools of the trade 2014Tools of the trade 2014
Tools of the trade 2014
 
Scalability vs. Performance
Scalability vs. PerformanceScalability vs. Performance
Scalability vs. Performance
 
Web performance: beyond load testing
Web performance: beyond load testingWeb performance: beyond load testing
Web performance: beyond load testing
 
Introduction to web performance @ IEEE
Introduction to web performance @ IEEEIntroduction to web performance @ IEEE
Introduction to web performance @ IEEE
 
Introduction to Web Performance
Introduction to Web PerformanceIntroduction to Web Performance
Introduction to Web Performance
 
Performance anti patterns in ajax applications
Performance anti patterns in ajax applicationsPerformance anti patterns in ajax applications
Performance anti patterns in ajax applications
 
Taming 3rd party content
Taming 3rd party contentTaming 3rd party content
Taming 3rd party content
 
Velocity 2010 review
Velocity 2010 reviewVelocity 2010 review
Velocity 2010 review
 
Keeping track of your performance using Show Slow
Keeping track of your performance using Show SlowKeeping track of your performance using Show Slow
Keeping track of your performance using Show Slow
 
Keeping track of your performance using show slow
Keeping track of your performance using show slowKeeping track of your performance using show slow
Keeping track of your performance using show slow
 
In Search of Speed
In Search of SpeedIn Search of Speed
In Search of Speed
 
Building your own CDN using Amazon EC2
Building your own CDN using Amazon EC2Building your own CDN using Amazon EC2
Building your own CDN using Amazon EC2
 
Php Code Profiling Using X Debug
Php Code Profiling Using X DebugPhp Code Profiling Using X Debug
Php Code Profiling Using X Debug
 
Why RDFa?
Why RDFa?Why RDFa?
Why RDFa?
 

Kürzlich hochgeladen

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Kürzlich hochgeladen (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

What we can learn from CDNs about Web Development, Deployment, and Performance

  • 1. What  we  can  learn  from  CDNs   about  Web  Development,   Deployment,  and  Performance   Hooman  Behesh+,  VP  Technology         WebPerf  Meetup,  NYC,  May  13,  2014  
  • 2. Who  am  I?   •  Early  Load  Balancing  Vendors   – Radware   – Crescendo  Networks   •  Front  End  Op+miza+on   – Strangeloop  Networks   •  Off  the  grid  for  a  year!   •  Joined  Fastly  6  weeks  ago  
  • 4. What  I’ve  Learned  From   Working  at  a  CDN  Company   for  6  Weeks!!  
  • 5. Lesson:     CDNs  Are  Not  Solved!  
  • 6. We  Don’t  Cache  As  Much  As  We   Should!   •  HTML  and  other  dynamic  content   •  Worse  cache  hit  rate  than  we  think   – Especially  for  long  tail  content   •  Mobile  Apps,  APIs,  etc  
  • 7. Making  Changes  SUCKS!!   •  Configura+on  changes  take  way  too  long   – People  are  used  to  making  changes  real-­‐+me   – CDNs  aren’t  classically  good  at  this   – Phone??   •  Purging  is  a  real  problem   – Slow   – Difficult   – Not  granular  enough  
  • 8. Lots  of  Room   •  New  Demands  from  Customers   •  Plenty  of  room  for  differen+a+on   •  Can’t  take  some  things  for  granted:   – DNS   – Rou+ng   – TCP   – SCALE!   •  Plus:  lots  of  room  to  be  crea+ve  at  the  edge!  
  • 9. Lesson:     There’s  More  to  the  Web  Than   the  Web!  
  • 10. Non  “web”  Traffic   •  Video   –  HLS  (HTTP  Live  Streaming)   –  HTTP-­‐based  small  video  chunks   –  Unique  by  URL   •  APIs   –  Instant  purging  can  let  API  calls  be  cacheable   –  Another  example  of  dynamic  content  cached  at  the   edge   •  Mobile  Apps  
  • 11. Lesson:     People  Use  Their  CDNs  Wrong  
  • 12. CDNs  offer  a  toolset   •  The  black  box  approach  isn’t  always  good   •  Configura+on  isn’t  trivial   – And  a  lot  s+ll  depends  on  configura+on   •  Can’t  depend  on  the  CDN  to  solve  all  your   problems   •  Don’t  exacerbate  your  problems!  
  • 14. Gzipping  Images   •  Not  a  very  good  thing  for  performance   – Extra  bytes   – Extra  work  for  the  browser   •  But  was  this  the  Surrogate’s  fault?  
  • 15. More  Examples   •  Bad  caching  headers   – max-­‐age,  s-­‐maxage  have  a  lot  of  power!   •  Bad  TCP  connec+on  management  at  origin   •  Not  Gzipping  (actual,  compressible  content)   for  origin  fetches    
  • 17. Lesson:     Dynamic  Content  Is  Really   InteresVng!  
  • 18. What  Is  Dynamic  Content?   •  Stuff  that’s  not  sta+c!   •  With  web  traffic,  generally  the  base  HTML   –  Big  deal  because  it’s  blocking   –  And  some+mes  the  largest  object;  longer  download   •  Some  AJAX   •  More…  
  • 19.
  • 21.
  • 22.
  • 23. Classically,  with  dynamic  content…   Caching  
  • 24. Caching     vs.     InvalidaVon  
  • 25.
  • 26.
  • 27.
  • 29. Dynamic  Content  Caching  Problems   •  Serving  stale  pages   – Lack  of  good  invalida+on  framework   •  Visibility   •  Logging    
  • 30. CDNs  and  Dynamic  Content   •  Generally,  handling  dynamic  content  has  been   a  maber  of  transport   – Middle  mile  op+miza+ons   – TCP  tweaks   •  Some  edge  micro  caching,  but  not  easy   •  ESI    
  • 31. Actually…   •  Dynamic  content  is  more  cacheable  than  we   think   •  Sta+c  for  short  periods  of  +me   •  Unpredictable  invalida+on   – Standard  HTTP  caching  rules  aren’t  good  enough  
  • 32. So  Many  Benefits!   •  Performance   – Faster  +me  to  first  byte   – Faster  start  render   – Happy  users!   •  Offload   – Less  work  for  our  servers   – Less  bandwidth  at  origin  
  • 33. What  Would  Make  It  BeZer?   •  Programma+c  Invalida+on   – Granular   – Instantaneous   •  Control  at  the  edge,  and  not  just  for  web   pages   – Real-­‐+me  log  files   – Imagine  termina+ng  beacons  at  the  edge!    
  • 34. Lesson:     IntegraVng  is  Awesome!  
  • 35. The  Influence  of  Clouds   •  DevOps  people  like  programmability  and   integra+on   •  The  CDN  is  no  longer  a  black  box  mechanism,   necessarily   •  Cliché  Alert:  Content  as  a  Service!  
  • 36. Real  Time  IntegraVon   •  Tap  in  to  the  CDN:   – Instantaneous  configura+on  changes   – Instantaneous  cache  purge  and  invalida+on   – Real  +me  stats  and  logs   •  Infrastructure  as  code   – Expect  extensive  APIs   – Apps  need  to  naturally  extend  to  the  CDN   – Your  content  =>  you  need  control  
  • 38. Lesson:     Measurement  is  SVll  Hard  
  • 39. “SVll”   •  In  the  world  of  FEO   – Webpagetest.org   – RUM   – Synthe+c  tes+ng  vendors   •  In  the  world  of  CDNs   – Same  as  far  as  client  performance  goes   – Some  new  things…  
  • 40. Client-­‐side  Measurement  in  CDNs   •  Cache  hit  ra+o   – How  do  you  test  and  measure?   •  Long  tail  content?   •  DNS  and  edge  node  selec+on   •  TTFB  out  of  datacenter   – Memory  hit  vs  disk  hit  vs  mid-­‐+er  hit  vs  miss   •  RUM  and  synthe+c  (Cedexis,  Catchpoint,  etc)   •  There’s  s+ll  gaming  going  on!  
  • 41. Let’s  Test  It!   •  3  Objects  on  the  same  CDN  (anonymous)   –  Cedexis  object   –  Small  image  from  Alexa  5000  site   –  Long  tail  object:  ~40  +mes  every  3-­‐4  hours   •  Use  Catchpoint  last  mile  clients  in  US   –  Test  every  15  minutes   –  ~11,500  total  tests  across  all  test  nodes   •  Focus  measurement  on:   –  Connect  +me  (TCP)   –  Wait  +me  (TTFB)  
  • 42. Cedexis  Object   Connect  (median)   Wait  (median)   Cedexis   14ms   19ms  
  • 43. Cedexis  Object   Alexa  5000   Connect  (median)   Wait  (median)   Cedexis   14ms   19ms   Alexa  5000   14ms   24ms  
  • 44. Cedexis  Object   Alexa  5000   Connect  (median)   Wait  (median)   Cedexis   14ms   19ms   Alexa  5000   14ms   24ms   26%  
  • 45. Cedexis  Object   Long  Tail  Alexa  5000   Connect  (median)   Wait  (median)   Cedexis   14ms   19ms   Alexa  5000   14ms   24ms   Long  Tail   15ms   29ms  
  • 46. Cedexis  Object   Long  Tail  Alexa  5000   Connect  (median)   Wait  (median)   Cedexis   14ms   19ms   Alexa  5000   14ms   24ms   Long  Tail   15ms   29ms   20%  
  • 47. Cedexis  Object   Count   TCP   TTFB   Count   TCP   TTFB   Count   TCP   TTFB   Mem   11,074   14ms   19ms   481   14ms   19ms   6741   14ms   20ms   Disk   428   12ms   24ms   9626   15ms   28ms   4692   14ms   31ms   Miss   1   6ms   38ms   1355   16ms   51ms   28   13ms   45ms  
  • 48. Cedexis  Object   Alexa  5000   Count   TCP   TTFB   Count   TCP   TTFB   Count   TCP   TTFB   Mem   11,074   14ms   19ms   6741   14ms   20ms   481   14ms   19ms   Disk   428   12ms   24ms   4692   14ms   31ms   9626   15ms   28ms   Miss   1   6ms   38ms   28   13ms   45ms   1355   16ms   51ms  
  • 49. Cedexis  Object   Long  Tail  Alexa  5000   Count   TCP   TTFB   Count   TCP   TTFB   Count   TCP   TTFB   Mem   11,074   14ms   19ms   6741   14ms   20ms   481   14ms   19ms   Disk   428   12ms   24ms   4692   14ms   31ms   9626   15ms   28ms   Miss   1   6ms   38ms   28   13ms   45ms   1355   16ms   51ms  
  • 50. Cedexis  Object   Long  Tail  Alexa  5000   Count   TCP   TTFB   Count   TCP   TTFB   Count   TCP   TTFB   Mem   11,074   14ms   19ms   6741   14ms   20ms   481   14ms   19ms   Disk   428   12ms   24ms   4692   14ms   31ms   9626   15ms   28ms   Miss   1   6ms   38ms   28   13ms   45ms   1355   16ms   51ms   99.99%   Mem:  96.27%   Disk:  3.72%  
  • 51. Cedexis  Object   Long  Tail  Alexa  5000   Count   TCP   TTFB   Count   TCP   TTFB   Count   TCP   TTFB   Mem   11,074   14ms   19ms   6741   14ms   20ms   481   14ms   19ms   Disk   428   12ms   24ms   4692   14ms   31ms   9626   15ms   28ms   Miss   1   6ms   38ms   28   13ms   45ms   1355   16ms   51ms   99.99%   Mem:  96.27%   Disk:  3.72%   99.76%   Mem:  58.82%   Disk:  40.94%  
  • 52. Cedexis  Object   Long  Tail  Alexa  5000   Count   TCP   TTFB   Count   TCP   TTFB   Count   TCP   TTFB   Mem   11,074   14ms   19ms   6741   14ms   20ms   481   14ms   19ms   Disk   428   12ms   24ms   4692   14ms   31ms   9626   15ms   28ms   Miss   1   6ms   38ms   28   13ms   45ms   1355   16ms   51ms   99.99%   Mem:  96.27%   Disk:  3.72%   99.76%   88.17%   Mem:  58.82%   Disk:  40.94%   Mem:  4.19%   Disk:  83.98%  
  • 53. Measurement!   •  Not  only  do  I  care  about:   – Cache  hit  rate   – Long  tail   – Measuring  the  right  thing   •  Fetching  from  disk  could  suck!   – SSDs!   •  Caching  ≠  Caching  
  • 54. Lesson:     It’s  Not  Only  About…  
  • 56. Security   •  Cer+ficate  management   •  Perimeter  security   •  DDoS  protec+on  <-­‐  benefit  of  scale!  
  • 57. Flexibility,  Visibility,  and  Control   •  Integra+on   •  Programmability   •  APIs   •  Instant  purging   •  Real  +me  logs  
  • 58. Fun  at  the  Edge!   •  Synthe+c  responses   –  Example:  node  ID  for  Cedexis  measurements   •  Cookie  manipula+on   –  Remove/inject/replace/recall   •  Beacon  termina+on   –  204  responses   –  Real  +me  logs   –  Awesome!  
  • 59. PERFORMANCE!!   It’s  s+ll  preby  damn  important!