Engineering a Content Delivery Network Bruce Maggs

advertisement
Engineering a Content
Delivery Network
Bruce Maggs
CDN Services
• Video delivery
• Software delivery
• Web-page delivery
• Domain name system services
• Protection against attacks
Network Deployment
175000+
Servers
Current Installations
1300+
Networks
139+
Countries
Akamai Statistics
• Peak bit rate: over 33 trillion bps (4-14-2015)
• Peak IPv4 HTTP daily requests: over 2.7 trillion
(5-13-15)
• Peak IPv6 HTTP daily requests: over 50 billion
• 812 million unique IPv4 addresses connected to
Akamai in Q1 2015
Design Themes
• Redundancy
• Self-assessment
• Fail-over at multiple levels
• Robust algorithms
Embedded Image Delivery
(e.g., Facebook)
Embedded URLs are Converted to ARLs
<html>
<head>
<title>Welcome to xyz.com!</title>
</head>
ak
<body>
<img src=“ http://www.xyz.com/logos/logo.gif”>
<img src=“ http://www.xyz.com/jpgs/background.jpg”>
<h1>Welcome to our Web site!</h1>
<a href=“page2.html”>Click here to enter</a>
</body>
</html>
Akamai DNS Resolution
4
xyz.com
510.10.123.5
xyz.com’s
nameserver
akamai.net
8
a212.g.akamai.net
7
6
.com .net
Root
(Verisign)
9
15.15.125.6
ak.xyz.com
select cluster
10 g.akamai.net
20.20.123.55
11
Akamai High-Level DNS Servers
12a212.g.akamai.net
30.30.123.5
Local Name
Server
End User
16
Browser’s
Cache
14
3
1
2
15
OS
13
Akamai Low-Level DNS Servers
select servers within cluster
FirstPoint – DNS (e.g., Microsoft!)
• Selects from among several mirror sites
operated by content provider
Akamai Cluster
Servers pool resources
•RAM
•Disk
•Throughput
View of Clusters
buddy
suspended
hardware
failure
odd man
out
suspended
datacenter
Network Failures
E.g., congestion at public and private
peering points, misconfigured
routers, inaccessible networks, etc.,
etc., etc.
Core Points
X
1
2
3
4
• Core point X is the first router at which all
paths to nameservers 1, 2, 3, and 4
intersect.
• X can be viewed as the straddling the
core and the edge of the network.
Core Points
500,000 nameservers
reduced to
90,000 core points
7,000 account for 95% end-user load
Engineering Methodology
•C programming language (gcc).
•Reliance on open-source code.
•Large distributed testing systems.
•Burn-in on “invisible” system.
•Staged rollout to production.
•Backwards compatibility.
Download