2012-02-29 09:18:38 | premium
Best effort vs Premium CDNs
When CDNs emerged in the late nineties, their purpose was to deliver content as best as possible on a best effort network: the Internet. Even though global CDNs offer SLA's, these SLA's only cover their own pipes, servers and support.
Global CDNs dump their traffic on the Internet, via carriers or peering links, on internet excanges, into ISP networks. Their SLA's don't cover any capacity guarantee, delivery guarantee or quality guarantee.
So it made a lot of sense for these global CDNs to use matching technologies: caching and DNS. Both technologies are best effort technologies because they do not offer guarantee or control. Which wasn't a requirement on the Internet.
Caching assumes that an edge cache can pull in an object from an origin. But what if the origin or the link to the origin is unavailable? Caching assumes that an edge cache can pull in an object in real time. But what if the origin or the link to the origin is slow? There are too many assumptions but there is no 100% guarantee that every individual viewer can get access to the requested object, there is no 100% guarantee that the file wasn't corrupted in the caching process, there is no 100% guarantee that the end user gets the object in realtime. Caching is a passive distribution technology without any guarantees. Best effort.
DNS assumes that an end user is in the same region as their DNS server. But what if the user is using another DNS server? The end user will connect to a remote server, with dramatic performance reduction and higher costs for the CDN. DNS assumes that other DNS servers respect their TTLs. But what if they don't? End users will connect to a dead or overloaded cache, dramatically degrading the uptime of the CDN. There are many more downsides to DNS. DNS is a passive request routing technology without any guarantees. Best effort.