Wikimedia Platform Engineering/MediaWiki Core Team/Quarterly review, July 2014

This is an outline for a review of the MediaWiki Core team which will take place at WMF on July 16, 2014.
 * Notes for this review

Team
See Wikimedia MediaWiki Core Team page.

Changes since last review: (none)

Previous quarter
HHVM will be our flagship project. HHVM increases performance across the board on MediaWiki, and may eventually allow for the removal of the caching layer, thereby opening the doors for making the site more interactive and performant. In parallel with HHVM, the Search team will be focussing on getting CirrusSearch deployed on all Wikimedia wikis, and work will commence on the SUL finalisation.

The above work will continue alongside our team's ongoing responsibilities.

HHVM
Great strides were made on HHVM. Almost all required extensions have been ported, and the remainder (e.g. libxml) are very close to finished. Packaging for Debian/Ubuntu is done thanks to a big effort in Ops (led by Faidon Liambotis), which makes wider deployment much practical. Occasional production testing is happening on a single host ("osmium") which has HHVM installed on it.

CirrusSearch Deployment
Deployed CirrusSearch as the primary search backend on all but 11 wikis (as of July 1). Spent time implementing a powerful power user feature that was a long standing request as well as more performance work.

Search page redesign
This work was deprioritized this quarter.

SUL finalisation
Kunal Mehta (Legoktm) didn't have as much time as we'd hoped for to work on this, but he was able to make some progress. Much of the groundwork was laid for a more concerted effort in the following quarter.

Scap
Work continued on moving Scap fully to Python, which was largely completed. The need for HHVM bytecode distribution in scap was investigated, and determined to be unnecessary.

SecurePoll Redesign
This work is wrapping up now, and should be ready for deployment in the next election.

Architecture/RFC Review
RFC reviews are now a more routine part of the process. Though progress has been made on the backlog of RFCs, the number of incomplete RFCs is still rather large.

Previous Quarter People Allocations
Our people allocations for April through June of 2014:
 * Ori Livneh: Performance Infrastructure, HHVM
 * Tim Starling: HHVM, Architecture/RFC Review, other review
 * Bryan Davis: scap, LogStash, HHVM
 * Aaron Schulz: Performance, HHVM
 * Chad Horohoe: Search, HHVM
 * Nik Everett: Search
 * Brad Jorsch: SecurePoll cleanup, API Maintenance, Scribunto Maintenance
 * Chris Steipp: Security reviews, SUL finalisation
 * Dan Garry: Search, SecurePoll, SUL finalisation
 * Antoine Musso: CI for HHVM, scap pythonization
 * Sam Reed: Deployments
 * Greg Grossmeier: RelEng+QA, Deployment Tooling

Upcoming quarter
From the annual Wikimedia Engineering goals doc

HHVM
We believe that HHVM deployment can be substantially complete by the end of the quarter (where "substantially" means we have migrated just about all of our application servers and many of our other PHP-based services). We anticipate there will be a long tail of niche services that rely on obscure Zend-engine features that may take some time to finish off, but we don't anticipate a need to maintain the current level of effort and focus on this project once the migration is substantially complete.

Our plan is to implement a new stack of technology: The HHVM team at Facebook has been very helpful so far, and is dedicating engineers to help us finish this work. We expect to work very closely with them in the coming quarter.
 * Migrate from PHP 5.3 to HHVM
 * Upgrade from Apache 2.2 to Apache 2.4 (part of the Trusty upgrade)
 * Upgrade from Ubuntu Precise (12.04) to Ubuntu Trusty (14.04)

Quant target: By September 2014, we aim to halve median backend response time for uncached operations, including page preview and save.

Performance
We had planned to establish key performance indicators for end-to-end response time and server performance. However, HHVM will absorb the full attention of the people most qualified to do this. Postponing until Q2.

Single user login finalisation
We intend to finish the engineering work in the upcoming quarter, and announce a date for the finalisation (which may occur sometime after the end of the quarter).

Search
The team is now reasonably confident that, with a minimal investment in hardware (or even clever shuffling of hardware), the migration can be completed by the end of this quarter, though English Wikipedia could bleed over into October if we run into scaling issues there. They have published a schedule, halting progress if we discover enough high impact bugs to keep Nik and Chad busy with fixes prior to the next scheduled deployment.

Data & Developer Hub
Developers who interact with our sites need better guidance to use our APIs

Goals:
 * Developer Hub prototype
 * Landing page, 3 projects showcased, 3 APIs documented
 * API sandbox functional prototype
 * Clear process for future improvements

Upcoming Quarter People Allocations
Our people allocations for July through September of 2014:
 * Aaron Schulz: HHVM, general performance
 * Ori Livneh: HHVM, performance metrics
 * Tim Starling: HHVM, Architecture/RFC Review, other review
 * Chad Horohoe: Search
 * Nik Everett: Search
 * Bryan Davis: SUL finalisation (time permitting: Deployment Tooling, LogStash, HHVM)
 * Chris Steipp: SUL finalisation, Security reviews
 * Dan Garry: SUL finalisation, SecurePoll, Search
 * Brad Jorsch: Data & Developer Hub, API Maintenance, Scribunto Maintenance
 * Antoine Musso: see Wikimedia Release and QA Team
 * Greg Grossmeier: see Wikimedia Release and QA Team
 * Sam Reed: see Wikimedia Release and QA Team

Ongoing responsibilities

 * Deployments
 * Core deployments
 * External team deployments (e.g. Wikidata)
 * MediaWiki operations (performance, debugging, ops team support)
 * Code review
 * API maintenance and code review (Brad: 30%)
 * Security (CSteipp: 20%)
 * Security issue response
 * Test infrastructure (Beta cluster and continuous integration)
 * Git/Gerrit improvement
 * Shell bugs