Multi-CDN Strategies

Hail NANOG;

Is anyone here leveraging multiple CDN providers for resiliency and have
best practices or other advice they'd be willing to share?

Thanks,
~Chris

I have some experience with this; a few things off the top of my head:

- It’s usually best to leverage some sort of “smart” DNS to handle CNAME distribution, giving you the ability to weight your CNAME distribution vs. only using one CDN all the time, or prefer different CDNs in various global regions. I’ve had decent experience with Dyn here, but Route53 has all the features you’d want as well. If possible, write tooling towards your DNS provider’s API to automate your failovers.

- Weight your distribution such that you never have one CDN turned off completely; you’ll want a small trickle of user traffic hitting every CDN so that the caches won’t be cold when you switch over to it.

- Make sure you have a distributed metrics service (ThousandEyes, WebMetrics, et al) testing your CDNs individually as well as the external hostname.

- Stay away from HTML- or Header-munging features when possible; stick with feature sets that are common (and implementable in similar ways) across your providers. (Similar advice goes for multi-vendor *anything*, TBH)

I could keep going, but if so, I might as well stick them into a powerpoint and submit a talk for Bellevue :slight_smile:

-C

Some folks just let Cedexis do the work.

https://www.cedexis.com/solutions/multi-cdn/

Not a bad idea!

Maybe there's a BCOP here..?

I've seen people do this in their code too, send approximate percentages of
requests to different providers but then you need to do a code push for
failover.

I'll second Cedexis. We use it to spread load across three CDNs plus
our origin, it just works.

*[image: userimage]Scott Larson[image: los angeles]
<https://www.google.com/maps/place/4216+Glencoe+Ave,+Marina+Del+Rey,+CA+90292/@33.9892151,-118.4421334,17z/data=!3m1!4b1!4m2!3m1!1s0x80c2ba88ffae914d:0x14e1d00084d4d09c>Lead
Systems Administrator[image: wdlogo] <https://www.wiredrive.com/> [image:
linkedin] <https://www.linkedin.com/company/wiredrive> [image: facebook]
<https://www.twitter.com/wiredrive> [image: twitter]
<https://www.facebook.com/wiredrive> [image: instagram]
<https://www.instagram.com/wiredrive>*