Wikimedia Technology/Annual Plans/FY2019/CDP2: Platform Evolution

From mediawiki.org

See also CDP2ː Platform Evolution

Program outline[edit]

Teams contributing to the program[edit]

Audiences Design, Documentation, MediaWiki Platform, Parsing, Performance, Readers Web, Services, WMDE

Annual Plan priorities[edit]

Knowledge as a Service/Foundational Strength: Evolve our systems and structures

Program Goal[edit]

Empower the Wikimedia Foundation to accomplish its goals of Knowledge Equity and Knowledge as a Service by evolving and investing in our technology stack to improve its flexibility, maintainability, and sustainability

Outcome 1[edit]

Engineers have a clear understanding of our technology stack and the plan to better scale, maintain and test it

Outcome 2[edit]

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs

Outcome 3[edit]

Engineers better understand our current architecture and coding standards and where to find them

CDP Budget Segment 1[edit]

Team: Audiences Design

Outcome 2[edit]

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs

Output 2.8

Improved OOUI Library

Outcome 3

Engineers better understand our current architecture and coding standards and where to find them

Output 3.4

Wikimedia Style Guide Version 2

CDP Budget Segment 2[edit]

Team: Documentation

Outcome 3[edit]

Engineers better understand our current architecture and coding standards and where to find them

Output 3.1

Wikimedia developer documentation portal

Output 3.2

Architecture pages on developer portal

Output 3.3

Coding standards pages on developer portal

CDP Budget Segment 3[edit]

Team: MediaWiki Platform

Outcome 1[edit]

Engineers have a clear understanding of our technology stack and the plan to better scale, maintain and test it

Output 1.2

MediaWiki REST API Design

Outcome 2[edit]

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs

Output 2.1

MediaWiki REST API Infrastructure

CDP Budget Segment 4[edit]

Team: Parsing

Outcome 1[edit]

Engineers have a clear understanding of our technology stack and the plan to better scale, maintain and test it

Output 1.3

Parser Unification Plan

Outcome 2[edit]

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs

Output 2.5

Initiation of Parser Unification

CDP Budget Segment 5[edit]

Team: Performance

Outcome 2[edit]

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs

Output 2.4

Personalized and non-personalized content can be assembled into a page outside of the MediaWiki application

CDP Budget Segment 6[edit]

Team: Readers Web

Outcome 2[edit]

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs

Output 2.7

Refactor presentation layer away from business logic code in MediaWiki

CDP Budget Segment 7[edit]

Team: Services

Outcome 2[edit]

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs

Output 2.2

Modularized RESTBase

Output 2.3

Session Management system

CDP Budget Segment 8[edit]

Team: WMDE (Daniel)

Outcome 1[edit]

Engineers have a clear understanding of our technology stack and the plan to better scale, maintain and test it

Output 1.1

Architecture Spec for the WMF technology stack

Outcome 2

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs

Output 2.6

TBD Refactoring Output (Scope pending architecture - potentially: Use Service Container throughout MediaWiki core)

Targets[edit]

Outcome 1[edit]

Engineers have a clear understanding of our technology stack and the plan to better scale, maintain and test it
Target

WMF Staff and volunteers can view and understand the current architecture, proposed architecture, implementation plan as well as the parser unification plan

Measurement method

Ensure the architecture and plan documents exists, are publicly accessible, and are announced on public communication channels

Outcome 1[edit]

Engineers have a clear understanding of our technology stack and the plan to better scale, maintain and test it
Target

Engineers can confidently port specific individual components of Parsoid and verify its correctness and performance without requiring a full port to be ready

Measurement method

Ensure that token transformers and DOM passes have unit tests and a unit testing framework with suitable mocks

Outcome 2[edit]

Engineers are able to access more functionality of the stack using well encapsulated components and well defined APIs
Target

Engineers can implement a REST API in MediaWiki using our routing infrastructure

Measurement method

Engineers develop or convert at least one service to REST in MediaWiki

Outcome 3[edit]

Engineers better understand our current architecture and coding standards and where to find them
Target

Engineers can view the WMF production architecture, the exposed APIs and the coding standards in a centralized documentation portal

Measurement method

Ensure this portal exists [cf. https://doc.wikimedia.org/], is accessible by engineers inside and outside the organization, and is announced on public communication channels

Resources[edit]

Staffing FY2017–18 FY2018–19
MediaWiki Platform
  • .33 ✕ Engineer
  • .33 ✕ Engineer
  • Engineer (new hire)
  • Engineer (new hire)
  • Engineer (new hire)
  • Product Manager (new hire)
  • Technical writer (new hire)
  • Technical writer (contract)
  • Designer (contract)
  • 0.5 ✕ Product Manager (reallocation (Cindy))
Services
  • Engineer
  • 0.5 ✕ Engineer
  • Engineer
  • Engineer (new hire)
  • 0.5 ✕ Engineer
Performance
  • 0.25 ✕ Engineer
  • 0.25 ✕ Engineer (no change)
Parsing
  • Engineer
  • Engineer
  • 0.5 ✕ Engineer
  • Engineer (no change)
  • Engineer (no change)
  • 0.5 ✕ Engineer (no change)
Reading Infrastructure
  • Engineer
  • Engineer
  • Engineer (no change)
  • Engineer (no change)
Readers Web
  • Engineer
  • 0.75 ✕ Engineer
  • Engineer (no change)
  • 0.75 ✕ Engineer (no change)
Technical Collaboration
  • 0.25 ✕ person
  • 0.25 ✕ person (no change)
CapEx
  • None
Travel and Other
  • None