+1 (non-binding) Best regards,
Pierre Smits ORRTIZ.COM <http://www.orrtiz.com> OFBiz based solutions & services OFBiz Extensions Marketplace http://oem.ofbizci.net/oci-2/ On Tue, Jul 5, 2016 at 3:08 PM, Josh Elser <els...@apache.org> wrote: > +1 (binding) > > Good luck! > > > Jan van Doorn wrote: > >> Following the discussion thread, I would like to call a VOTE on accepting >> Traffic Control into the Apache Incubator. >> >> [] +1 Accept Traffic Control into the Apache Incubator >> [] +0 Abstain. >> [] -1 Do not accept Traffic Control into the Apache Incubator because ... >> >> This vote will be open for at least 1 week (extra long to accommodate >> holiday schedules). >> >> The proposal follows, you can also access the wiki page: >> https://wiki.apache.org/incubator/TrafficControlProposal >> >> Thanks, >> JvD >> >> >> = 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 Router is a Java Tomcat application that routes clients to >> the closest >> available cache on the CDN using both HTTP and DNS. By using consistent >> hashing >> it sends requests for the same content to the same cache in a group of >> caches >> working together in a location. It takes care of routing clients around >> hot >> spots and problems in the CDN by using the information from Traffic >> Monitor with >> regards to state of all the caches. >> >> * Traffic Monitor is a Java Tomcat application that implements the CDN >> health >> protocol. Every cache in the CDN is checked using HTTP for vital stats, >> and >> based on these stats, caches are declared healthy or unhealthy. This >> information >> is then used by Traffic Router to make its routing decisions. >> >> * Traffic Ops is a Perl Mojolicious and jQuery UI application for >> management and >> monitoring of all servers in the CDN. All server and content routing >> information >> for the CDN is managed through Traffic Ops. It also exposes RESTful API >> endpoints for consumption by tools and other applications. >> >> * Traffic Stats is a Go application that is used to acquire and store >> statistics >> about CDNs controlled by Traffic Control. Traffic Stats mines metrics >> from >> Traffic Monitor’s JSON APIs and stores the data in InfluxDB, and >> visualizes them >> using Grafana. >> >> * Traffic Analytics is a new component we are starting to build for log >> file >> analysis, based on Apache Kafka, Heka, and Elastic Search. >> >> >> 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. >> >> * Golang >> * github.com/gorilla/handlers >> * github.com/dgrijalva/jwt-go/ >> * github.com/tebeka/selenium >> * github.com/lib/pq >> * Apache Kafka >> * Heka (https://github.com/mozilla-services/heka - MPL) >> * ElasticSearch >> * Java >> * org.apache.wicket >> * org.slf4j >> * log4j >> * org.eclipse.jetty.aggregate >> * org.apache.commons >> * commons-codec >> * com.ning.async-http-client >> * org.hamcrest >> * junit >> * org.powermock >> * org.springframework >> * javax.servlet >> * com.fasterxml.jackson.core >> * org.apache.tomcat >> * org.json >> * dnsjava >> * jdnssec # GPL, needs to be removed >> * com.google.guava >> * org.apache.wicket >> * com.googlecode.java-ipv6 >> * com.maxmind.geoip2 # maxmind commercial - optional >> * com.google.http-client >> * org.apache.httpcomponents >> * org.eclipse.jetty.aggregate >> * com.fasterxml.jackson.core >> * com.quova.bff # neustar commercial - optional >> * MySQL # Note: being replaced in version 2.0 with Postgres >> * Postgres >> * postgrest (https://github.com/begriffs/postgrest) >> * Riak >> * InfluxDB >> * Grafana >> * goose (https://bitbucket.org/liamstask/goose/) >> * Perl packages >> * CPAN package 'Algorithm::C3' >> * CPAN package 'B::Hooks::EndOfScope' >> * CPAN package 'CPAN::Meta' >> * CPAN package 'CPAN::Meta::Check' >> * CPAN package 'CPAN::Meta::Requirements' >> * CPAN package 'CPAN::Meta::YAML' >> * CPAN package 'Carp' >> * CPAN package 'Carp::Clan' >> * CPAN package 'Class::Accessor' >> * CPAN package 'Class::Accessor::Chained::Fast' >> * CPAN package 'Class::Accessor::Grouped' >> * CPAN package 'Class::C3' >> * CPAN package 'Class::C3::Componentised' >> * CPAN package 'Class::Inspector' >> * CPAN package 'Class::Load' >> * CPAN package 'Class::Load::XS' >> * CPAN package 'Class::Method::Modifiers' >> * CPAN package 'Class::Unload' >> * CPAN package 'Clone' >> * CPAN package 'Compress::Raw::Bzip2' >> * CPAN package 'Compress::Raw::Zlib' >> * CPAN package 'Compress::Zlib' >> * CPAN package 'Config::Any' >> * CPAN package 'Config::General' >> * CPAN package 'Config::Properties' >> * CPAN package 'Context::Preserve' >> * CPAN package 'Data::GUID' >> * CPAN package 'DBD::SQLite' >> * CPAN packagerequires 'Time::HiRes' # required by DBD::mysql >> * CPAN package 'DBD::mysql', '==4.029' >> * CPAN package 'DBI' >> * CPAN package 'DBIx::Class' >> * CPAN package 'DBIx::Class::Core' >> * CPAN package 'DBIx::Class::EasyFixture' >> * CPAN package 'DBIx::Class::IntrospectableM2M' >> * CPAN package 'DBIx::Class::Schema' >> * CPAN package 'DBIx::Class::Schema::Loader' >> * CPAN package 'DBIx::Class::IntrospectableM2M' >> * CPAN package 'Data::Compare' >> * CPAN package 'Data::Dumper' >> * CPAN package 'Data::Dumper::Concise' >> * CPAN package 'Data::OptList' >> * CPAN package 'Data::Page' >> * CPAN package 'Date::Manip' >> * CPAN package 'DateTime::Format::ISO8601' >> * CPAN package 'Devel::GlobalDestruction' >> * CPAN package 'Devel::StackTrace' >> * CPAN package 'Devel::Symdump' >> * CPAN package 'Digest::MD5' >> * CPAN package 'Digest::SHA' >> * CPAN package 'Digest::SHA1' >> * CPAN package 'Digest::base' >> * CPAN package 'DirHandle' >> * CPAN package 'Dist::CheckConflicts' >> * CPAN package 'DynaLoader' >> * CPAN package 'Email::Valid' >> * CPAN package 'Encode' >> * CPAN package 'Encode::Locale' >> * CPAN package 'Env' >> * CPAN package 'Eval::Closure' >> * CPAN package 'Exporter' >> * CPAN package 'ExtUtils::CBuilder' >> * CPAN package 'ExtUtils::Install' >> * CPAN package 'ExtUtils::MakeMaker' >> * CPAN package 'ExtUtils::Manifest' >> * CPAN package 'ExtUtils::ParseXS' >> * CPAN package 'File::Basename' >> * CPAN package 'File::Copy::Recursive' >> * CPAN package 'File::Find' >> * CPAN package 'File::Find::Rule' >> * CPAN package 'File::Listing' >> * CPAN package 'File::Path' >> * CPAN package 'File::Spec' >> * CPAN package 'File::Stat' >> * CPAN package 'File::Spec::Functions' >> * CPAN package 'File::Temp' >> * CPAN package 'Getopt::Long' >> * CPAN package 'Getopt::Std' >> * CPAN package 'HTML::Entities' >> * CPAN package 'HTML::Parser' >> * CPAN package 'HTML::Tagset' >> * CPAN package 'HTTP::Cookies' >> * CPAN package 'HTTP::Daemon' >> * CPAN package 'HTTP::Date' >> * CPAN package 'HTTP::Headers::Util' >> * CPAN package 'HTTP::Negotiate' >> * CPAN package 'Hash::Merge' >> * CPAN package 'IO::Compress::Bzip2' >> * CPAN package 'IO::Compress::Gzip' >> * CPAN package 'IO::Uncompress::Unzip' >> * CPAN package 'IO::File' >> * CPAN package 'IO::HTML' >> * CPAN package 'IO::Handle' >> * CPAN package 'IO::Socket::SSL' >> * CPAN package 'IO::Socket::Timeout' >> * CPAN package 'IO::String' >> * CPAN package 'IPC::Cmd' >> * CPAN package 'Import::Into' >> * CPAN package 'JSON' >> * CPAN package 'JSON::PP' >> * CPAN package 'JSON::XS' >> * CPAN package 'LWP' >> * CPAN package 'LWP::MediaTypes' >> * CPAN package 'Lingua::EN::FindNumber' >> * CPAN package 'Lingua::EN::Inflect' >> * CPAN package 'Lingua::EN::Inflect::Number' >> * CPAN package 'Lingua::EN::Inflect::Phrase' >> * CPAN package 'Lingua::EN::Number::IsOrdinal' >> * CPAN package 'Lingua::EN::Tagger' >> * CPAN package 'Lingua::EN::Words2Nums' >> * CPAN package 'Lingua::GL::Stemmer' >> * CPAN package 'Lingua::Stem' >> * CPAN package 'Lingua::Stem::Fr' >> * CPAN package 'Lingua::Stem::It' >> * CPAN package 'Lingua::Stem::Ru' >> * CPAN package 'Lingua::Stem::Snowball::Da' >> * CPAN package 'Lingua::Stem::Snowball::No' >> * CPAN package 'Lingua::Stem::Snowball::Se' >> * CPAN package 'List::Compare' >> * CPAN package 'List::MoreUtils' >> * CPAN package 'Locale::Maketext::Simple' >> * CPAN package 'Log::Log4perl' >> * CPAN package 'MIME::Base64' >> * CPAN package 'Math::Round' >> * CPAN package 'MRO::Compat' >> * CPAN package 'Memoize' >> * CPAN package 'Memoize::ExpireLRU' >> * CPAN package 'Mixin::Linewise::Readers' >> * CPAN package 'Modern::Perl','==1.20150127' >> * CPAN package 'Module::Build' >> * CPAN package 'Module::Build::ModuleInfo' >> * CPAN package 'Module::CoreList' >> * CPAN package 'Module::Find' >> * CPAN package 'Module::Implementation' >> * CPAN package 'Module::Load' >> * CPAN package 'Module::Load::Conditional' >> * CPAN package 'Module::Metadata' >> * CPAN package 'Module::Pluggable' >> * CPAN package 'Module::Runtime' >> * CPAN package 'Module::ScanDeps' >> * CPAN package 'Mojo::Base' >> * CPAN package 'Mojo::JSON' >> * CPAN package 'Mojo::Log' >> * CPAN package 'Mojo::Upload' >> * CPAN package 'Mojo::UserAgent' >> * CPAN package 'Mojolicious', '==5.24' >> * CPAN package 'Mojolicious::Lite' >> * CPAN package 'Mojolicious::Plugin::AccessLog', '==0.004' >> * CPAN package 'Mojolicious::Plugin::Authentication', '==1.26' >> * CPAN package 'Mojolicious::Plugin::FormFields', '==0.04' >> * CPAN package 'Mojolicious::Plugin::Mail', '==1.3' >> * CPAN package 'MojoX::Log::Log4perl', '==0.10' >> * CPAN package 'Moo' >> * CPAN package 'Moose' >> * CPAN package 'NetPacket::IPv6' >> * CPAN package 'Net::FTP' >> * CPAN package 'Net::HTTP' >> * CPAN package 'Net::LDAP' >> * CPAN package 'Net::Pcap' >> * CPAN package 'Net::PcapUtils' >> * CPAN package 'NetAddr::IP' >> * CPAN package 'NetPacket' >> * CPAN package 'Number::Compare' >> * CPAN package 'POSIX' >> * CPAN package 'Package::DeprecationManager' >> * CPAN package 'Package::Stash' >> * CPAN package 'Package::Stash::XS' >> * CPAN package 'Params::Check' >> * CPAN package 'Params::Util' >> * CPAN package 'Parse::CPAN::Meta' >> * CPAN package 'Path::Class' >> * CPAN package 'Perl::OSType' >> * CPAN package 'Perl::Tidy','==20150815' >> * CPAN package 'PerlIO::utf8_strict' >> * CPAN package 'PerlIO::via::Timeout' >> * CPAN package 'Pod::Coverage::CountParents' >> * CPAN package 'Pod::Coverage::TrustPod' >> * CPAN package 'Pod::Escapes' >> * CPAN package 'Pod::Eventual::Simple' >> * CPAN package 'Pod::Find' >> * CPAN package 'Pod::Man' >> * CPAN package 'Pod::Simple' >> * CPAN package 'Pod::Usage' >> * CPAN package 'Role::Tiny' >> * CPAN package 'SQL::Abstract' >> * CPAN package 'Scalar::Util' >> * CPAN package 'Scope::Guard' >> * CPAN package 'Socket' >> * CPAN package 'Storable' >> * CPAN package 'String::CamelCase' >> * CPAN package 'String::ToIdentifier::EN' >> * CPAN package 'Sub::Exporter' >> * CPAN package 'Sub::Exporter::Progressive' >> * CPAN package 'Sub::Identify' >> * CPAN package 'Sub::Install' >> * CPAN package 'Sub::Name' >> * CPAN package 'Sub::Uplevel' >> * CPAN package 'Sys::Syslog' >> * CPAN package 'TAP::Formatter::Jenkins' >> * CPAN package 'Task::Weaken' >> * CPAN package 'Term::ReadPassword' >> * CPAN package 'Test' >> * CPAN package 'Test::Builder::Tester' >> * CPAN package 'Test::CPAN::Meta' >> * CPAN package 'Test::Deep' >> * CPAN package 'Test::Exception' >> * CPAN package 'Test::Fatal' >> * CPAN package 'Test::Harness' >> * CPAN package 'Test::Inter' >> * CPAN package 'Test::Mojo' >> * CPAN package 'Test::MockModule' >> * CPAN package 'Test::MockObject' >> * CPAN package 'Test::More' >> * CPAN package 'Test::NoWarnings' >> * CPAN package 'Test::Pod' >> * CPAN package 'Test::SharedFork' >> * CPAN package 'Test::TCP' >> * CPAN package 'Test::Tester' >> * CPAN package 'Test::Warn' >> * CPAN package 'Test::Requires' >> * CPAN package 'Text::Abbrev' >> * CPAN package 'Text::Balanced' >> * CPAN package 'Text::German' >> * CPAN package 'Text::Glob' >> * CPAN package 'Text::ParseWords' >> * CPAN package 'Text::Unidecode' >> * CPAN package 'Text::Wrap' >> * CPAN package 'Time::HiRes' >> * CPAN package 'Time::Local' >> * CPAN package 'Time::Out' >> * CPAN package 'Time::Seconds' >> * CPAN package 'Try::Tiny' >> * CPAN package 'URI' >> * CPAN package 'WWW::Curl::Easy' >> * CPAN package 'WWW::RobotRules' >> * CPAN package 'XSLoader' >> * CPAN package 'ExtUtils::Config' # for Net::Riak >> * CPAN package 'Module::Build::Tiny' # for Net::Riak >> * CPAN package 'Net::Riak' >> * CPAN package 'Crypt::OpenSSL::RSA' >> * CPAN package 'Crypt::OpenSSL::Bignum' >> * CPAN package 'Crypt::OpenSSL::Random' >> * CPAN package 'Net::DNS::SEC::Private' >> * CPAN package 'LWP::Protocol::https' >> * CPAN package 'Net::CIDR' >> * CPAN package 'Data::Validate::IP' >> >> == 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: >> * https://groups.google.com/forum/#!forum/traffic_control >> * https://groups.google.com/forum/#!forum/traffic_control-announce >> * https://groups.google.com/forum/#!forum/traffic_control-discuss >> >> Proposed ASF maintained lists: >> * priv...@traffic-control.incubator.apache.org (moderated >> subscriptions) >> * d...@traffic-control.incubator.apache.org >> * comm...@traffic-control.incubator.apache.org >> * notificati...@traffic-control.incubator.apache.org >> * us...@traffic-control.incubator.apache.org >> >> === 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 == >> >> * Dan Kirkwood (dangogh at gmail.com) >> * David Neuman (david.neuman64 at gmail.com) >> * Dewayne Richardson (dewrich at gmail.com) >> * Eric Friedrich (eric.friedrich84 at gmail.com) >> * Hank Beatty (Hank.Beatty at cox.com) >> * Jackie Heitzer (jackieheitzer at gmail.com) >> * Jan van Doorn (jvd at knutsel.com) >> * Jeff Elsloo (jeff.elsloo at gmail.com) >> * Jeremy Mitchell (mitchell852 at gmail.com) >> * Mark Torluemke (mark at torluemke.net) >> * Steve Malenfant (steve.malenfant at cox.com) >> >> == Affiliations == >> >> * Comcast Cable: Dan Kirkwood, David Neuman, Dewayne Richardson, Jackie >> Heitzer, >> Jan van Doorn, Jeff Elsloo, Jeremy Mitchell, Mark Torluemke >> >> * Cox Communications: Hank Beatty, Steve Malenfant >> >> * Cisco: Eric Friedrich >> >> == Sponsors == >> >> === Champion === >> >> * Leif Hedstrom (zwoop at apache.org) >> >> === Nominated Mentors === >> >> * Phil Sorber (sorber at apache.org) >> * Eric Covener (covener at apache.org) >> * Daniel Gruno (humbedooh at apache.org) >> * J. Aaron Farr (farra at apache.org) >> >> === Sponsoring Entity === >> >> We request the Apache Incubator to sponsor this project. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org >> For additional commands, e-mail: general-h...@incubator.apache.org >> >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org > For additional commands, e-mail: general-h...@incubator.apache.org > >