One of the major benefits of leveraging cloud services is the ability to spin up resources quickly. Depending on what consumers are deploying in the cloud, they, or perhaps their customers may also want fast access and good performance to those services and data. For instance, let’s say you run a video streaming platform. You would want to make sure that your customers experienced fast access to that video content with low latency. You would not necessarily want all of that content centrally located for consumption. Performance might be satisfactory for customers geographically close to the centralized cloud data center, but could be unacceptable for customers further away. This problem is solved with a concept called content delivery networks.
A content delivery network is a system of distributed compute and storage environments. The goal behind content delivery networks is to get data hosted as close to the consumers as possible so that they have a good experience when they access the content. At a high level, content is created originally on a system, then replicated and synchronized to the endpoints participating in the content delivery network, to be consumed by customers. Content delivery networks have the following characteristics/requirements:
- Content synchronization mechanism – As stated above, the content needs to as close to the consumers as possible. A CDN must have a defined method for replicating and synchronizing that data amongst the different cache locations in the network. You as a content owner or distributor want to make sure that a consumer can get to the same content no matter which system they end up accessing within the content delivery network. The look and feel must be the same.
- Global cache locations – To provide the most value, a CDN must have compute and storage environments in as many strategic locations as possible. In my opinion, content creators and distributors would want to be leverage a CDN that has the ability to get them the furthest reach to potential consumers.
- CDN-enabled namespace – How do CDNs steer traffic to make sure that consumers are requesting content from the closest possible source? This is accomplished with Domain Name System (DNS). A CDN-enabled namespace provides support to resolve hostnames to different IP addresses depending on where geographically the DNS queries are sourcing. For instance, if I am a consumer trying to stream a cool new TV show from a service and I am in the northeastern part of the United States, I hope that when my device does a DNS query for the streaming service, it will resolve to a CDN location relatively close to where I am physically located.
To me, content delivery networks, or essentially distributed compute and storage environments are a huge value proposition from cloud service providers. CDNs enable organizations to deliver content quickly and efficiently to consumers without having to build out their own, potentially global presence. On the other side, consumers are able to experience good performance by having content delivered from close proximity.