CDNs have traditionally been considered "black box" services with lack of control and visibility. Modern applications and DevOps culture require more flexibility, customization, and insight into your infrastructure, and how content is being served. In this talk, we'll explore how you can use content delivery networks as an extension of your applications, with full control, flexibility, and transparency at the network edge.
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
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
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
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
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