CloudFront is a Content Delivery Network (CDN) provided by Amazon Web Services (AWS). It integrates seamlessly with other AWS services.
Agenda of this presentation is
1. CloudFront OVERVIEW
2. CloudFront BEST PRACTICES & ANTI-PATTERNS
This presentation was prepared for AWS Sydney Meetup.
27. CF Concepts
Dynamic Content
Static Content
http://mycontent.cloudfront.net/photos/profile.png
Cache Key: photos/profile.png (Same for HTTP/HTTPS)
Cache Key:
object path relative to origin + forwarded query string/cookies
Wednesday, 7 August 13
28. How it works
1. Client request file
2. If file in cache CF return file
Nearest Edge
Location
a. If file not in cache, CF request to origin
b. Origin returns file, status 200, cached in CF
1. Client request file
2. If file in cache CF return file
Nearest Edge
Location
a. If file in cache but expired, CF request to origin
b. Origin returns 304, CF keeps file in cache
Routing based on low latency/price class
Routing based on low latency/price class
Condition GET
Wednesday, 7 August 13
36. Distribution
Download Distribution
Viewer Protocol HTTP/HTTPS
Origin: S3 or Custom
Cookies/Query String Forwarding
Streaming Distribution
Viewer Protocol: Adobe RTMP
Origin: S3 only (No Custom)
Wednesday, 7 August 13
37. Distribution
Download Distribution
Viewer Protocol HTTP/HTTPS
Origin: S3 or Custom
Cookies/Query String Forwarding
Streaming Distribution
Viewer Protocol: Adobe RTMP
Origin: S3 only (No Custom)
Dynamic/Adoptive Streaming (Adjust
bit rate during playback)
Wednesday, 7 August 13
41. Query String Forwarding
Forward query string to origin
Multiple parameters, order/case sensitive
Order sensitive: Two objects in CF
Wednesday, 7 August 13
42. Query String Forwarding
Forward query string to origin
Multiple parameters, order/case sensitive
Order sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
Wednesday, 7 August 13
43. Query String Forwarding
Forward query string to origin
Multiple parameters, order/case sensitive
Order sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
http://d111111abcdef8.cloudfront.net/images/image.jpg?width=b&height=a
Wednesday, 7 August 13
44. Query String Forwarding
Forward query string to origin
Multiple parameters, order/case sensitive
Order sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
http://d111111abcdef8.cloudfront.net/images/image.jpg?width=b&height=a
Case sensitive: Two objects in CF
Wednesday, 7 August 13
45. Query String Forwarding
Forward query string to origin
Multiple parameters, order/case sensitive
Order sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
http://d111111abcdef8.cloudfront.net/images/image.jpg?width=b&height=a
Case sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?type=png
Wednesday, 7 August 13
46. Query String Forwarding
Forward query string to origin
Multiple parameters, order/case sensitive
Order sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
http://d111111abcdef8.cloudfront.net/images/image.jpg?width=b&height=a
Case sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?type=png
http://d111111abcdef8.cloudfront.net/images/image.jpg?type=PNG
Wednesday, 7 August 13
50. Cookies Forwarding
Forwarded cookies (FC): NV pairs, not attributes
If choose to forward cookies to origin,
Can forward all cookies, OR
Wednesday, 7 August 13
51. Cookies Forwarding
Forwarded cookies (FC): NV pairs, not attributes
If choose to forward cookies to origin,
Can forward all cookies, OR
Only specified cookies
Wednesday, 7 August 13
52. Cookies Forwarding
Forwarded cookies (FC): NV pairs, not attributes
If choose to forward cookies to origin,
Can forward all cookies, OR
Only specified cookies
Object path+FC uniquely identify in CF
Wednesday, 7 August 13
53. Cookies Forwarding
Forwarded cookies (FC): NV pairs, not attributes
If choose to forward cookies to origin,
Can forward all cookies, OR
Only specified cookies
Object path+FC uniquely identify in CF
NV pair/Case sensitive
Wednesday, 7 August 13
55. Origin
S3 Origin: Best for Static media content
(Image, Video, Audio)
Wednesday, 7 August 13
56. Origin
S3 Origin: Best for Static media content
(Image, Video, Audio)
Custom Origin: Best for Static application
content (JS, CSS, Fonts)
Wednesday, 7 August 13
57. Origin
S3 Origin: Best for Static media content
(Image, Video, Audio)
Custom Origin: Best for Static application
content (JS, CSS, Fonts)
Custom Origin: Best for Dynamic media
content (HTML, Thumbnails)
Wednesday, 7 August 13
60. Make a note
Eventual Consistency
10 Origin Servers per CF Distribution
Wednesday, 7 August 13
61. Make a note
Eventual Consistency
10 Origin Servers per CF Distribution
10 Cache Behavior per CF Distribution
Wednesday, 7 August 13
62. Make a note
Eventual Consistency
10 Origin Servers per CF Distribution
10 Cache Behavior per CF Distribution
10 CNAME per CF Distribution
Wednesday, 7 August 13
63. Make a note
Eventual Consistency
10 Origin Servers per CF Distribution
10 Cache Behavior per CF Distribution
10 CNAME per CF Distribution
10 Cookies forwarded per Cache Behavior
Wednesday, 7 August 13
76. Cache Invalidation
Programmatic Cache Invalidation
Cache Invalidation is expensive
Unmanageable if you have object dependencies
Wednesday, 7 August 13
77. Cache Invalidation
Programmatic Cache Invalidation
Cache Invalidation is expensive
Unmanageable if you have object dependencies
3 invalidation requests at any given time
Wednesday, 7 August 13
78. Cache Invalidation
Programmatic Cache Invalidation
Cache Invalidation is expensive
Unmanageable if you have object dependencies
3 invalidation requests at any given time
Each invalidation request can included
maximum of 1000 files
Wednesday, 7 August 13
82. Cache Invalidation
Invalidation takes time to propagate
across all edge locations (5-15 minutes)
Deal breaker: browser cache
Versioning is best way to avoid the
invalidation related issues
Wednesday, 7 August 13
89. Versioning
Versioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Wednesday, 7 August 13
90. Versioning
Versioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash key
Wednesday, 7 August 13
91. Versioning
Versioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash key
File name as unique key based on file content /static/712vds57tr18929812312enb.png
Wednesday, 7 August 13
92. Versioning
Versioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash key
File name as unique key based on file content /static/712vds57tr18929812312enb.png
Versioning using prefix/suffix
Wednesday, 7 August 13
93. Versioning
Versioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash key
File name as unique key based on file content /static/712vds57tr18929812312enb.png
Versioning using prefix/suffix
File name with version prefix/suffix /static/profile_123.png
Wednesday, 7 August 13
94. Versioning
Versioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash key
File name as unique key based on file content /static/712vds57tr18929812312enb.png
Versioning using prefix/suffix
File name with version prefix/suffix /static/profile_123.png
File name with version prefix/suffix /static/profile_ 712vds57tr18929812312enb.png
Wednesday, 7 August 13
95. Versioning
Versioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash key
File name as unique key based on file content /static/712vds57tr18929812312enb.png
Versioning using prefix/suffix
File name with version prefix/suffix /static/profile_123.png
File name with version prefix/suffix /static/profile_ 712vds57tr18929812312enb.png
You can use a mixed versioning approach
Wednesday, 7 August 13
97. Versioning using query strings
CF supports versioning using query strings
forwarding
Wednesday, 7 August 13
98. Versioning using query strings
CF supports versioning using query strings
forwarding
Versioning enabled Origin (Custom/S3)
Wednesday, 7 August 13
99. Versioning using query strings
CF supports versioning using query strings
forwarding
Versioning enabled Origin (Custom/S3)
For S3 Content
Wednesday, 7 August 13
100. Versioning using query strings
CF supports versioning using query strings
forwarding
Versioning enabled Origin (Custom/S3)
For S3 Content
On object upload version enabled S3
bucket will return x-amz-version-id
Wednesday, 7 August 13
101. Versioning using query strings
CF supports versioning using query strings
forwarding
Versioning enabled Origin (Custom/S3)
For S3 Content
On object upload version enabled S3
bucket will return x-amz-version-id
profile.png
Wednesday, 7 August 13
102. Versioning using query strings
CF supports versioning using query strings
forwarding
Versioning enabled Origin (Custom/S3)
For S3 Content
On object upload version enabled S3
bucket will return x-amz-version-id
profile.png Upload to S3
Wednesday, 7 August 13
103. Versioning using query strings
CF supports versioning using query strings
forwarding
Versioning enabled Origin (Custom/S3)
For S3 Content
On object upload version enabled S3
bucket will return x-amz-version-id
profile.png Upload to S3 static/images/profile.png
Wednesday, 7 August 13
104. Versioning using query strings
CF supports versioning using query strings
forwarding
Versioning enabled Origin (Custom/S3)
For S3 Content
On object upload version enabled S3
bucket will return x-amz-version-id
profile.png Upload to S3 static/images/profile.png Return x-amz-version-id
Wednesday, 7 August 13
105. Versioning using query strings
CF supports versioning using query strings
forwarding
Versioning enabled Origin (Custom/S3)
For S3 Content
On object upload version enabled S3
bucket will return x-amz-version-id
profile.png Upload to S3 static/images/profile.png Return x-amz-version-id
static/images/profile.png?
versionId=644c69e148
Wednesday, 7 August 13
108. Versioning using query strings
Versionify Application content
Use Build Number or Hash of GIT/HG Head
Wednesday, 7 August 13
109. Versioning using query strings
Versionify Application content
Use Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Wednesday, 7 August 13
110. Versioning using query strings
Versionify Application content
Use Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Minify+Combine
Wednesday, 7 August 13
111. Versioning using query strings
Versionify Application content
Use Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Minify+Combine
main.css
main.js
Wednesday, 7 August 13
112. Versioning using query strings
Versionify Application content
Use Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Minify+Combine
main.css
main.js
Versionify
Wednesday, 7 August 13
113. Versioning using query strings
Versionify Application content
Use Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Minify+Combine
main.css
main.js
Versionify main.css?v=468df6b
main.js?v=468df6b
Wednesday, 7 August 13
116. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
Wednesday, 7 August 13
117. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Wednesday, 7 August 13
118. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Before uploading to S3 generate MD5 hash for
file
Wednesday, 7 August 13
119. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Before uploading to S3 generate MD5 hash for
file
Use hash as file name to upload on S3
Wednesday, 7 August 13
120. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Before uploading to S3 generate MD5 hash for
file
Use hash as file name to upload on S3
Avoid content duplication by comparing MD5
hashes
Wednesday, 7 August 13
121. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Before uploading to S3 generate MD5 hash for
file
Use hash as file name to upload on S3
Avoid content duplication by comparing MD5
hashes
profile.jpg
Wednesday, 7 August 13
122. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Before uploading to S3 generate MD5 hash for
file
Use hash as file name to upload on S3
Avoid content duplication by comparing MD5
hashes
profile.jpg MD5 Hash File Name
Wednesday, 7 August 13
123. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Before uploading to S3 generate MD5 hash for
file
Use hash as file name to upload on S3
Avoid content duplication by comparing MD5
hashes
profile.jpg MD5 Hash File Name b723eh0f0df.png
Wednesday, 7 August 13
124. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Before uploading to S3 generate MD5 hash for
file
Use hash as file name to upload on S3
Avoid content duplication by comparing MD5
hashes
profile.jpg MD5 Hash File Name b723eh0f0df.png Upload to S3
Wednesday, 7 August 13
125. Versioning using content based
hash key
File name is an unique hash key
generated from file content (MD5)
For S3 content
Before uploading to S3 generate MD5 hash for
file
Use hash as file name to upload on S3
Avoid content duplication by comparing MD5
hashes
profile.jpg MD5 Hash File Name b723eh0f0df.png Upload to S3 static/images/b723eh0f0df.png
Wednesday, 7 August 13
127. Versioning using content based
hash key
For application content use a pipeline
Wednesday, 7 August 13
128. Versioning using content based
hash key
For application content use a pipeline
file names generated using MD5 hash
of file content
Wednesday, 7 August 13
129. Versioning using content based
hash key
For application content use a pipeline
file names generated using MD5 hash
of file content
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Wednesday, 7 August 13
130. Versioning using content based
hash key
For application content use a pipeline
file names generated using MD5 hash
of file content
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Minify+Combine
Wednesday, 7 August 13
131. Versioning using content based
hash key
For application content use a pipeline
file names generated using MD5 hash
of file content
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Minify+Combine
main.css
main.js
Wednesday, 7 August 13
132. Versioning using content based
hash key
For application content use a pipeline
file names generated using MD5 hash
of file content
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Minify+Combine
main.css
main.js
MD5 Hash File Name
Wednesday, 7 August 13
133. Versioning using content based
hash key
For application content use a pipeline
file names generated using MD5 hash
of file content
photo.css, app.css, profile.css
photo.js, app.js, profile.js
Minify+Combine
main.css
main.js
MD5 Hash File Name
8972bw7dyf2h.css
67bfwu9hhuw.js
Wednesday, 7 August 13
137. Compression
Compressed content is served faster
and uses less bandwidth
CF can serve both compressed and
uncompressed version of files
Wednesday, 7 August 13
138. Compression
Compressed content is served faster
and uses less bandwidth
CF can serve both compressed and
uncompressed version of files
Depends on viewer or browser request
Wednesday, 7 August 13
139. Compression
Compressed content is served faster
and uses less bandwidth
CF can serve both compressed and
uncompressed version of files
Depends on viewer or browser request
To receive compressed content browser must include Accept-Encoding: gzip in the request header
Wednesday, 7 August 13
140. Compression
Compressed content is served faster
and uses less bandwidth
CF can serve both compressed and
uncompressed version of files
Depends on viewer or browser request
To receive compressed content browser must include Accept-Encoding: gzip in the request header
For compression CF relies on the custom
origin servers
Wednesday, 7 August 13
141. Compression
Compressed content is served faster
and uses less bandwidth
CF can serve both compressed and
uncompressed version of files
Depends on viewer or browser request
To receive compressed content browser must include Accept-Encoding: gzip in the request header
For compression CF relies on the custom
origin servers
S3 does not perform the compression
Wednesday, 7 August 13
143. Compression
S3 can store both gzip and non-gzip
versions of the file in the same bucket
Wednesday, 7 August 13
144. Compression
S3 can store both gzip and non-gzip
versions of the file in the same bucket
When uploading gzip file to Amazon S3
set Content-Encoding to gzip
Wednesday, 7 August 13
145. Compression
S3 can store both gzip and non-gzip
versions of the file in the same bucket
When uploading gzip file to Amazon S3
set Content-Encoding to gzip
On-the-fly compression by custom
origin server (Nginx, Apache)
Wednesday, 7 August 13
146. Compression
S3 can store both gzip and non-gzip
versions of the file in the same bucket
When uploading gzip file to Amazon S3
set Content-Encoding to gzip
On-the-fly compression by custom
origin server (Nginx, Apache)
Compress: HTML, CSS, JS etc
Wednesday, 7 August 13
147. Compression
S3 can store both gzip and non-gzip
versions of the file in the same bucket
When uploading gzip file to Amazon S3
set Content-Encoding to gzip
On-the-fly compression by custom
origin server (Nginx, Apache)
Compress: HTML, CSS, JS etc
Compress Image: JPEG, WebP (Q= 0-100)
Wednesday, 7 August 13
150. Expiration
Use one/both of these
On Origin server set Cache-Control
max-age header
Wednesday, 7 August 13
151. Expiration
Use one/both of these
On Origin server set Cache-Control
max-age header
In Cache Behavior set Minimum TTL
Wednesday, 7 August 13
152. Expiration
Use one/both of these
On Origin server set Cache-Control
max-age header
In Cache Behavior set Minimum TTL
Date header/Age header (RFC 2616)
Wednesday, 7 August 13
153. Expiration
Use one/both of these
On Origin server set Cache-Control
max-age header
In Cache Behavior set Minimum TTL
Date header/Age header (RFC 2616)
Avoid Expire header
Wednesday, 7 August 13
157. Expiration
Browser cachability issues (known bug)
Set Cache-Control max-age or Minimum
TTL very far future
Depending on request frequency,
CloudFront might remove the object
before its expiration
Wednesday, 7 August 13
158. Expiration
Browser cachability issues (known bug)
Set Cache-Control max-age or Minimum
TTL very far future
Depending on request frequency,
CloudFront might remove the object
before its expiration
Default expiration 24hrs
Wednesday, 7 August 13
159. Expiration
Browser cachability issues (known bug)
Set Cache-Control max-age or Minimum
TTL very far future
Depending on request frequency,
CloudFront might remove the object
before its expiration
Default expiration 24hrs
Objects are cached for max {Cache-Control
max-age directive, Cache Behavior Minimum TTL}
Wednesday, 7 August 13
162. Domain Sharding
To increase client side performance
On average 100+ resources on an
ecommerce page
Wednesday, 7 August 13
163. Domain Sharding
To increase client side performance
On average 100+ resources on an
ecommerce page
Browsers limit the number of
simultaneous connections to one server
Wednesday, 7 August 13
164. Domain Sharding
To increase client side performance
On average 100+ resources on an
ecommerce page
Browsers limit the number of
simultaneous connections to one server
Hence limit the parallel download from
one server
Wednesday, 7 August 13
166. Domain Sharding
Use two or more CNAME aliases to serve
the content from a CF distribution
Wednesday, 7 August 13
167. Domain Sharding
Use two or more CNAME aliases to serve
the content from a CF distribution
Browser treat them as different servers
Wednesday, 7 August 13
168. Domain Sharding
Use two or more CNAME aliases to serve
the content from a CF distribution
Browser treat them as different servers
Sharding across 2 CNAME aliases will
double the parallel download (Best 2-3)
Wednesday, 7 August 13
169. Domain Sharding
Use two or more CNAME aliases to serve
the content from a CF distribution
Browser treat them as different servers
Sharding across 2 CNAME aliases will
double the parallel download (Best 2-3)
More than 4 CNAME will degrade browser
performance (high CPU and memory uses)
Wednesday, 7 August 13
179. Domain Sharding
Apply domain sharding only where it’s
needed most
Evenly distribute the resources amongst
the shards
Wednesday, 7 August 13
180. Domain Sharding
Apply domain sharding only where it’s
needed most
Evenly distribute the resources amongst
the shards
Consider performance overhead due to
the DNS lookup and connection time
Wednesday, 7 August 13
181. Domain Sharding
Apply domain sharding only where it’s
needed most
Evenly distribute the resources amongst
the shards
Consider performance overhead due to
the DNS lookup and connection time
Sharding may not be good for Mobile
Browsers (CPU, Battery Life)
Wednesday, 7 August 13
185. Bucket Organisation
Limited Cache Behavior per CF Distribution
Plan your bucket organisation (object keys)
Watch out for the upload paths
Wednesday, 7 August 13
186. Bucket Organisation
Limited Cache Behavior per CF Distribution
Plan your bucket organisation (object keys)
Watch out for the upload paths
/video/uploads/, /audio/uploads/, /images/uploads/ BAD
Wednesday, 7 August 13
187. Bucket Organisation
Limited Cache Behavior per CF Distribution
Plan your bucket organisation (object keys)
Watch out for the upload paths
/video/uploads/, /audio/uploads/, /images/uploads/ BAD
/uploads/video/, /uploads/audio/, /uploads/image/ GOOD
Wednesday, 7 August 13
188. Bucket Organisation
Limited Cache Behavior per CF Distribution
Plan your bucket organisation (object keys)
Watch out for the upload paths
/video/uploads/, /audio/uploads/, /images/uploads/ BAD
/uploads/video/, /uploads/audio/, /uploads/image/ GOOD
Use wild card patterns (/uploads/*)
Wednesday, 7 August 13
192. Logging
Enable logging, store access log file to S3
One log file per distribution
Combine log files and analyze logs (EMR)
Wednesday, 7 August 13
193. Logging
Enable logging, store access log file to S3
One log file per distribution
Combine log files and analyze logs (EMR)
W3C extended log file format
Wednesday, 7 August 13
194. Logging
Enable logging, store access log file to S3
One log file per distribution
Combine log files and analyze logs (EMR)
W3C extended log file format
Streaming log vs Download log
Wednesday, 7 August 13
195. Logging
Enable logging, store access log file to S3
One log file per distribution
Combine log files and analyze logs (EMR)
W3C extended log file format
Streaming log vs Download log
Content Analytics: Popularity, Error etc
Wednesday, 7 August 13
199. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
Wednesday, 7 August 13
200. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
CDN Server → Backbone
Wednesday, 7 August 13
201. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
CDN Server → Backbone
Last Mile (Real World, User Experience)
Wednesday, 7 August 13
202. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
CDN Server → Backbone
Last Mile (Real World, User Experience)
CDN Server → Backbone → Device
Wednesday, 7 August 13
203. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
CDN Server → Backbone
Last Mile (Real World, User Experience)
CDN Server → Backbone → Device
3rd party service (Gomez), application monitor
Wednesday, 7 August 13
204. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
CDN Server → Backbone
Last Mile (Real World, User Experience)
CDN Server → Backbone → Device
3rd party service (Gomez), application monitor
Load Testing (Edge Location, Elastic IP Aware)
Wednesday, 7 August 13
205. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
CDN Server → Backbone
Last Mile (Real World, User Experience)
CDN Server → Backbone → Device
3rd party service (Gomez), application monitor
Load Testing (Edge Location, Elastic IP Aware)
Clients request from different geolocations
Wednesday, 7 August 13
206. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
CDN Server → Backbone
Last Mile (Real World, User Experience)
CDN Server → Backbone → Device
3rd party service (Gomez), application monitor
Load Testing (Edge Location, Elastic IP Aware)
Clients request from different geolocations
Independent DNS request, different set of IPs
Wednesday, 7 August 13
207. Performance Testing
Tradition Load Testing not useful
Same DNS request, same set of IPs
Backbone Testing (Ideal Word)
CDN Server → Backbone
Last Mile (Real World, User Experience)
CDN Server → Backbone → Device
3rd party service (Gomez), application monitor
Load Testing (Edge Location, Elastic IP Aware)
Clients request from different geolocations
Independent DNS request, different set of IPs
Distribute load across set of IPs
Wednesday, 7 August 13