SlideShare a Scribd company logo
1 of 56
Life on the Edge with ESI
Kit Chan (kichan@yahoo-inc.com)
Custom Branded Experiences
Yahoo!
World Cup Penalty Shootout
Royal Wedding
Cybergeddon
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
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! Edge
California, USA 0.2s 0.02s
Singapore 2s 0.02s
Korea 1.3s 0.02s
Ireland 1.2s 0.2s
Switzerland 1.0s 0.2s
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! Edge
California, USA 0.2s 0.02s
Singapore 2s 0.02s
Korea 1.3s 0.02s
Ireland 1.2s 0.2s
Switzerland 1.0s 0.2s
ESI can help!
ESI Support in Proxy Server – Proven & Popular
ESI Support in Proxy Software – New or Unproven
ESI Support in CDN Vendor
Agenda
 Introduction
 Use Cases
 Performance Characteristics
 Future
 Q&A
Use Case 1 - Content Assembly
Markup in Response
<esi:include src=http://xyz.com/content.html/>
Content Assembly – Error Handling
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>
Content Assembly
Content Assembly
Content Assembly
Content Assembly
Why? Performance!
No server cache +
No ESI
Server cache + No
ESI
YTS Cache + ESI
modules
Scenario
Origin 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
Why? Availability
Why it goes down?
- Releases
- Outage
How ESI Help?
- Template cached
- Fallback for each ESI module
Why? Legacy Module Support
Use Case 2 - Automatic Fallback
“Always On” - 100% availability for “existing” pages
Serve static pages when origin servers are down or
too slow
No change needed on origin servers
Automatic Fallback
26
Automatic Fallback
Automatic Fallback
Automatic Fallback
Automatic Fallback – Subsequent Request
Automatic Fallback – Subsequent Request
Automatic Fallback – Subsequent Request
Use Case 3 - Timely Launch
Before Launch
After Launch
Timely Launch – Before Launch
36Confidential
Timely Launch – Before Launch
Timely Launch – After Launch
Timely Launch – After Launch
Conclusion - Usage Pattern
Client
Proxy
Server/CDN
ESI Service
Origin Server
for ESI Include
Agenda
 Introduction
 Use Cases
 Performance Characteristics
 Future
 Q&A
Concurrent Requests
First Byte Flush
ESI Support in Varnish
No concurrent requests for includes
First Byte Flush Support
ESI Support in Apache Traffic Server
Concurrent requests for includes
No First Byte Flush Support (Coming soon)
Agenda
 Introduction
 Use Cases
 Performance Characteristics
 Future
 Q&A
Future
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 – Manipulating Requests/Responses
Client
Proxy Server
Supporting
ESI
Origin Server
returing ESI
Document
Origin Server
for ESI Include
Future – Manipulating Requests/Responses
Client
Proxy Server
Supporting
ESI
Origin Server
returing ESI
Document
Origin Server
for ESI Include
Final response
header to user can
be changed
Future – Manipulating Requests/Responses
Client
Proxy 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
Future – Manipulating Requests/Responses
Client
Proxy 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
Future – Smart Assembly
One request for multiple
includes (e.g. one Ad call
fetching multiple ad position)
Future – More Use cases
Device Detection
Bucket Testing
http://illusionmedia.com/wp-content/uploads/2012/03/mobileDevices1-300x200.jpg
https://doazrm3qeh7n2.cloudfront.net/images/features/quick-a-vs-b-testing.jpg
Agenda
 Introduction
 Use Cases
 Performance Characteristics
 Future
 Q&A
Q & A
谢谢
kichan@yahoo-inc.com
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

More Related Content

Similar to Life on the Edge with ESI

Life on the Edge with ESI
Life on the Edge with ESILife on the Edge with ESI
Life on the Edge with ESIKit Chan
 
Velocity china2012kit life on edge —— 如何使用 esi 完成任务
Velocity china2012kit life on edge —— 如何使用 esi 完成任务Velocity china2012kit life on edge —— 如何使用 esi 完成任务
Velocity china2012kit life on edge —— 如何使用 esi 完成任务Michael Zhang
 
AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for ScalabilityTuenti
 
Ajax For Scalability
Ajax For ScalabilityAjax For Scalability
Ajax For Scalabilityerikschultink
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetectureleo lapworth
 
Altitude SF 2017: The power of the network
Altitude SF 2017: The power of the networkAltitude SF 2017: The power of the network
Altitude SF 2017: The power of the networkFastly
 
5 Steps to Faster Web Sites and HTML5 Games
5 Steps to Faster Web Sites and HTML5 Games5 Steps to Faster Web Sites and HTML5 Games
5 Steps to Faster Web Sites and HTML5 GamesMichael Ewins
 
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Germany
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站George Ang
 
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterPractical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterDoris Chen
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat ClientPaul Klipp
 
5 steps to faster web sites & HTML5 games - updated for DDDscot
5 steps to faster web sites & HTML5 games - updated for DDDscot5 steps to faster web sites & HTML5 games - updated for DDDscot
5 steps to faster web sites & HTML5 games - updated for DDDscotMichael Ewins
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By DesignTim Morrow
 
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamaielenae00
 
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamaielenae00
 
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QAFest
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'Kyle Hailey
 
DevOps, Databases and The Phoenix Project UGF4042 from OOW14
DevOps, Databases and The Phoenix Project UGF4042 from OOW14DevOps, Databases and The Phoenix Project UGF4042 from OOW14
DevOps, Databases and The Phoenix Project UGF4042 from OOW14Kyle Hailey
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014Amazon Web Services
 

Similar to Life on the Edge with ESI (20)

Life on the Edge with ESI
Life on the Edge with ESILife on the Edge with ESI
Life on the Edge with ESI
 
Velocity china2012kit life on edge —— 如何使用 esi 完成任务
Velocity china2012kit life on edge —— 如何使用 esi 完成任务Velocity china2012kit life on edge —— 如何使用 esi 完成任务
Velocity china2012kit life on edge —— 如何使用 esi 完成任务
 
AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for Scalability
 
Ajax For Scalability
Ajax For ScalabilityAjax For Scalability
Ajax For Scalability
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetecture
 
Altitude SF 2017: The power of the network
Altitude SF 2017: The power of the networkAltitude SF 2017: The power of the network
Altitude SF 2017: The power of the network
 
5 Steps to Faster Web Sites and HTML5 Games
5 Steps to Faster Web Sites and HTML5 Games5 Steps to Faster Web Sites and HTML5 Games
5 Steps to Faster Web Sites and HTML5 Games
 
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterPractical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat Client
 
5 steps to faster web sites & HTML5 games - updated for DDDscot
5 steps to faster web sites & HTML5 games - updated for DDDscot5 steps to faster web sites & HTML5 games - updated for DDDscot
5 steps to faster web sites & HTML5 games - updated for DDDscot
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By Design
 
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
 
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
 
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
 
SQL Server On SANs
SQL Server On SANsSQL Server On SANs
SQL Server On SANs
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'
 
DevOps, Databases and The Phoenix Project UGF4042 from OOW14
DevOps, Databases and The Phoenix Project UGF4042 from OOW14DevOps, Databases and The Phoenix Project UGF4042 from OOW14
DevOps, Databases and The Phoenix Project UGF4042 from OOW14
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
 

More from Kit Chan

Experience with jemalloc
Experience with jemallocExperience with jemalloc
Experience with jemallocKit Chan
 
Benchmarking for HTTP/2
Benchmarking for HTTP/2Benchmarking for HTTP/2
Benchmarking for HTTP/2Kit Chan
 
Learning from Captain Kirk, Spock and Crew of the Enterprise
Learning from Captain Kirk, Spock and Crew of the EnterpriseLearning from Captain Kirk, Spock and Crew of the Enterprise
Learning from Captain Kirk, Spock and Crew of the EnterpriseKit Chan
 
Yahoo's Adventure with ATS
Yahoo's Adventure with ATSYahoo's Adventure with ATS
Yahoo's Adventure with ATSKit Chan
 
Failsafe Mechanism for Yahoo Homepage
Failsafe Mechanism for Yahoo HomepageFailsafe Mechanism for Yahoo Homepage
Failsafe Mechanism for Yahoo HomepageKit Chan
 
Replacing Squid with ATS
Replacing Squid with ATSReplacing Squid with ATS
Replacing Squid with ATSKit Chan
 
Apache Traffic Server & Lua
Apache Traffic Server & LuaApache Traffic Server & Lua
Apache Traffic Server & LuaKit Chan
 

More from Kit Chan (7)

Experience with jemalloc
Experience with jemallocExperience with jemalloc
Experience with jemalloc
 
Benchmarking for HTTP/2
Benchmarking for HTTP/2Benchmarking for HTTP/2
Benchmarking for HTTP/2
 
Learning from Captain Kirk, Spock and Crew of the Enterprise
Learning from Captain Kirk, Spock and Crew of the EnterpriseLearning from Captain Kirk, Spock and Crew of the Enterprise
Learning from Captain Kirk, Spock and Crew of the Enterprise
 
Yahoo's Adventure with ATS
Yahoo's Adventure with ATSYahoo's Adventure with ATS
Yahoo's Adventure with ATS
 
Failsafe Mechanism for Yahoo Homepage
Failsafe Mechanism for Yahoo HomepageFailsafe Mechanism for Yahoo Homepage
Failsafe Mechanism for Yahoo Homepage
 
Replacing Squid with ATS
Replacing Squid with ATSReplacing Squid with ATS
Replacing Squid with ATS
 
Apache Traffic Server & Lua
Apache Traffic Server & LuaApache Traffic Server & Lua
Apache Traffic Server & Lua
 

Recently uploaded

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 

Recently uploaded (20)

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

Life on the Edge with ESI

  • 1. Life on the Edge with ESI Kit Chan (kichan@yahoo-inc.com) Custom Branded Experiences Yahoo!
  • 2. World Cup Penalty Shootout
  • 5. Life on the Edge Source: http://img.shockblast.net/2012/01/ShockBlast-4-803109.jpg
  • 6. Agenda  Introduction  Use Cases  Performance Characteristics  Future  Q&A
  • 7. Agenda  Introduction  Use Cases  Performance Characteristics  Future  Q&A
  • 8. Edge Computing/CDN Source: http://www.excitingip.com/wp-content/uploads/2011/01/contentdeliverynetworkblockdiagram.jpeg
  • 9. 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! Edge California, USA 0.2s 0.02s Singapore 2s 0.02s Korea 1.3s 0.02s Ireland 1.2s 0.2s Switzerland 1.0s 0.2s
  • 10. 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! Edge California, USA 0.2s 0.02s Singapore 2s 0.02s Korea 1.3s 0.02s Ireland 1.2s 0.2s Switzerland 1.0s 0.2s
  • 12. ESI Support in Proxy Server – Proven & Popular
  • 13. ESI Support in Proxy Software – New or Unproven
  • 14. ESI Support in CDN Vendor
  • 15. Agenda  Introduction  Use Cases  Performance Characteristics  Future  Q&A
  • 16. Use Case 1 - Content Assembly Markup in Response <esi:include src=http://xyz.com/content.html/>
  • 17. Content Assembly – Error Handling 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>
  • 22. Why? Performance! No server cache + No ESI Server cache + No ESI YTS Cache + ESI modules Scenario Origin 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
  • 23. Why? Availability Why it goes down? - Releases - Outage How ESI Help? - Template cached - Fallback for each ESI module
  • 25. Use Case 2 - Automatic Fallback “Always On” - 100% availability for “existing” pages Serve static pages when origin servers are down or too slow No change needed on origin servers
  • 30. Automatic Fallback – Subsequent Request
  • 31. Automatic Fallback – Subsequent Request
  • 32. Automatic Fallback – Subsequent Request
  • 33. Use Case 3 - Timely Launch
  • 36. Timely Launch – Before Launch 36Confidential
  • 37. Timely Launch – Before Launch
  • 38. Timely Launch – After Launch
  • 39. Timely Launch – After Launch
  • 40. Conclusion - Usage Pattern Client Proxy Server/CDN ESI Service Origin Server for ESI Include
  • 41. Agenda  Introduction  Use Cases  Performance Characteristics  Future  Q&A
  • 44. ESI Support in Varnish No concurrent requests for includes First Byte Flush Support
  • 45. ESI Support in Apache Traffic Server Concurrent requests for includes No First Byte Flush Support (Coming soon)
  • 46. Agenda  Introduction  Use Cases  Performance Characteristics  Future  Q&A
  • 47. Future The spec (ESI 1.0) is published over 10 years ago. - W3C spec - Editor - Mark Nottingham from Akamai Mark Nottingham http://www.mnot.net/
  • 48. Future – Manipulating Requests/Responses Client Proxy Server Supporting ESI Origin Server returing ESI Document Origin Server for ESI Include
  • 49. Future – Manipulating Requests/Responses Client Proxy Server Supporting ESI Origin Server returing ESI Document Origin Server for ESI Include Final response header to user can be changed
  • 50. Future – Manipulating Requests/Responses Client Proxy 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
  • 51. Future – Manipulating Requests/Responses Client Proxy 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
  • 52. Future – Smart Assembly One request for multiple includes (e.g. one Ad call fetching multiple ad position)
  • 53. Future – More Use cases Device Detection Bucket Testing http://illusionmedia.com/wp-content/uploads/2012/03/mobileDevices1-300x200.jpg https://doazrm3qeh7n2.cloudfront.net/images/features/quick-a-vs-b-testing.jpg
  • 54. Agenda  Introduction  Use Cases  Performance Characteristics  Future  Q&A
  • 56. 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

Editor's Notes

  1. Abstract -Web sites and applications are starting to decouple and separate functionality and services from the frontend web server and more often push them to be handled by servers at the edge of the internet. This idea is commonly known as Edge Computing and it is a hot trend right now. Content caching and request routing are among some of the common tasks being pushed to the edge. As the trend continues, it is evident that we need to introduce various other processing capabilities at the edge in order to support more use cases. One of the more discussed ways of doing so is to support Edge Side Include (ESI). It is a simple markup language that provides content assembly at the edge level.In Yahoo!, we used ESI extensively in high trafficked media properties such as News, Lifestyle and Entertainments. This talk will share our experiences working with ESI. We will start with simple use case of content assembly and get the audience familiar with the embarrassingly simple and tiny templating language right away. You will get the hang of it within a minute. Then we will present a couple of our more innovative ESI use cases at large scale (e.g. Building a CSS/JS combo handler using ESI, Automatically cache static version of your page in edge cache and serving them instead of the dynamic version when your frontend server is not responding) and show the audience its great potentials. We will also share with you the current support of it among HTTP proxy software (such as Apache Traffic Server and Varnish) and vendors (e.g. Akamai). Finally we will discuss about its current limitations and shortcomings and hopefully revive people interests in this specification as well as working towards a version 2.0
  2. Need a diagram
  3. Module can be cached as well
  4. 1) Use Performance Implication