Traffic Control Proposal

Abstract

Traffic Control allows you to build a large scale content delivery network using open source.

Proposal

The goal of this proposal is to bring the Traffic Control project into the Apache Software Foundation.

Background

Initially built around Apache Traffic Server as the caching software, Traffic Control implements all functions of a modern CDN except the caching software:

Traffic Control was developed by Comcast Cable and released as open source under the Apache 2.0 license in April of 2015. Traffic Control is deployed at Comcast and other cable operators.

The Traffic Control project was presented at ApacheCon NA 2016, see http://bit.ly/1UwMzmR for additional background information.

Rationale

Even though the traffic on today's CDNs is strictly defined by open standards, and there are many open source implementations of caches available, CDNs are still proprietary. The current providers of CDN-as-a-product or CDN-as-a-service all have their own proprietary implementation of the control plane. The CDN control plane of one vendor can't interoperate with the CDN control plane of another, creating a classic vendor-lockin for CDN-as-a-product customers. Traffic Control changes that. Emerging standards from IETF (CDNi working group) and the Streaming Video Alliance Open Caching working group need an open source reference implementation; Traffic Control will strive to be that.

Initial Goals

Initial goals of transitioning to ASF is to grow and diversify the community, and to move to a more open and inclusive development model.

Current Status

Traffic Control is functional and deployed at Comcast and other cable operators. In the past 12 months 10 major releases have been made.

Meritocracy

Initial development was done at Comcast Cable. Since April 2015 it has been open source, and a handful outside contributors have been added.

Our main goal during incubation is to try to create a more diverse group of contributors and users.

Community

Traffic Control is being used by a number of cable companies and is being evaluated by a number of vendors and ISPs. Two vendors have created products based on Traffic Control and are active in the community.

Core Developers

Most of the core developers of Traffic Control are currently at Comcast. The main goal of the incubation is to grow the developer and user group into a community beyond Comcast and US cable.

Alignment

Traffic Control is closely aligned with Apache Traffic Server (ATS). The only supported cache in a Traffic Control CDN at this time is ATS. One of our proposed mentors is a committers to ATS, and our proposed champion the ATS PMC chair.

We don't want to become a sub-project of ATS though, because we believe we should add other caching proxies as they are deemed to be a valuable addition to the Traffic Control CDN.

Known Risks

Orphaned products

Traffic Control is a new system that does not have wide adoption, but at least two major North American ISPs are committed to the continued development. Two vendors have used it to build products around and are active in the community.

Inexperience with Open Source

One of the members of the team is an active Apache member and committer to ATS. The rest of the team has been, in various ways, active in the ATS community in recent years.

Homogenous Developers

Possibly our weakest area, and one of the drivers for us to want to become part of Apache. Most people working on the project are at Comcast, or at least in the cable industry. Even though we are currently open sourced, as it stands, it is not possible to add committers external to Comcast. We want to change that. We would add 3 external committers as a part of entering the incubator.

Reliance on Salaried Developers

Currently, Traffic Control relies solely on salaried employees.

Relationships with Other Apache Products

See also Alignment. ATS is a big part of a Traffic Control CDN, but we also use Apache Tomcat, apache Maven, and a number of other apache libraries (see also external dependencies).

A Excessive Fascination with the Apache Brand

We are more attracted to Apache as a philosophy than Apache as a brand. We definitely see value in the brand, but we feel that adopting the "Apache Way" is the most crucial factor for our long term viability.

Documentation

Documentation is available at: http://traffic-control-cdn.net/docs/latest/index.html

Initial Source

The source code can be found here: https://github.com/Comcast/traffic_control

Source and Intellectual Property Submission Plan

The code is currently Apache 2.0 license, and was verified to have no intellectual property or license issues before being being released to open source by Comcast in 2015. Since then, extreme care has been taken to not add any dependencies or code that would change that.

External Dependencies

Note that all dependencies except two have been verified to have a Apache compatible license. The two that are not compatible are MySQL (GPL), and we are removing that dependency in version 2.0, and jdnssec (GPL), which we are planning to replace in the future. A third, Heka, is Mozilla Public License 2.0, we are unsure if it is compatible (http://www.apache.org/legal/resolved.html seems to say it is category B, so it is OK to have the binary dependency), but the dependency is optional, and Heka will probably be replaced in the near future.

Cryptography

There is no cryptographic code in Traffic Control. We leverage OpenSSL for all our cryptography needs.

Required Resources

Mailing lists

We currently use "google groups" to communicate, but we would like to move that to ASF maintained mailing lists.

Current groups / mailing lists:

Proposed ASF maintained lists:

Subversion Directory

We do not use SVN for source code revision control.

Git Repository

We would like to use git-wip (git://git.apache.org/traffic_control.git).

Issue Tracking

JIRA.

Other Resources

We have automated tests and continuous integration configurations we would like to move away from Comcast.

Initial Committers

Affiliations

Sponsors

Champion

Nominated Mentors

Sponsoring Entity

We request the Apache Incubator to sponsor this project.