Life on the Edge with ESI
Transcript of Life on the Edge with ESI
![Page 2: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/2.jpg)
![Page 3: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/3.jpg)
![Page 4: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/4.jpg)
![Page 5: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/5.jpg)
Life on the Edge
Source: http://img.shockblast.net/2012/01/ShockBlast-4-803109.jpg
![Page 6: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/6.jpg)
Agenda Introduction Use Cases Performance Characteristics Future Q&A
![Page 7: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/7.jpg)
Agenda Introduction Use Cases Performance Characteristics Future Q&A
![Page 8: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/8.jpg)
Edge Computing/CDN Source: http://www.excitingip.com/wp-content/uploads/2011/01/contentdeliverynetworkblockdiagram.jpeg
![Page 9: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/9.jpg)
CDN in Yahoo!
- Pages: avg 30.2 Gbps send, 28.48 Gbps recv, 20.2% cache ratio- Assets: avg 38.7 Gbps send, 4.1 Gbps recv. 96.7% cache hit ratio
User Location Latency - 100K file in US Through Y! EdgeCalifornia, USA 0.2s 0.02sSingapore 2s 0.02sKorea 1.3s 0.02sIreland 1.2s 0.2sSwitzerland 1.0s 0.2s
![Page 10: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/10.jpg)
Edge Computing in Yahoo!
- Pages: avg 30.2 Gbps send, 28.48 Gbps recv, 20.2% cache ratio- Assets: avg 38.7 Gbps send, 4.1 Gbps recv. 96.7% cache hit ratio
User Location Latency - 100K file in US Through Y! EdgeCalifornia, USA 0.2s 0.02sSingapore 2s 0.02sKorea 1.3s 0.02sIreland 1.2s 0.2sSwitzerland 1.0s 0.2s
![Page 11: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/11.jpg)
ESI – Edge Side Includes
![Page 12: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/12.jpg)
Syntax ExampleMarkup in Response<esi:include src=http://xyz.com/content.html/>
![Page 13: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/13.jpg)
Syntax ExampleCan handle response error and timeout<esi:try><esi:attempt> <esi:include src=http://xyz.com/content.html/ ></esi:attempt><esi:except> Sorry there is an error!</esi:except></esi:try>
![Page 14: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/14.jpg)
ESI Support in Proxy Server – Proven & Popular
![Page 15: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/15.jpg)
ESI Support in CDN Vendor
![Page 16: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/16.jpg)
Agenda Introduction Use Cases Performance Characteristics Future Q&A
![Page 17: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/17.jpg)
Use Case 1 – Content Assembly
![Page 18: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/18.jpg)
Use Case 1 – Content Assembly
![Page 19: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/19.jpg)
Use Case 1 – Content Assembly
![Page 20: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/20.jpg)
Use Case 1 - Content Assembly
![Page 21: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/21.jpg)
Why? Performance!No server cache + No ESI
Server cache + No ESI
ATS Cache + ESI modules
ScenarioOrigin Server Handling Full Page requests each time and executing every module every time.
Origin Server handling full page requests, only executing non cacheable modules
Origin Server only serving requests for non cacheable modules
FE throughput per box
45 queries per second
140 queries per second
190 queries per second
Server latency 900 ms per request 80 ms per page 55 ms per page
![Page 22: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/22.jpg)
Why? AvailabilityWhy it goes down?- Releases- Outage
How ESI Help?- Template cached- Fallback for each ESI module
![Page 23: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/23.jpg)
Why? Legacy Module Support
![Page 24: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/24.jpg)
Use Case 2 – Combo HandlerAllow us to fetch multiple JS/CSS in one HTTP requestE.g. http://l.yimg.com/zz/combo?d/1.js&d/2.js
- It combines http://l.yimg.com/d/1.js and http://l.yimg.com/d/2.js into one response in the server and returns one response
Minimize HTTP requests from browser to increase performance
![Page 25: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/25.jpg)
Combo Handler Sequence Diagram
![Page 26: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/26.jpg)
Sample ESI Doc from Combo URL Decode Service<esi:try><esi:attempt> <esi:include src=http://l.yimg.com/d/1.js/></esi:attempt><esi:except> /* error fetching 1.js */</esi:except></esi:try><esi:try><esi:attempt> <esi:include src=http://l.yimg.com/d/2.js/ ></esi:attempt><esi:except> /* error fetching 2.js */</esi:except></esi:try>
![Page 27: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/27.jpg)
Why? ATS with ESI Plugin
- Provide sophisticated features for HTTP resource caching- Provide other features such as timeout, collapse forwarding for request- Provide capability of fetching contents simultaneously and assembling
them together
![Page 28: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/28.jpg)
Use Case 3 - Timely Launch
![Page 29: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/29.jpg)
Before Launch
![Page 30: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/30.jpg)
After Launch
![Page 31: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/31.jpg)
Timely Launch – Before Launch
![Page 32: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/32.jpg)
Timely Launch – Before Launch
![Page 33: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/33.jpg)
Timely Launch – After Launch
![Page 34: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/34.jpg)
Timely Launch – After Launch
![Page 35: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/35.jpg)
Usage Pattern
ClientProxy
Server/CDN
ESI Service
Origin Server for ESI Include
![Page 36: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/36.jpg)
Agenda Introduction Use Cases Performance Characteristics Future Q&A
![Page 37: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/37.jpg)
Concurrent Requests
![Page 38: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/38.jpg)
First Byte Flush
![Page 39: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/39.jpg)
ESI Support in VarnishNo concurrent requests for includesFirst Byte Flush Support
![Page 40: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/40.jpg)
ESI Support in Apache Traffic ServerConcurrent requests for includesFirst Byte Flush Support*
![Page 41: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/41.jpg)
Agenda Introduction Use Cases Performance Characteristics Future Q&A
![Page 42: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/42.jpg)
HistoryThe spec (ESI 1.0) is published over 10 years ago.- W3C spec- Editor - Mark Nottingham from Akamai
Mark Nottinghamhttp://www.mnot.net/
![Page 43: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/43.jpg)
Future – Deep HTTP Integration
ClientProxy Server Supporting
ESI
Origin Server returing ESI Document
Origin Server for ESI Include
![Page 44: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/44.jpg)
Future – Deep HTTP Integration
ClientProxy Server Supporting
ESI
Origin Server returing ESI Document
Origin Server for ESI Include
Final response header to user cannot be changed
![Page 45: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/45.jpg)
Future – Deep HTTP Integration
ClientProxy Server Supporting
ESI
Origin Server returing ESI Document
Origin Server for ESI Include
Final response header to user can be changed
Request Header, method, timeout cannot be changed for includes
![Page 46: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/46.jpg)
Future – Deep HTTP Integration
ClientProxy Server Supporting
ESI
Origin Server returing ESI Document
Origin Server for ESI Include
Request/Response Header cannot be retrieved as variables
Final response header to user can be changed
Request Header, method, timeout can be changed for includes
![Page 47: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/47.jpg)
Future – Smart Assembly
One request for multiple includes (e.g. one Ad call fetching multiple ad position)
![Page 48: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/48.jpg)
Future – More Use casesDevice DetectionBucket Testing
http://illusionmedia.com/wp-content/uploads/2012/03/mobileDevices1-300x200.jpg
https://doazrm3qeh7n2.cloudfront.net/images/features/quick-a-vs-b-testing.jpg
![Page 49: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/49.jpg)
Agenda Introduction Use Cases Performance Characteristics Future Q&A
![Page 51: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/51.jpg)
Reference ESI Language Specification – http://www.w3.org/TR/esi-lang Edge Architecture Specification - http://www.w3.org/TR/edge-arch ATS ESI plugin - https://github.com/apache/trafficserver/blob/master/plugins/experimental/
esi/README Varnish ESI - https://www.varnish-cache.org/docs/3.0/tutorial/esi.html Akamai ESI - http://www.akamai.com/dl/technical_publications/akamai_esi_extensions.pdf F5 - http://support.f5.com/kb/en-us/products/wa/manuals/product/wa9_4policy/
WA_Policy_9_4-19-1.html
![Page 52: Life on the Edge with ESI](https://reader035.fdocuments.us/reader035/viewer/2022081520/58acffe11a28abca0c8b67a7/html5/thumbnails/52.jpg)
Extra: Moving to the Real Edge? – the Clients Problem with SEO Performance - More HTTP requests between clients and edge servers