520 likes | 540 Views
Explore the powerful capabilities of Edge Side Includes (ESI) in augmenting web performance through content assembly, legacy module support, and combo handling, as well as its integral role in smart assembly and diverse use cases from device detection to bucket testing.
E N D
Life on the Edge with ESI • Kit Chan(kichan@yahoo-inc.com) • Yahoo!
Life on the Edge Source: http://img.shockblast.net/2012/01/ShockBlast-4-803109.jpg
Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A
Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A
Edge Computing/CDN Source: http://www.excitingip.com/wp-content/uploads/2011/01/contentdeliverynetworkblockdiagram.jpeg
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
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
Syntax Example • Markup in Response <esi:include src=http://xyz.com/content.html/>
Syntax Example • Can 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>
Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A
Why? Availability • Why it goes down? • Releases • Outage • How ESI Help? • Template cached • Fallback for each ESI module
Use Case 2 – Combo Handler • Allow us to fetch multiple JS/CSS in one HTTP request • E.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
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>
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
Usage Pattern ESI Service Proxy Server/CDN Client Origin Server for ESI Include
Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A
ESI Support in Varnish • No concurrent requests for includes • First Byte Flush Support
ESI Support in Apache Traffic Server • Concurrent requests for includes • First Byte Flush Support*
Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A
History • The spec (ESI 1.0) is published over 10 years ago. • W3C spec • Editor - Mark Nottingham from Akamai Mark Nottingham http://www.mnot.net/
Future – Deep HTTP Integration Origin Server returing ESI Document Proxy Server Supporting ESI Client Origin Server for ESI Include
Future – Deep HTTP Integration Origin Server returing ESI Document Proxy Server Supporting ESI Client Origin Server for ESI Include Final response header to user cannot be changed
Future – Deep HTTP Integration Request Header, method, timeout cannot be changed for includes Origin Server returing ESI Document Proxy Server Supporting ESI Client Origin Server for ESI Include Final response header to user can be changed
Future – Deep HTTP Integration Request Header, method, timeout can be changed for includes Origin Server returing ESI Document Proxy Server Supporting ESI Client Origin Server for ESI Include Final response header to user can be changed Request/Response Header cannot be retrieved as variables
One request for multiple includes (e.g. one Ad call fetching multiple ad position) Future – Smart Assembly
Future – More Use cases • Device Detection • Bucket Testing https://doazrm3qeh7n2.cloudfront.net/images/features/quick-a-vs-b-testing.jpg http://illusionmedia.com/wp-content/uploads/2012/03/mobileDevices1-300x200.jpg
Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A
Q & A Thank you kichan@yahoo-inc.com