incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Incubator Wiki] Update of "PageSpeedProposal" by oschaaf
Date Wed, 20 Sep 2017 10:23:25 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The "PageSpeedProposal" page has been changed by oschaaf:
https://wiki.apache.org/incubator/PageSpeedProposal

New page:
= Apache PageSpeed =

== Abstract ==
PageSpeed represents a series of open source technologies to help make the web faster by rewriting
web pages to reduce latency and bandwidth.

== Proposal ==
PageSpeed is an open source library that can be embedded in a web server or proxy server to
perform just-in-time optimization of its output. PageSpeed has two stable open source implementations:
mod_pagespeed (httpd), ngx_pagespeed (nginx). There is also ats_pagespeed (experimental),
and there are proprietary implementations (Microsoft IIS, OpenLiteSpeed, and others). 

This proposal assumes a single project for the pagespeed library and its three derived open
source implementations:

 * [[https://github.com/pagespeed/mod_pagespeed|mod_pagespeed]]
 * [[https://github.com/pagespeed/ngx_pagespeed|ngx_pagespeed]]
 * [[https://github.com/apache/trafficserver/tree/master/plugins/experimental/ats_pagespeed|ats_pagespeed]]

== Background ==
Studies indicate that there is a negative correlation between slow site speeds and important
business metrics, like conversion, retention, and others. Web performance optimization is
a fast moving target, and it is both hard and expensive for companies to keep up with the
current state of technology. Pagespeed optimization represents an opportunity for website
owners to deliver content update to date with the latest web performance best practices at
reduced costs, without changing development workflows.
 
== Rationale ==
We think that the ASF offers the ideal environment to foster and grow the project’s community.
Many organizations can benefit from automatic web optimization.

== Initial Goals ==
The initial goals of the pagespeed project are several-fold:

 * Foster and grow the community
 * Move the existing codebases to Apache and integrate with the Apache development process.
 * [[https://github.com/pagespeed/mod_pagespeed/issues/1601|Move the docs into a separate
repository]], so we can (more easily) decouple product releases from documentation updates.
(Ideally the process for making small doc changes is a low friction one).
 * Finish and land [[https://github.com/pagespeed/mod_pagespeed/issues/876|content-security-policy
support]]
 * Finish and land changes in PageSpeed’s resource fetching infrastructure (including a
change [[https://github.com/pagespeed/mod_pagespeed/issues/262|that teaches it about following
redirects]]).
 * [[https://github.com/pagespeed/ngx_pagespeed/issues/1181|Add Alpine Linux]] to the list
of supported distributions due to popular demand.
 * Turn the [[https://github.com/pagespeed/mod_pagespeed/wiki/Design-Doc:-Central-Controller|experimental
central controller process]] on by default. Having a central controller process is useful
when someone wants to implement:
   * Centrally fetching input resources
   * Running phantomjs centrally for implementing more advanced optimization opportunities
   * Optimizing the file cache cleaning system
   * More efficient handling of compute intensive optimizations (like image transcoding and
(re-)compression)
   * If we do all of the above, a lot of the project’s dependencies would end up running
in a separate process. That offers further advantages from a security perspective.

With the changes above, we propose releasing a 2.0 version of mod_pagespeed!

Next up would be allowing for intelligent decisions based on protocol (http/2, quic). (ngx_pagespeed
already is capable of doing this (and more) to some extent with its [[https://www.modpagespeed.com/doc/system#nginx_script_variables|script
variable support.]])
 
== Current Status ==
Google launched mod_pagespeed in 2010 to provide free open-source technology to automate deployment
of best practices for web front end delivery. Since that time, the module has gained broad
adoption, with hundreds of thousands of installs including 1.2% of the top 10k sites. The
PageSpeed Optimization Libraries have been used in products such as the Chrome Data Reduction
proxy, PageSpeed Insights, Accelerated Mobile Pages (AMP), and Google Web Light, as well as
a plethora of CDN/Hosting/Plugin channels to help any website deploy PageSpeed, including
Verizon/Edgecast’s CDN, we-amp’s IIS WebSpeed and ats_pagespeed, SiteGround, Section.IO,
OpenLitespeed, and cpanel.

== Meritocracy ==
We plan to invest in supporting a meritocracy. We will discuss the requirements in an open
forum. The project is used by a huge amount of companies, and we intend to invite additional
developers to participate. We will encourage and monitor community participation so that privileges
can be extended to those that contribute.

== Community ==
The need for a platform capable of automatically optimizing web content in the open source
community has turned out tremendous. We are hoping that embracing “the Apache way” will
accelerate the growth of our community. We have already been active at seeking and inviting
contributions.

== Core Developers ==
The initial committers for pagespeed include experienced engineers:

 * Otto van der Schaaf - (We-Amp / IISWebSpeed)
 * Kees Spoelstra - (We-Amp / IISWebSpeed)
 * Ashish Kulkarni - (We-Amp / IISWebSpeed)
 * Joshua Marantz - (Google)
 * Maksim Orlovich - (Google)

We realize that additional employer diversity is needed, and we will work to recruit developers
from additional companies.

== Alignment ==
The initial committers strongly believe that a system for optimizing web content will gain
broader adoption as an open source, community driven project.

== Known Risks ==

=== Orphaned Products ===
[[https://groups.google.com/forum/#!topic/mod-pagespeed-discuss/SYx1nOS6HsE|Google has recently
stepped down as the controlling entity of the project]]. Individual committers from Google
are still involved in the project along with continued involvement from We-Amp. We plan to
mitigate the risks of this transition by recruiting additional committers. We expect the ASF
to be a good environment for growing our community.

=== Inexperience with Open Source ===
The initial committers include Apache members (committers and PPMC members) and developers
who have varying degrees of experience with open source projects. All have been involved with
source code that has been released under an open source license, and several also have experience
developing code with an open source development process.

=== Homogenous Developers ===
The initial committers are employed by We-Amp B.V. and Google Inc. We are committed to recruiting
additional committers from other companies.

=== Reliance on Salaried Developers ===
It is expected that PageSpeed development will occur on both salaried time and on volunteer
time, after hours (or 20% time). We-Amp’s committers are paid by their company (IIS WebSpeed)
to contribute to this project. However, all involved are very passionate about the project,
and we are confident that the project will continue even if no salaried developers contribute
to the project. We are committed to recruiting additional committers including non-salaried
developers.

=== Relationships with Other Apache Products ===
To the knowledge of the Initial Committers, there are no direct competitors to pagespeed optimization
within the Apache Software Foundation. The module implements modules for both Apache httpd
and Apache Traffic Server. We look forward to collaborating with those communities, as well
as other Apache communities.

=== An Excessive Fascination with the Apache Brand ===
Our rationale for developing pagespeed optimization as an Apache project is detailed in the
Rationale Section. We believe that the Apache brand and community process will help us attract
more contributors to this project, and help grow the footprint of the project through usage
at other organizations and within other applications. Establishing consensus among users and
developers will result in a more valuable product for everyone.

== Documentation ==
References to further reading material:

 * [[https://www.modpagespeed.com/doc|Documentation]]
 * [[https://www.modpagespeed.com|Examples (mod_pagespeed)]]
 * [[https://www.ngxpagespeed.com/|Examples (ngx_pagespeed)]]
 * [[https://github.com/apache/trafficserver/tree/master/plugins/experimental/ats_pagespeed/|ats_pagespeed]]

== Initial Source ==
The origin of the proposed code base can be found at https://github.com/pagespeed/. The code
base is primarily in C/C++ (Google C++ Style).

== Source and Intellectual Property Submission Plan ==
Google will submit a Software Grant Agreement (SGA) as mod_pagespeed and ngx_pagespeed join
the incubator. We do not expect any complications for the submission of these code bases,
which are already on Github and Apache licensed. [[http://incubator.apache.org/ip-clearance/ats-ats_speed.html|ats_pagespeed
already has been submitted]].

== External Dependencies ==
List of external dependancies: [[https://github.com/pagespeed/mod_pagespeed/tree/master/third_party|third
party deps]].
We believe most of these dependencies meet all Apache policies, and will conduct a more thorough
review during incubation.

== Cryptography ==
The proposal does not include cryptographic code. The project depends on BoringSSL, but does
not include it.

== Required Resources ==
Currently continuous integration is performed at travis. There is also ci.onpagespeed.com
sponsored by IIS WebSpeed which performs more extensive tests on commits to mod_pagespeed
and ngx_pagespeed.

== Mailing List ==
Currently there are mailing lists hosted on Google Groups, that we can deprecate as the Apache.org
become ready to serve our community.

 * [[https://groups.google.com/forum/#!forum/ngx-pagespeed-discuss|ngx-pagespeed-discuss]]
 * [[https://groups.google.com/forum/#!forum/mod-pagespeed-discuss|mod-pagespeed-discuss]]
 * [[https://groups.google.com/forum/#!forum/ngx-pagespeed-announce|ngx-pagespeed-announce]]
 * [[https://groups.google.com/forum/#!forum/mod-pagespeed-announce|mod-pagespeed-announce]]
 * [[https://groups.google.com/forum/#!forum/pagespeed-dev|pagespeed-dev]]

== Subversion Directory ==
Git is the preferred source control system.

== Git Repository ==
Git is the preferred source control system (We are proposing https://github.com/apache/incubator-pagespeed
based on the naming scheme)

== Issue Tracking ==
JIRA pagespeed (pagespeed). If possible, we’d like to use Github issues & PRs to manage
our project as much as possible. It’s been said that there are ways to keep Github’s issues
in sync with Jira, allowing us to get best of both worlds. If that is not possible, we will
comply to using Jira.

== Other Resources ==
We currently use a set of Github integrated services that are free to the open source community,
like Travis-ci. We would like to keep using these services as they allow us to scale contributions
and optimize our development flows. These services require some elevated rights on the Github
repository in order to set up or tune and we would like for the committers to have the required
rights.

== Initial Committers ==
 * Joshua Marantz <jmarantz@google.com> (Google) - committer
 * Maksim Orlovich <morlovich@google.com> (Google) - committer
 * Otto van der Schaaf <oschaaf@apache.org> (We-Amp) - committer
 * Kees Spoelstra <kspoelstra@we-amp.com> (We-Amp) - committer
 * Ashish Kulkarni <akulkarni@we-amp.com> (We-Amp) - committer
 * Leif Hedstrom <zwoop@apache.org> - Champion & committer
 * Jukka Zitting <jukka@apache.org> - Mentor
 * Nick Kew <niq@apache.org> - Mentor

== Affiliations ==
The initial committers are employees of Google Inc., We-Amp B.V.

== Sponsors ==
 * Google, We-Amp / IIS WebSpeed

== Champion ==
 * Leif Hedstrom <zwoop@apache.org>

== Nominated Mentors ==
 * Jukka Zitting <jukka@apache.org>
 * Leif Hedstrom <zwoop@apache.org>
 * Nick Kew <niq@apache.org>

== Sponsoring Entity ==
Incubator PMC

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


Mime
View raw message