Page MenuHomePhabricator

Move the WebPageTest server in-house
Closed, DeclinedPublic

Description

I installed the WebPageTest server when we first started using our own version of WPT almost 5 years ago and I've done many many hacks on that machine over the years. @dpifke suggested we should move it in-house and that's a good idea. We can do that as a quarterly goal and set it up.

One thing that we need to take care of are the log files (the history of the tests are in logs) that today is on a shared disk.

Event Timeline

As discussed in today's meeting, another advantage of moving the frontend to our infrastructure is that we could put LDAP login in front of it and enable the GUI for people to run tests manually. Feel free to file a sub-task for that part.

Directions of how to deploy this in AWS is here: https://wikitech.wikimedia.org/wiki/Performance/WebPageTest#Setup_the_server

I'm assuming the AMI we're using was built using: https://github.com/WPO-Foundation/wptserver-install

I'm going to use the above as the basis for Puppetizing it.

The wpt-wikimedia S3 bucket is currently ~73GB and ~30k objects. Presumably we will want to move that data to Swift as a sub-task of this.

Yep I think we can try the wptserver-install, the image on AWS was created a couple of years before the official instructions so I've never looked into the dependencies for the server :)

The important thing is the log file(s) that keep track of all the tests. The log file is used for the search so that needs to be backed up if something happens.

For the data on S3 can't we keep it there and use the built in support for S3 in WebPageTest? Or what will we win by having it on Swift? Also I think we can rethink how long time we store the data, I think the bucket is one year but we never (ever) go back so long. Or at least I don't. Maybe just keep a month or so.

I think we should sync this, I see some moving parts (like WebPageTest auto update of code, update browsers etc) that we need to discuss, I'm not sure how it would work. I'll invite you for a start meeting on Tuesday @dpifke and then we can start by me going through the current setup and how it works. WebPageTest misses a lot of documentation and when I wrote our part it was mostly focused on making sure I would remember how set it up a second time.

Change 633202 had a related patch set uploaded (by Dave Pifke; owner: Dave Pifke):
[operations/puppet@production] [WIP] Start puppetizing WebPageTest

https://gerrit.wikimedia.org/r/633202

Change 634260 had a related patch set uploaded (by Dave Pifke; owner: Dave Pifke):
[performance/software@refs/meta/config] Add permissions for mirroring external repos

https://gerrit.wikimedia.org/r/634260

Change 635859 had a related patch set uploaded (by Dave Pifke; owner: Dave Pifke):
[labs/private@master] webperf: add fake keys for WebPageTest

https://gerrit.wikimedia.org/r/635859

I removed the role from the beta host for the moment, since it was in only a partially working state (and generating Puppet warnings), and I'm going to be out of office next week. I'm leaving the patch cherry-picked since it's fairly isolated and shouldn't generate any merge conflicts.

Change 634260 merged by Thcipriani:
[performance/software@refs/meta/config] Add permissions for mirroring external repos

https://gerrit.wikimedia.org/r/634260

Change 635859 merged by Andrew Bogott:
[labs/private@master] webperf: add fake keys for WebPageTest

https://gerrit.wikimedia.org/r/635859

Since the change of the license of WebPageTest to a non open source license, this is nothing we want to do.

Change 633202 abandoned by Filippo Giunchedi:

[operations/puppet@production] [WIP] Start puppetizing WebPageTest

Reason:

Abandoning as per Peter

https://gerrit.wikimedia.org/r/633202