A content delivery network helps to host content such as images, media files, static content and style sheets of a large website by reproducing a copy of data through the various nodes of a network. Additionally, content delivery software helps to reduce load of websites and to improve downloading time of the websites. CDN is not just software; instead, it is a mix of hardware and software which helps to solve the problem of web content downloading and management using synchronization, logging, authentication and load balancing.
As a software architect, I have personally preferred to pick a low cost CDN or to create my own CDN using open source tools along with freely available public CDNs just like for jQuery and other popular libraries.
Here is the list of open source projects which can be used to create your own CDN –
- Firestarter Content Delivery System
Cacheboy Mod CDN – Apache Module OpenCDN Phloem P2P-Next
CoralCDN is one of the most popular and free peer-to-peer CDN which has proxies and name servers across the world. Coral replicates content and allows users to publish content. It allows easy access to the content of the websites and it can get cached objects through network too. It avoids hot spots in its infrastructure to provide high speed service. The software uses novel indexing method DSHT and creates self organizing clusters of nodes to get information from a nearby node. CoralCDN is managed by a Princeton SNS group.
Mirrorbrain provides mirror servers to run content delivery networks. It has a download redirector which redirects the request from the browser to the local mirror server. It can be used to generate torrents in real-time. It is licensed through GPL and three Apache modules of Mirrorbrain is licensed under Apache license.
CoDeeN is an academic CDN which is built on the top of PlanetLab at Princetown University and it has been tested through high performance proxy servers. The server works as server surrogates and request redirectors. It provides fast and robust web content, and many projects are associated to CoDeen such as CoBlitz, CoDeploy, CoDNS, CoTop, CoMon and CoVisualize. CoBlitz is web based distribution service which provides distribution of large files.
Mediaport.net is a cooperative CDN which uses peer-to-peer infrastructure for web hosting and it is licensed under BSD license.
Firestarter is a cross platform content delivery system which provides distribution of games, live videos, audio, data and different types of multimedia content. It is licensed under GNU General Public License.
Cacheboy provides an open platform to provide efficient content delivery. The open source project’s mirror infrastructure is donated to service providers across the world and these mirrors are connected through internet. The project redirects the user to a mirror close to the user’s location. Hence Cacheboy essentially works through mirrors and it is licensed under GPLv3 license.
Mod_cdn is a Apache Module developed at Voxwl and it helps in sending proper headers and validating authentication tokens. It can be installed and configured at customer’s server and it is licensed under GPL v2 license. There is no package for Mod_cdn and the user will have to compile from the source.
OpenCDN is an application level CDN which replicates content and splits the live and recorded content. OpenCDN is coded in Perl and it uses Relay technology to split media packets. The control communication between the nodes and origins is done through XML – RPC. It is licensed through Perl Artistic License and can be downloaded from Download OpenCDN .
Phloem is a light weight open source CDN which has the base layer called Xylem, and the CDN is written in Perl. It is licensed under GNU GPL v3. Its code can be found at Download Phloem
P2P-Next is next generation Peer-to-Peer content delivery software which can be used for simultaneous transmission to millions of people and it uses multicasting to send data to millions of users at one time. The data stream is distributed through the local servers and the live events can be re-broadcasted to local viewers. Since IP routers do not support multicasting, optimized uni-cast, broadcast and multicast mechanism is adopted through P2P. The provider has partners in 12 countries and it is based on open standards open source.
CDN nodes are located in various geographical locations and these nodes work in cooperation with the requests of the client. Content delivery networks distribute the assets and use various techniques such as server load balancing, web caches, dynamic metafile generation, ‘anycasting’ and HTML rewriting to reduce client response time.
It’s essential that the CDN is located near the targeted customer, since that would result in faster page loads and resultantly, the customers browsing experience will be enhanced. If you are planning to set up a geo targeted website, an Opensource software listed in this article would enable you to quickly start a CDN. However, you may require hardware for running these. On the other hand, if you are building a website which has a worldwide presence, you should opt for niche CDN services such as Akamai and Incapsula.
There are a number of popular CDNs, besides the ones mentioned in this list. Please share with us in comments if you have used some other CDNs which you were impressed with.
Updated On Oct 2016: Updated links and fixed minor formatting issues.