The Server-Side Pad

by Fabien Tiburce, Best practices and personal experiences with enterprise software

Posts Tagged ‘progressive download

Case Study: Serving Video Using a Content Delivery Network

with 3 comments

When all you have is a hammer, everything looks like a nail.  Nowhere is this truer than in systems.  While application servers can host static content (images, flash videos, sound clips, etc…. ), they are not optimized for this purpose.  Ignoring this fact will typically affect the performance of the application and ultimately the user experience.  The organization may also be penalized with higher labour costs, slower time to market and higher hosting fees.  This article discusses content-hosting alternatives.  

Years ago, few choices existed.  Organizations purchased load-balancers and servers to host their static content.  Each dynamic page that needed a static resource would fetch it from a remote location, through the load balancer, typically via an API.  There is nothing wrong with doing that.  In fact, if your organization has little static content and/or untapped server capacity and bandwidth, this is still a good option.  But before you run out and purchase hardware, consider outsourcing the problem.  Large news organizations typically don’t host their own content, perhaps neither should you.

While cloud computing is one obvious alternative, cloud computing is not, in and out of itself, load balanced.  You still need to purchase computing instances, setup a software load balancer on one, and web servers on the others.  While this is typically cheaper than procuring hardware, you still have to setup and maintain software services, albeit on a cloud instance.  Cloud computing also doesn’t necessarily let you reap the benefits of a geographically-distributed infrastructure.  This is where Content Delivery Networks (CDN) come in.  A CDN (such as Limelight which we used to help deploy a large video-based training system) is a network of servers that transparently serve content from hundreds or thousands of servers.  The CDN will deliver content based on the user’s location by choosing the closest server thus improving performance.  A CDN will also replicate changes automatically across the network so when new or changed content is  uploaded, all servers are notified.  Hosting your organization’s content on a public network doesn’t have to mean it is visible to all.  We implemented Limelight’s MD5-encoded secret key to fetch our content securely.  Alternatively, content can be automatically set to expire after a set period of time (useful for paid downloads).

A CDN not only improves system performance, it requires no setup and no maintenance thus easing labour costs.  It can prove cheaper to host and serve a large library of static content such as video.  It is highly redundant and can be made secured.

Written by Compliant IA

January 13, 2009 at 6:14 pm