CDN architecture – best practises and designs

Architecturecdnstatic-content

I am a developer for a website which is heavily reliant on static content such a pictures, videos etc. Our current setup is very simple, we basically have one server acting as our cdn which in turn gets updated by the web servers through rsync. The simplicity if this setup has a couple of drawbacks, mainly the fact we also have to rsync any changes between the web servers.

We are now looking for a less disjointed architecture. One idea is to use NAS which could be mounted in each web server which meant that we wouldn't have to rely on rsync however would introduce a single point of failure.

Does anyone have any knowledge of successful, fairly high volume (approx. 10tb a month) cdn setups and architectures?

Best Answer

First off, you're not using a "Content Delivery Network" (CDN), you just have a single webserver dedicated to serving static content. If you're searching with CDN as your search term, then you'll get wrong answers because that's the wrong word.

You could look into using a real CDN, which caches your static data in many locations around the globe closer to & faster for your end users. Because the CDN caches data closer to the end user, it has lower network latency, and thus speeds up the download. It also provides a scalability benefit, by almost completely offloading the serving of static content from your own servers. MaxCDN & Amazon CloudFront are common low-cost choices.

If your needs are smaller, you can also just use a few webservers to serve your static content. That's pretty simple. In this case, your question seems to be about deployment, i.e. getting the static files to the webservers. There are many ways of doing that, it will depend on what software you're using and how your internal workflow is, perhaps you should open another question with more precise information on this.

Related Topic