Let’s Take a Dive into CDNs! Content Delivery Networks
After our little discussion regarding cloud infrastructure services such as AWS and Microsoft Azure, I wanted to touch upon a little topic that I’ve gone over a couple of times but it’s something that is a bit more specific than storage itself and those are the Content Delivery Network otherwise abbreviated as CDN.
With information hosted on these cloud services that provide a platform or an infrastructure to its users, the stored information is located in data centers and are often replicated and synchronized globally as well, instead of personal and physical local servers that people from all over the world have to connect to (think of the bandwidth and latency, my gosh!). If you use a cloud service like AWS or Azure, you can utilize its CDN which helps to spread out the information across those global data centers so people that connect are receiving information from the physical data centers closest to them, thus making it faster! Putting data as close to the user as possible. It’s a network or SAN for the internet word for data, thus allowing it to provide quickly speeds at high availability. The fundamentals of it break down into providing faster speeds on requesting resources from a website, thus an example is as follows.
Now, unless you’re a huge high traffic web content company, CDNs become more and more useful, however with a blog and site like mine, it’s not really as necessary because the time to request simple text information is pretty negligible. But with companies like CNN and Netflix, they’ll need redundancy in data storage to help with their own disaster recovery plans and thus make use of their distributed data storage centers with a CDN component. They’re not complicated because it ends up being the CDN algorithm that configures the best route for information to be request and send, however something to consider is how you have to pay for data transfer! With cloud infrastructure, you have to pay for bandwidth usage on CDN’s but depending on how the data is used and measured. With AWS you pay for the data transfer from the main server to its nodes and not for the data transfer out to the end user, so only for the first “hop” from the main server to the satellite CDN node. Regardless of how bandwidth is measured, look into payment and how it’s measured. If videos are being sent, realize it’s the entire video even though the end-user might not view it all.
Above is a link that lists out some of the largest and most common CDN services, although the numbers are not entirely representative it still provides a good resemblance of common services that are being used, one of which is Amazon’s AWS CloundFront. Another one is CloudFlare’s CDN, whose original service is to provide secure web browsing and securing the page from any external and internal attacks. Other options are Akamai, Edgecast, CacheFly, and a variety of other services with the name of xxxCDN because that’s how imagination and creativity thrives!
The primary benefit of using a CDN is that it drastically reduces load time, making your website faster and more responsive regardless of location and distance from the original home local server. A fast loading website is becoming more important, as it is essential for everything from optimizing user engagement to improving SEO rankings (which I need for this blog… T.T).
With the many CDN services and providers offering different solutions, performance levels and features. How do you select the right CDN for accelerating your website?
Caching vs Dynamic
Caching is the process of duplicating static web objects and serving it from the closest CDN servers to the end user, thus it “pre-loads” and reduces distance of delivery and load time. However, depending on the content, especially with dynamic content it might not be enough because of the need to stay updated and synchronized with the central and global server, especially with online gaming scores, trading, and any other form of real-time data. Dynamic Acceleration, which is the other option, can provide a more direct and faster delivery path between the origin and end servers, thus allowing data packets to connect less but with greater volumes.
Understand the Network Size and Reach
Look into the network sizes and all of the globally distributed nodes and servers. However big Akamai or AWS is, if they don’t have nearby servers to where your targeted end-users are, there is no point or benefit. So regardless of popularity, take into account the best fitting CDN network based on location of data servers. Once you’ve found a couple of services with CDN nodes in your targeted region, try and evaluate the size and number of those data centers because usually the more nodes, the more reliable and easily scalable it is to maintain consistent performance even during high traffic and bandwidth crunching times.
Understand this, CDN networks are meant for speed, scalability, and reliability. Speed refers to how fast the network can return the requested content to the end user. Scalability is the CDN’s ability to maintain consistent performance throughout the network in any condition. Reliability is how well a CDN can maintain up time and prevent outages. The level of performance can vary between different services so it’s important to find the right balance for your own needs, hear that? For your own needs, there is no best CDN server, it’s dependent on what you need. In fact, most services provide a performance test and trial to evaluate the performance, also research network outages on google.
One of the most beautiful things about these are that many times these are just features or they come with many other features like: cloud storage, DNS and DHCP services, Security, Management tools, SSL and other services that were not mentioned. Be aware of what features are offered and what will cost extra. With any occasion when you’re looking to try something new, learn what is offered and review the current structure and determine specifically what needs have to be fulfilled with this new service.