Increase uptime and performance with Apache Traffic Server Tom Melendez, Yahoo!
About Tom Did Infrastructure development at Y! News for 3 years; have since moved on to do non-infra Hadoop stuff General philosophy: My job isn’t done until I’m not doing it anymore What I’ve learned: If Devs want to be happy, make Ops happy.  Making Ops happy will ultimately make the business happy. Primary motivation in life:  I only do the fun stuff.
Agenda What Who Where and When: The Internet.  Now. Why/How
What Very efficient caching proxy. Multi-threaded, event driven I’ve seen it handle 30k rps per box (quad-core) without issue I’ve seen lab data quoting 300k+ rps per box Delivers 400 terabytes of data per day at Y! Probably a configuration that can help your app.
Who (plus some history) Open-Sourced by Yahoo! in November 2009 Yahoo! received it with Inktomi acquistion Yahoo! currently has a team of engs on it We use it all over the place Apache TLP Core committers from Yahoo!, Google, Akamai and elsewhere
Where and When The internet. Now.
Why? You want to build a CDN You want a reverse proxy You want a forward proxy You want good response for your worldwide customers If you’re like me, you don’t want to do a lot of work.  
How? - Requirements Well, you need to be able to compile the source. (So, Linux, OSX or Solaris) There are also instructions for installing on EC2 as well as AMIs available
How - installation ./configure && make && make install Depending on your time to market, please consider working with the developer release, otherwise use stable Start it up sudo /usr/local/trafficserver start But you’ll probably want to configure it first.  
How - executables Processes: traffic_server – handles the transactions traffic_manager – manages the traffic server traffic_cop – health check for the above Tools: traffic_line – gets stats and (re)read config
How – the config files bypass.config - static bypass rules that Traffic Server uses in transparent proxy caching mode. cache.config - how Traffic Server caches web objects. congestion.config - enables you to configure Traffic Server to stop forwarding HTTP requests to origin servers when they become congested, filter.config - enables you to deny or allow particular requests and strip header information from client requests. hosting.config - assign cache partitions to specific origin servers icp.config - defines ICP peers (parent and sibling caches).  ip_allow.config - controls client access to the Traffic Server proxy cache.
How – the config files logs.config - formats traditional custom transaction log files.  log_hosts.config - log transactions for different origin servers in sep. files logs_xml.config - defines the custom log file formats, filters, and processing options. parent.config - identifies the parent proxies partition.config - enables you to manage your cache space by creating partitions records.config - list of configurable variables used by the Traffic Server software.
How – the config files remap.config - contains mapping rules that Traffic Server uses to perform various actions. splitdns.config - file enables you to specify the DNS server that Traffic Server should use for resolving hosts under specific conditions. ssl_multicert.config - configure Traffic Server to use multiple SSL server certificates with the SSL termination option. storage.config - lists all the files, directories, and/or hard disk partitions that make up the Traffic Server cache. update.config - how Traffic Server performs a scheduled update of specific local cache content.
How - configuration There are a lot of configuration files I know what you must be thinking….
This is too complicated.
But remember… I’m really lazy.
How - configuration Never fear.  You primarily deal with this one (routing rules): remap.config You’ll tune this one when you’re first setting it up (system vars): records.config If you’re using caching, you’ll set up this one: storage.config
How – config – Reverse Proxy ATS acts as the origin server IMO, this is the major use case ATS can front one more more websites
How – config – Reverse Proxy records.config: CONFIG proxy.config.proxy_name STRING <hostname> CONFIG proxy.config.http.server_port INT 80 CONFIG proxy.config.reverse_proxy.enabled INT 1 Depending on what you’re in front of: CONFIG proxy.config.http.keep_alive_no_activity_timeout_in INT 60 CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 1 CONFIG proxy.config.http.transaction_no_activity_timeout_in INT 15 CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 30 CONFIG proxy.config.cache.ram_cache.size LLONG 1332735284
How – config – Reverse Proxy storage.config /dev/raw_sdb 1078000000 NOTE: To use RAW disk you must use the '/usr/bin/raw' program to bind a raw device to a an existing block device.
How – config – Reverse Proxy remap.config map  http://www.example.com   http://realsite.example.com Now, reload traffic server: sudo /usr/local/bin/traffic_line -x
How - quick notes about cache You can purge objects from the cache with PURGE curl -X PURGE -v  http://example.com/remove_me.jpg There is a UI to inspect and modify the cache.  You can enable it with: CONFIG proxy.config.http_ui_enabled INT 1 (I came to learn very recently that the UI won’t be supported,  so if you really want it, make a case for it)
How – config – General Proxy Forward Proxy Your FEs make requests to APIs (yours and partners/external) You don’t need to keep a sep proxy technology around (i.e. Squid), ATS does this too.
How – config – General Proxy You can do all the cool cache stuff configuration for computation for object freshness Push content into the cache Pin contents in the cache for specific periods Ignore no-cache headers Translation of Squid directives to ATS:  https://cwiki.apache.org/confluence/display/TS/SquidConfigTranslation
But, but, but…. “ Well, I don’t expect lots of traffic” “ I already have VIPs/Load Balancers” “ Do I really need a proxy server?” “ Is this yet another thing I need Ops for?”
How – Usage Even if you can handle your traffic: change origin servers without changing DNS redirect different URL paths, or rewrite URLs altogether send traffic cross-colo during upgrades, for testing, etc. use minimal server installations across the world, just put ATS there and have DNS resolution point there.
Extending How - Plugins You can extend the functionality of ATS with plugins There are plugins available (forthcoming) by Yahoo! You can build your own plugins and there is lots of documentation available. You are STRONGLY encouraged to contribute back!
Extending How - Plugins
Example functionality of plugins Modify the response Do a db lookup based on a header append or remove query string params or headers before they are sent to the origin server Respect custom headers More advanced URL rewriting (more than regex)
Ok, nothing is that easy Obviously, create the remap.config and rules You  may  want to create your own plugins  (probably not) Code changes If you plan on using the cache, your cache control headers should be configurable (you should be doing this anyway) Process changes Ops should own YTS, dev might need to set it up QA needs to have YTS in their env; devs should have one too Ops changes If you don’t have monitoring, this would be a good time to add it.
Competitors There are plenty of Open Source competitors Not easy to make an apples-to-apples comparison I don’t have any benchmarks Look for the features you want and an active community.
Competitors: A stolen slide,  probably not up-to-date! ATS HAproxy nginx Squid Varnish mod_proxy Worker Threads Y N N N Y Y Multi-Process N Y Y N Y Y Event-driven Y Y Y Y N N? Plugin APIs Y N Y part Y Y Forward Proxy Y N N Y N Y Reverse Proxy Y Y Y Y Y Y Transp. Proxy Y Y N Y N N Load Balancer part Y Y Y Y Y Cache Y N Y Y Y Y ESI soon N N Y Y N ICP Y N N Y N N Keep-Alive Y N Y Y Y Y SSL Y N Y Y N Y
What is ESI? “ Edge Side Includes” Think SSI on the “Edge” Example in your markup  (taken from Wikipedia) <esi:include src=&quot;http://example.com/1.html&quot; alt=&quot;http://bak.example.com/2.html&quot; onerror=&quot;continue&quot;/>  (Something to think about – ESI will change your development processes, testing, etc.)
ESI Another Example <esi:try>  <esi:attempt> <esi:comment text=&quot;Include an ad&quot;/>  <esi:include src=&quot;http://www.example.com/ad1.html&quot;/>  </esi:attempt> <esi:except>  <esi:comment text=&quot;Just write some HTML instead&quot;/>  <a href=www.akamai.com>www.example.com</a> </esi:except>  </esi:try> Read the spec at: http://www.w3.org/TR/esi-lang
Questions? http://trafficserver.apache.org/docs/v2/admin/ http://ostatic.com/blog/guest-post-yahoos-cloud-team-open-sources-traffic-server https://cwiki.apache.org/confluence/display/TS/RoadMap http://www.oscon.com/oscon2010/public/schedule/detail/13878
Questions for the Audience (you!) I have some of my own: Developing in something other than PHP? Anyone moving away from PHP?  If so, why? Big challenges you’re facing right now? Frameworks/CMSes – not a lot of talk about them this year What technology changes are you investing in? Are you doing unit/functional/perf testing regularly?

More Related Content

PDF
A Hands-on Introduction on Terraform Best Concepts and Best Practices
PPTX
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
PDF
웹서버 부하테스트 실전 노하우
PDF
Nodejs presentation
PDF
지금 핫한 Real-time In-memory Stream Processing 이야기
PDF
Spring integration을 통해_살펴본_메시징_세계
PDF
Ansible, best practices
PDF
NodeJS for Beginner
A Hands-on Introduction on Terraform Best Concepts and Best Practices
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
웹서버 부하테스트 실전 노하우
Nodejs presentation
지금 핫한 Real-time In-memory Stream Processing 이야기
Spring integration을 통해_살펴본_메시징_세계
Ansible, best practices
NodeJS for Beginner

What's hot (20)

PDF
How to build massive service for advance
PDF
Introduction to Apache Tomcat 7 Presentation
ODP
ansible why ?
PDF
Load Balancing with Nginx
PPTX
Introduction to Apache Kafka
PPTX
New Elements & Features in HTML5
PDF
webservice scaling for newbie
PPTX
Performance Testing using Loadrunner
PDF
톰캣 운영 노하우
PDF
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
KEY
Introduction to memcached
PDF
Redis cluster
PDF
Cassandra Introduction & Features
PPTX
mongodb와 mysql의 CRUD 연산의 성능 비교
PDF
Best practices for Terraform with Vault
PPTX
JavaScript Promises
ODP
Introduction to Python Celery
PPTX
ECS+Locust로 부하 테스트 진행하기
PDF
Intro to Terraform
PPT
The complete ASP.NET (IIS) Tutorial with code example in power point slide show
How to build massive service for advance
Introduction to Apache Tomcat 7 Presentation
ansible why ?
Load Balancing with Nginx
Introduction to Apache Kafka
New Elements & Features in HTML5
webservice scaling for newbie
Performance Testing using Loadrunner
톰캣 운영 노하우
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Introduction to memcached
Redis cluster
Cassandra Introduction & Features
mongodb와 mysql의 CRUD 연산의 성능 비교
Best practices for Terraform with Vault
JavaScript Promises
Introduction to Python Celery
ECS+Locust로 부하 테스트 진행하기
Intro to Terraform
The complete ASP.NET (IIS) Tutorial with code example in power point slide show
Ad

Viewers also liked (20)

PPTX
ATS Internals
PDF
Apache Traffic Server Internals
PDF
Introduction to ATS plugins
PPTX
Choosing A Proxy Server - Apachecon 2014
PPTX
Gude for C++11 in Apache Traffic Server
PDF
Apache trafficserver
PPT
Traffic server overview
PPT
Oscon 2010 - ATS
PDF
Apache Traffic Server & Lua
PDF
ReplacingSquidWithATS
PPTX
Rit 2011 ats
PPT
Velocity 2010 - ATS
PPTX
Apache con 2011 gd
PDF
Traffic Server を使ってみた
PPT
IBM WebSphere Application Server traditional and Docker
PPTX
Web server hardware and software
PDF
SPDY : 더 빠른 웹을 위한 프로토콜
PPTX
Usenix lisa 2011
PPS
KEY
Machine Learning on Big Data
ATS Internals
Apache Traffic Server Internals
Introduction to ATS plugins
Choosing A Proxy Server - Apachecon 2014
Gude for C++11 in Apache Traffic Server
Apache trafficserver
Traffic server overview
Oscon 2010 - ATS
Apache Traffic Server & Lua
ReplacingSquidWithATS
Rit 2011 ats
Velocity 2010 - ATS
Apache con 2011 gd
Traffic Server を使ってみた
IBM WebSphere Application Server traditional and Docker
Web server hardware and software
SPDY : 더 빠른 웹을 위한 프로토콜
Usenix lisa 2011
Machine Learning on Big Data
Ad

Similar to Apache Traffic Server (20)

PPTX
Oscon 2011 - ATS
ODP
MNPHP Scalable Architecture 101 - Feb 3 2011
PDF
WordCamp RVA
PDF
WordCamp RVA 2011 - Performance & Tuning.pdf
PDF
WordCamp RVA 2011 - Performance & Tuning.pdf
PDF
WordCamp RVA
PDF
23 Ways To Speed Up WordPress
PDF
Replacing Squid with ATS
PDF
Scale Apache with Nginx
PDF
WordCamp RVA 2011 - Performance & Tuning
PPT
Presentation (PowerPoint File)
PPT
Presentation (PowerPoint File)
PDF
Using aphace-as-proxy-server
PPT
Ch 22: Web Hosting and Internet Servers
PDF
What is Nginx and Why You Should to Use it with Wordpress Hosting
PDF
Nginx pres
PDF
Using NGINX as an Effective and Highly Available Content Cache
PPTX
PDF
Scalable talk notes
PDF
Top ten-list
Oscon 2011 - ATS
MNPHP Scalable Architecture 101 - Feb 3 2011
WordCamp RVA
WordCamp RVA 2011 - Performance & Tuning.pdf
WordCamp RVA 2011 - Performance & Tuning.pdf
WordCamp RVA
23 Ways To Speed Up WordPress
Replacing Squid with ATS
Scale Apache with Nginx
WordCamp RVA 2011 - Performance & Tuning
Presentation (PowerPoint File)
Presentation (PowerPoint File)
Using aphace-as-proxy-server
Ch 22: Web Hosting and Internet Servers
What is Nginx and Why You Should to Use it with Wordpress Hosting
Nginx pres
Using NGINX as an Effective and Highly Available Content Cache
Scalable talk notes
Top ten-list

Recently uploaded (20)

PPTX
Build automations faster and more reliably with UiPath ScreenPlay
PDF
FASHION-DRIVEN TEXTILES AS A CRYSTAL OF A NEW STREAM FOR STAKEHOLDER CAPITALI...
PPT
Overviiew on Intellectual property right
PPTX
From XAI to XEE through Influence and Provenance.Controlling model fairness o...
PDF
Be ready for tomorrow’s needs with a longer-lasting, higher-performing PC
PDF
Streamline Vulnerability Management From Minimal Images to SBOMs
PDF
Optimizing bioinformatics applications: a novel approach with human protein d...
PPTX
How to use fields_get method in Odoo 18
PDF
EGCB_Solar_Project_Presentation_and Finalcial Analysis.pdf
PDF
substrate PowerPoint Presentation basic one
PPTX
Report in SIP_Distance_Learning_Technology_Impact.pptx
PDF
The Digital Engine Room: Unlocking APAC’s Economic and Digital Potential thro...
PDF
Introduction to c language from lecture slides
PPTX
Strategic Picks — Prioritising the Right Agentic Use Cases [2/6]
PDF
NewMind AI Journal Monthly Chronicles - August 2025
PPTX
maintenance powerrpoint for adaprive and preventive
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PPTX
AQUEEL MUSHTAQUE FAKIH COMPUTER CENTER .
PPTX
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
PDF
Chapter 1: computer maintenance and troubleshooting
Build automations faster and more reliably with UiPath ScreenPlay
FASHION-DRIVEN TEXTILES AS A CRYSTAL OF A NEW STREAM FOR STAKEHOLDER CAPITALI...
Overviiew on Intellectual property right
From XAI to XEE through Influence and Provenance.Controlling model fairness o...
Be ready for tomorrow’s needs with a longer-lasting, higher-performing PC
Streamline Vulnerability Management From Minimal Images to SBOMs
Optimizing bioinformatics applications: a novel approach with human protein d...
How to use fields_get method in Odoo 18
EGCB_Solar_Project_Presentation_and Finalcial Analysis.pdf
substrate PowerPoint Presentation basic one
Report in SIP_Distance_Learning_Technology_Impact.pptx
The Digital Engine Room: Unlocking APAC’s Economic and Digital Potential thro...
Introduction to c language from lecture slides
Strategic Picks — Prioritising the Right Agentic Use Cases [2/6]
NewMind AI Journal Monthly Chronicles - August 2025
maintenance powerrpoint for adaprive and preventive
EIS-Webinar-Regulated-Industries-2025-08.pdf
AQUEEL MUSHTAQUE FAKIH COMPUTER CENTER .
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
Chapter 1: computer maintenance and troubleshooting

Apache Traffic Server

  • 1. Increase uptime and performance with Apache Traffic Server Tom Melendez, Yahoo!
  • 2. About Tom Did Infrastructure development at Y! News for 3 years; have since moved on to do non-infra Hadoop stuff General philosophy: My job isn’t done until I’m not doing it anymore What I’ve learned: If Devs want to be happy, make Ops happy. Making Ops happy will ultimately make the business happy. Primary motivation in life: I only do the fun stuff.
  • 3. Agenda What Who Where and When: The Internet. Now. Why/How
  • 4. What Very efficient caching proxy. Multi-threaded, event driven I’ve seen it handle 30k rps per box (quad-core) without issue I’ve seen lab data quoting 300k+ rps per box Delivers 400 terabytes of data per day at Y! Probably a configuration that can help your app.
  • 5. Who (plus some history) Open-Sourced by Yahoo! in November 2009 Yahoo! received it with Inktomi acquistion Yahoo! currently has a team of engs on it We use it all over the place Apache TLP Core committers from Yahoo!, Google, Akamai and elsewhere
  • 6. Where and When The internet. Now.
  • 7. Why? You want to build a CDN You want a reverse proxy You want a forward proxy You want good response for your worldwide customers If you’re like me, you don’t want to do a lot of work. 
  • 8. How? - Requirements Well, you need to be able to compile the source. (So, Linux, OSX or Solaris) There are also instructions for installing on EC2 as well as AMIs available
  • 9. How - installation ./configure && make && make install Depending on your time to market, please consider working with the developer release, otherwise use stable Start it up sudo /usr/local/trafficserver start But you’ll probably want to configure it first. 
  • 10. How - executables Processes: traffic_server – handles the transactions traffic_manager – manages the traffic server traffic_cop – health check for the above Tools: traffic_line – gets stats and (re)read config
  • 11. How – the config files bypass.config - static bypass rules that Traffic Server uses in transparent proxy caching mode. cache.config - how Traffic Server caches web objects. congestion.config - enables you to configure Traffic Server to stop forwarding HTTP requests to origin servers when they become congested, filter.config - enables you to deny or allow particular requests and strip header information from client requests. hosting.config - assign cache partitions to specific origin servers icp.config - defines ICP peers (parent and sibling caches). ip_allow.config - controls client access to the Traffic Server proxy cache.
  • 12. How – the config files logs.config - formats traditional custom transaction log files. log_hosts.config - log transactions for different origin servers in sep. files logs_xml.config - defines the custom log file formats, filters, and processing options. parent.config - identifies the parent proxies partition.config - enables you to manage your cache space by creating partitions records.config - list of configurable variables used by the Traffic Server software.
  • 13. How – the config files remap.config - contains mapping rules that Traffic Server uses to perform various actions. splitdns.config - file enables you to specify the DNS server that Traffic Server should use for resolving hosts under specific conditions. ssl_multicert.config - configure Traffic Server to use multiple SSL server certificates with the SSL termination option. storage.config - lists all the files, directories, and/or hard disk partitions that make up the Traffic Server cache. update.config - how Traffic Server performs a scheduled update of specific local cache content.
  • 14. How - configuration There are a lot of configuration files I know what you must be thinking….
  • 15. This is too complicated.
  • 16. But remember… I’m really lazy.
  • 17. How - configuration Never fear. You primarily deal with this one (routing rules): remap.config You’ll tune this one when you’re first setting it up (system vars): records.config If you’re using caching, you’ll set up this one: storage.config
  • 18. How – config – Reverse Proxy ATS acts as the origin server IMO, this is the major use case ATS can front one more more websites
  • 19. How – config – Reverse Proxy records.config: CONFIG proxy.config.proxy_name STRING <hostname> CONFIG proxy.config.http.server_port INT 80 CONFIG proxy.config.reverse_proxy.enabled INT 1 Depending on what you’re in front of: CONFIG proxy.config.http.keep_alive_no_activity_timeout_in INT 60 CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 1 CONFIG proxy.config.http.transaction_no_activity_timeout_in INT 15 CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 30 CONFIG proxy.config.cache.ram_cache.size LLONG 1332735284
  • 20. How – config – Reverse Proxy storage.config /dev/raw_sdb 1078000000 NOTE: To use RAW disk you must use the '/usr/bin/raw' program to bind a raw device to a an existing block device.
  • 21. How – config – Reverse Proxy remap.config map http://www.example.com http://realsite.example.com Now, reload traffic server: sudo /usr/local/bin/traffic_line -x
  • 22. How - quick notes about cache You can purge objects from the cache with PURGE curl -X PURGE -v http://example.com/remove_me.jpg There is a UI to inspect and modify the cache. You can enable it with: CONFIG proxy.config.http_ui_enabled INT 1 (I came to learn very recently that the UI won’t be supported, so if you really want it, make a case for it)
  • 23. How – config – General Proxy Forward Proxy Your FEs make requests to APIs (yours and partners/external) You don’t need to keep a sep proxy technology around (i.e. Squid), ATS does this too.
  • 24. How – config – General Proxy You can do all the cool cache stuff configuration for computation for object freshness Push content into the cache Pin contents in the cache for specific periods Ignore no-cache headers Translation of Squid directives to ATS: https://cwiki.apache.org/confluence/display/TS/SquidConfigTranslation
  • 25. But, but, but…. “ Well, I don’t expect lots of traffic” “ I already have VIPs/Load Balancers” “ Do I really need a proxy server?” “ Is this yet another thing I need Ops for?”
  • 26. How – Usage Even if you can handle your traffic: change origin servers without changing DNS redirect different URL paths, or rewrite URLs altogether send traffic cross-colo during upgrades, for testing, etc. use minimal server installations across the world, just put ATS there and have DNS resolution point there.
  • 27. Extending How - Plugins You can extend the functionality of ATS with plugins There are plugins available (forthcoming) by Yahoo! You can build your own plugins and there is lots of documentation available. You are STRONGLY encouraged to contribute back!
  • 28. Extending How - Plugins
  • 29. Example functionality of plugins Modify the response Do a db lookup based on a header append or remove query string params or headers before they are sent to the origin server Respect custom headers More advanced URL rewriting (more than regex)
  • 30. Ok, nothing is that easy Obviously, create the remap.config and rules You may want to create your own plugins (probably not) Code changes If you plan on using the cache, your cache control headers should be configurable (you should be doing this anyway) Process changes Ops should own YTS, dev might need to set it up QA needs to have YTS in their env; devs should have one too Ops changes If you don’t have monitoring, this would be a good time to add it.
  • 31. Competitors There are plenty of Open Source competitors Not easy to make an apples-to-apples comparison I don’t have any benchmarks Look for the features you want and an active community.
  • 32. Competitors: A stolen slide, probably not up-to-date! ATS HAproxy nginx Squid Varnish mod_proxy Worker Threads Y N N N Y Y Multi-Process N Y Y N Y Y Event-driven Y Y Y Y N N? Plugin APIs Y N Y part Y Y Forward Proxy Y N N Y N Y Reverse Proxy Y Y Y Y Y Y Transp. Proxy Y Y N Y N N Load Balancer part Y Y Y Y Y Cache Y N Y Y Y Y ESI soon N N Y Y N ICP Y N N Y N N Keep-Alive Y N Y Y Y Y SSL Y N Y Y N Y
  • 33. What is ESI? “ Edge Side Includes” Think SSI on the “Edge” Example in your markup (taken from Wikipedia) <esi:include src=&quot;http://example.com/1.html&quot; alt=&quot;http://bak.example.com/2.html&quot; onerror=&quot;continue&quot;/> (Something to think about – ESI will change your development processes, testing, etc.)
  • 34. ESI Another Example <esi:try> <esi:attempt> <esi:comment text=&quot;Include an ad&quot;/> <esi:include src=&quot;http://www.example.com/ad1.html&quot;/> </esi:attempt> <esi:except> <esi:comment text=&quot;Just write some HTML instead&quot;/> <a href=www.akamai.com>www.example.com</a> </esi:except> </esi:try> Read the spec at: http://www.w3.org/TR/esi-lang
  • 35. Questions? http://trafficserver.apache.org/docs/v2/admin/ http://ostatic.com/blog/guest-post-yahoos-cloud-team-open-sources-traffic-server https://cwiki.apache.org/confluence/display/TS/RoadMap http://www.oscon.com/oscon2010/public/schedule/detail/13878
  • 36. Questions for the Audience (you!) I have some of my own: Developing in something other than PHP? Anyone moving away from PHP? If so, why? Big challenges you’re facing right now? Frameworks/CMSes – not a lot of talk about them this year What technology changes are you investing in? Are you doing unit/functional/perf testing regularly?

Editor's Notes

  • #3: In other words: It is finished when either you don’t need me or someone else is doing it. Also, turn work that is laborious non-lousy
  • #6: Not to say that those companies are using it (I don’t know if they are), but they employ committer to the project
  • #10: Try to use the latest and greatest in dev until your first release. As it will front your site and likely handle you all of your incoming traffic it is a critical part of your infrastructure and you want the latest features and bug fixes. Due to its criticality, It has been my experience that people are reluctant to upgrade once it is live as it “just works”.
  • #18: For storage, I say “if” you’re using caching. Understand that you really might not need to do this. In Y! US News we run it in proxy mode only and have had no traffic issues as of late. For the US Elections of 2008, we had a small “blip”, while other news and media organizations went down. Our “blip” was caused by keep-alives that were set too high unnecessarily. We adjusted this and were fine afterwards.
  • #19: A client browser sends an HTTP request addressed to a host called www.host.com on port 80. Traffic Server receives the request because it is acting as the origin server (the origin server’s advertised hostname resolves to Traffic Server). Traffic Server locates a map rule in the remap.config file and remaps the request to the specified origin server (realhost.com). Traffic Server opens an HTTP connection to the origin server. If the request is a cache hit and the content is fresh, then Traffic Server sends the requested object to the client from the cache. Otherwise, Traffic Server obtains the requested object from the origin server, sends the object to the client, and saves a copy in its cache.
  • #23: http://trafficserver.apache.org/docs/v2/admin/cache.htm
  • #25: http://trafficserver.apache.org/docs/v2/admin/http.htm
  • #33: This table is much to large to go into details, but it shows that there are a number of features to take into consideration when choosing an intermediary. This is not a complete list in any way, it is merely an example of what features you might want to consider for your proxy choices.
  • #34: http://en.wikipedia.org/wiki/Edge_Side_Includes http://www.w3.org/TR/esi-lang
  • #35: http://www.w3.org/TR/esi-lang
  • #36: http://trafficserver.apache.org/docs/v2/admin/ http://ostatic.com/blog/guest-post-yahoos-cloud-team-open-sources-traffic-server https://cwiki.apache.org/confluence/display/TS/RoadMap http://www.oscon.com/oscon2010/public/schedule/detail/13878