Content Delivery Network Algorithms, Examples, Code

What design considerations should be taken when writing software for content distribution systems, such as managing synchronization and data distribution, redirecting downloads to nearby servers, etc.?

I am also looking for examples of open source CDN (content delivery network) programs. I can present two projects: CoralCDN and OpenCDN

Please note that for CDN there is more than just hardware bandwidth. CDN is a combination of software and hardware.

What I would like to use is software for streaming media as well as static assets. I find it difficult to understand how to correctly synchronize streaming media on servers (since access to files can be quite random), while static assets seem a little easier, since this is a one-time request.

+6
design-patterns open-source cdn
source share
3 answers

Do you understand that the value of the content delivery network is purely the number of servers that they own, and the proximity of the servers to end users?

Are you sure you are on the right track?

+7
source share

So far, I donโ€™t know any open source projects, maybe itโ€™s worth summing up that there really is a CDN? In the end, just taking a bunch of web servers will bring you nowhere.

The main problems that need to be solved by CDN Software:

  • Synchronization. So you have all your neat farms in the USA, Europe, and Asia, but how do you make sure that they all have the same file versions that you are trying to execute? And if one of the farms does not have the current version, how do you say the load balancer that the farm should use instead?
  • Logging On CDN, you usually want to pay for your client, so you need to measure traffic and file access. But with multiple farms and multiple web servers in each farm, you need to somehow centralize logging
  • Authentication After all, a CDN is not just a web server delivering HTTP content to everyone. What if you have a CDN for video streaming, which actually restricts access only to certain users?
  • Load balancing Although this is usually done separately, this also applies to the synchronization part. Therefore, I am a user from South Korea trying to access content. The load balancer finds out that the Seoul Farm is the closest - but unfortunately there is no content in Seoul Farm yet. Thus, the CDN and the Load Balancer must figure out which nearest farm has content. Let's see ... There is content in Paris, France and Los Angeles, USA. Who needs to be served?

Each problem in itself is not an exclusive CDN problem, but CDN Software is essentially a combination of these methods. Any others that I forgot?

From the comments:

  • Determining which files to replicate where. Japanese Windows Update can be very popular in Japan and possibly in some other Asian countries, but Europe and the US may have fewer requests for it, so this file may not need to be replicated across every farm to a CDN.
+7
source share

CDN is not part of the software. Please at least google or find a thing on the wiki. http://en.wikipedia.org/wiki/Content_Delivery_Network

+3
source share

All Articles