Content Delivery Networks: Fundamentals, Design, and Evolution