+ All Categories
Home > Software > Life on the Edge with ESI

Life on the Edge with ESI

Date post: 22-Feb-2017
Category:
Upload: kit-chan
View: 83 times
Download: 0 times
Share this document with a friend
56
Life on the Edge with ESI Kit Chan ([email protected]) Custom Branded Experiences Yahoo!
Transcript
Page 1: Life on the Edge with ESI

Life on the Edge with ESI

Kit Chan ([email protected])Custom Branded Experiences

Yahoo!

Page 2: Life on the Edge with ESI

World Cup Penalty Shootout

Page 3: Life on the Edge with ESI

Royal Wedding

Page 4: Life on the Edge with ESI

Cybergeddon

Page 5: Life on the Edge with ESI

Life on the Edge

Source: http://img.shockblast.net/2012/01/ShockBlast-4-803109.jpg

Page 6: Life on the Edge with ESI

Agenda Introduction Use Cases Performance Characteristics Future Q&A

Page 7: Life on the Edge with ESI

Agenda Introduction Use Cases Performance Characteristics Future Q&A

Page 8: Life on the Edge with ESI

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

Page 9: Life on the Edge with ESI

Edge Computing in Yahoo!

- Pages: avg 120K req/s, 16% cache ratio- Assets: avg 20Gb/s, 95% cache 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

Edge Computing in Yahoo!

- Pages: avg 120K req/s, 16% cache ratio- Assets: avg 20Gb/s, 95% cache 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

ESI can help!

Page 12: Life on the Edge with ESI

ESI Support in Proxy Server – Proven & Popular

Page 13: Life on the Edge with ESI

ESI Support in Proxy Software – New or Unproven

Page 14: Life on the Edge with ESI

ESI Support in CDN Vendor

Page 15: Life on the Edge with ESI

Agenda Introduction Use Cases Performance Characteristics Future Q&A

Page 16: Life on the Edge with ESI

Use Case 1 - Content AssemblyMarkup in Response<esi:include src=http://xyz.com/content.html/>

Page 17: Life on the Edge with ESI

Content Assembly – Error HandlingCan 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 18: Life on the Edge with ESI

Content Assembly

Page 19: Life on the Edge with ESI

Content Assembly

Page 20: Life on the Edge with ESI

Content Assembly

Page 21: Life on the Edge with ESI

Content Assembly

Page 22: Life on the Edge with ESI

Why? Performance!No server cache + No ESI

Server cache + No ESI

YTS 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 23: Life on the Edge with ESI

Why? AvailabilityWhy it goes down?- Releases- Outage

How ESI Help?- Template cached- Fallback for each ESI module

Page 24: Life on the Edge with ESI

Why? Legacy Module Support

Page 25: Life on the Edge with ESI

Use Case 2 - Automatic Fallback“Always On” - 100% availability for “existing” pagesServe static pages when origin servers are down or too slow

No change needed on origin servers

Page 26: Life on the Edge with ESI

Automatic Fallback

26

Page 27: Life on the Edge with ESI

Automatic Fallback

Page 28: Life on the Edge with ESI

Automatic Fallback

Page 29: Life on the Edge with ESI

Automatic Fallback

Page 30: Life on the Edge with ESI

Automatic Fallback – Subsequent Request

Page 31: Life on the Edge with ESI

Automatic Fallback – Subsequent Request

Page 32: Life on the Edge with ESI

Automatic Fallback – Subsequent Request

Page 33: Life on the Edge with ESI

Use Case 3 - Timely Launch

Page 34: Life on the Edge with ESI

Before Launch

Page 35: Life on the Edge with ESI

After Launch

Page 36: Life on the Edge with ESI

Timely Launch – Before Launch

36Confidential

Page 37: Life on the Edge with ESI

Timely Launch – Before Launch

Page 38: Life on the Edge with ESI

Timely Launch – After Launch

Page 39: Life on the Edge with ESI

Timely Launch – After Launch

Page 40: Life on the Edge with ESI

Conclusion - Usage Pattern

ClientProxy

Server/CDN

ESI Service

Origin Server for ESI Include

Page 41: Life on the Edge with ESI

Agenda Introduction Use Cases Performance Characteristics Future Q&A

Page 42: Life on the Edge with ESI

Concurrent Requests

Page 43: Life on the Edge with ESI

First Byte Flush

Page 44: Life on the Edge with ESI

ESI Support in VarnishNo concurrent requests for includesFirst Byte Flush Support

Page 45: Life on the Edge with ESI

ESI Support in Apache Traffic ServerConcurrent requests for includesNo First Byte Flush Support (Coming soon)

Page 46: Life on the Edge with ESI

Agenda Introduction Use Cases Performance Characteristics Future Q&A

Page 47: Life on the Edge with ESI

FutureThe spec (ESI 1.0) is published over 10 years ago.- W3C spec- Editor - Mark Nottingham from Akamai

Mark Nottinghamhttp://www.mnot.net/

Page 48: Life on the Edge with ESI

Future – Manipulating Requests/Responses

ClientProxy Server Supporting

ESI

Origin Server returing ESI Document

Origin Server for ESI Include

Page 49: Life on the Edge with ESI

Future – Manipulating Requests/Responses

ClientProxy Server Supporting

ESI

Origin Server returing ESI Document

Origin Server for ESI Include

Final response header to user can be changed

Page 50: Life on the Edge with ESI

Future – Manipulating Requests/Responses

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 can be changed for includes

Page 51: Life on the Edge with ESI

Future – Manipulating Requests/Responses

ClientProxy Server Supporting

ESI

Origin Server returing ESI Document

Origin Server for ESI Include

Request/Response Header can be retrieved as variables

Final response header to user can be changed

Request Header, method, timeout can be changed for includes

Page 52: Life on the Edge with ESI

Future – Smart Assembly

One request for multiple includes (e.g. one Ad call fetching multiple ad position)

Page 53: Life on the Edge with ESI

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 54: Life on the Edge with ESI

Agenda Introduction Use Cases Performance Characteristics Future Q&A

Page 55: Life on the Edge with ESI

Q & A

谢谢[email protected]

Page 56: Life on the Edge with ESI

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


Recommended