Traffic Server


Note: Traffic Server was been promoted to a top level project on April 21, 2010. As a result, the homepage, SVN directory, and wiki links have changed.

Abstract

Traffic Server is fast, scalable and extensible HTTP/1.1 compliant caching proxy server.

Proposal

The goal is to create an Apache top level project to Open Source the existing Yahoo! Traffic Server code. Traffic Server (TS for short) is used in-house to deliver significant amount of HTTP traffic to millions of users.

Key Features:

  • HTTP/1.1 caching proxy server
  • Scalable on SMP (TS is a hybrid thread + event processor)
  • Extensible: TS has a feature rich plugin API
  • Fast

Background

Traffic Server is a piece of software initially acquired by Yahoo! from Inktomi. The software has been actively developed and used at Yahoo for the last three years, and we're now getting ready to Open Source this project.

Rationale

Traffic Server fills a need for a fast, extensible and scalable HTTP proxy and caching. We have a production proven piece of software that can deliver HTTP traffic at high rates, and can scale well on modern SMP hardware. We have benchmarked Traffic Server to handle in excess of 35,000 RPS on a single box. Traffic Server has a rich feature set, implementing most of HTTP/1.1 to the RFC specifications.

Initial goals

The initial goal is to build a community of developers and users of the Traffic Server software. Longer term goal is to address a few feature additions that we think are beneficial:

  • Full 64-bit support
  • Porting to more Unix flavors (currently we only support Linux)
  • Add missing features, e.g., CARP, HTCP, ESI and native IPv6
  • Incremental improvements to existing features, and performance

Current Status

Meritocracy

Building our developer community using the meritocracy is important to the success of Traffic Server. We know there are many developers out there interested in the technology, and the meritocracy system is a great way to encourage participation.

Community

Our hope is that our existing code, features and capabilities will attract a large community of both developers and users. We know that several developers who have previously worked on the code, are looking forward to participating in the Open Source efforts. We also believe that other organizations will find this project interesting and relevant, and contribute resources.

The user community of Traffic Server would be similar to that of the Apache HTTP server, and in many cases they would overlap.

Core Developers

  • Leif Hedstrom <zwoop at apache.org>
  • Bryan Call <bcall at yahoo-inc.com>
  • Vijaya Bhaskar Mamidi <vmamidi at yahoo-inc.com>
  • Steve Jiang <sjiang at yahoo-inc.com>
  • Dima Ruban <dima at yahoo-inc.com>
  • Anirban Kundu <akundu at yahoo-inc.com>
  • Andrew Hsu <andrewhsu at apache.com>
  • Eric Balsa <eric at ericbalsa.com>
  • BalaKrishna JD <balakrishnajd at yahoo.com>

Alignment

Yahoo! is already a contributor to the Apache Foundation. We are already familiar with the ASF process, and we know it provides everything we need and require to be successful. We also feel there is a natural symbiotic relationship between Traffic Server and the Apache HTTP server, which is how TS is generally used at Yahoo!. The Traffic Server team is also in the same organization as the Yahoo! Hadoop developers, which is already an Apache TLP.

Known Risks

Orphaned Products

Traffic Server is widely used and deployed inside of Yahoo!. It's not going away anytime soon; in fact, it's growing fast.

Inexperience with Open Source

All Yahoo! participants are active users and contributors to Open Source projects. Leif is a committer at Mozilla (although no longer active), creator of PerLDAP, as well as creator of a Yahoo! search API (pYsearch). Bryan Call is the creator of cksfv, and contributor to lmsensor. Dima Ruban has been an active developer in the FreeBSD project.

Homogeneous Developers

The current list of committers are mostly members of the Yahoo! developer team, but we are actively recruiting other developers. The hope is that we can quickly attract more members, either people just interested in the technology, or people familiar with the code base from previous employment.

Reliance on Salaried Developers

Most initial committers are salaried employees of Yahoo!, but we are actively recruiting non-yahoo team members.

Relationships with Other Apache Products

Traffic Server integrates well with the Apache HTTP daemon, as a proxy server and a cache for HTTP and HTTPS.

An excessive fascination with the Apache brand

Our decision to apply to the ASF is simple. Y! has already contributed several projects to the ASF, and the Apache collaboration model and license further Yahoo!'s goals.

Trade Mark

Traffic Server is currently a trademark owned by Yahoo! in four jurisdictions: Australia, Japan, Norway and the United States. The registrations in Japan and the U.S. are set to expire this year (2009). The registration in Australia is set to expire at the end of May 2010. That leaves the registration in Norway which is set to expire in March 2019.

Two proposals are on the table: The first solution is to simply assign all rights, title and interest in and to the TRAFFIC SERVER mark including the four active registrations to ASF (though we'd probably want to make this contingent on TS graduating from the incubator). Our second possible option is to provide ASF with a letter of assurance stating that we own all right, title and interest in and to the TRAFFIC SERVER mark and the four active registrations and that we will not take any action against ASF or any of its licensees during the life of these registrations (and we'd express our intention of letting them lapse and expire).

Documentation

TS comes with both an Administration Guide and a Developer Guide. Work will begin soon to improve this documentation, and the hope is to move it to our podling web site once activated.

Initial Source

All code is currently in-house at Yahoo!, and we're working on getting it cleaned up and cleared to be uploaded to the Apache SVN servers.

Source and Intellectual Property Submission Plan

All TS code is fully owned by Yahoo! Inc, and we're finalizing all the legal paperwork around releasing it as Open Source, under the Apache license. We've hired an external company to do full code review of all source files, to assure it's not tainted. The sanitized code of Yahoo! Traffic Server would become the Apache Traffic Server.

External Dependencies

Traffic Server has no external dependencies, other than standard libraries like BDB, OpenSSL, TCL, STL, glibc and expat.

Cryptography

Traffic Server uses OpenSSL to implement HTTPS support. There is no other cryptographic code in the source tree.

Required Resources

Mailing lists

  • trafficserver-private (with moderated subscriptions)
  • trafficserver-dev
  • trafficserver-commits
  • trafficserver-user

Subversion Directory

https://svn.apache.org/repos/asf/incubator/trafficserver

Issue Tracking

Bugzilla: Traffic Server

Initial Committers

We have two categories of committers: TS code developers and contributors working primarily on documentation and community development. Everyone below would need initial committers privileges.

Yahoo developers:

  • Leif Hedstrom <zwoop at apache.org>
  • Bryan Call <bcall at yahoo-inc.com>
  • Vijaya Bhaskar Mamidi <vmamidi at yahoo-inc.com>
  • Steve Jiang <sjiang at yahoo-inc.com>
  • Dima Ruban <dima at yahoo-inc.com>
  • Anirban Kundu <akundu at yahoo-inc.com>
  • Andrew Hsu <andrewhs at yahoo-inc.com>

Non-Yahoo developers:

  • Eric Balsa <eric at ericbalsa.com>
  • BalaKrishna JD <balakrishnajd at yahoo.com>
  • william Urrea <williamaurrea at yahoo.com>

Product management, documentation and community support:

  • Miles Libbey <mlibbeymail-apache at yahoo.com>
  • Ray Rivera <rayriver @ yahoo-inc.com>

Affiliations

Many of the initial developers are employed by Yahoo!. Yahoo! is also an active user of the Traffic Server software.

Sponsors

Champion

  • Doug Cutting <dcutting at yahoo-inc.com>

Nominated Mentors

  • Doug Cutting
  • Jim Jagielski
  • Jean-Frederic Clere
  • Mladen Turk
  • Nick Kew

Sponsoring Entity

  • The Apache Incubator
  • No labels