1 / 52

Life on the Edge with ESI

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.

speidel
Download Presentation

Life on the Edge with ESI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Life on the Edge with ESI • Kit Chan(kichan@yahoo-inc.com) • Yahoo!

  2. Life on the Edge Source: http://img.shockblast.net/2012/01/ShockBlast-4-803109.jpg

  3. Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A

  4. Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A

  5. Edge Computing/CDN Source: http://www.excitingip.com/wp-content/uploads/2011/01/contentdeliverynetworkblockdiagram.jpeg

  6. 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

  7. 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

  8. ESI – Edge Side Includes

  9. Syntax Example • Markup in Response <esi:include src=http://xyz.com/content.html/>

  10. 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>

  11. ESI Support in Proxy Server – Proven & Popular

  12. ESI Support in CDN Vendor

  13. Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A

  14. Use Case 1 – Content Assembly

  15. Use Case 1 – Content Assembly

  16. Use Case 1 – Content Assembly

  17. Use Case 1 - Content Assembly

  18. Why? Performance!

  19. Why? Availability • Why it goes down? • Releases • Outage • How ESI Help? • Template cached • Fallback for each ESI module

  20. Why? Legacy Module Support

  21. 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

  22. Combo Handler Sequence Diagram

  23. 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>

  24. 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

  25. Use Case 3 - Timely Launch

  26. Before Launch

  27. After Launch

  28. Timely Launch – Before Launch

  29. Timely Launch – Before Launch

  30. Timely Launch – After Launch

  31. Timely Launch – After Launch

  32. Usage Pattern ESI Service Proxy Server/CDN Client Origin Server for ESI Include

  33. Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A

  34. Concurrent Requests

  35. First Byte Flush

  36. ESI Support in Varnish • No concurrent requests for includes • First Byte Flush Support

  37. ESI Support in Apache Traffic Server • Concurrent requests for includes • First Byte Flush Support*

  38. Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A

  39. 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/

  40. Future – Deep HTTP Integration Origin Server returing ESI Document Proxy Server Supporting ESI Client Origin Server for ESI Include

  41. 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

  42. 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

  43. 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

  44. One request for multiple includes (e.g. one Ad call fetching multiple ad position) Future – Smart Assembly

  45. 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

  46. Agenda • Introduction • Use Cases • Performance Characteristics • Future • Q&A

  47. Q & A Thank you kichan@yahoo-inc.com

More Related