A Practical Guide to Content Delivery Networks