Core Platform Team/Initiatives/MediaWiki on Kubernetes

From mediawiki.org
Jump to navigation Jump to search

Initiative Vision

< Initiatives

Vision:
  • Support improvement of our Continuous Integration system through modernising ability to deploy, manage and scale MediaWiki instances
  • Stakeholder(s):
    • Release Engineering
    • Product Teams
    • Sre Service Ops
Problem:
  • Need to standardise deployment and management of MW instances
Solution:
  • MediaWiki* is automatically packaged into (one or more) OCI container images**, which are semi-automatically deployed*** into Wikimedia production as kubernetes pods
Aligned Goals: Estimated Effort:
  • 1 SRE
  • 2-3 FTE
  • Program Manager to coordinate across teams and orgs
  • Engineering Manager
Risk assessment:
  • Dependent on outcomes of discussion with Fandom/Wikia and their experience migrating
  • Needs to be tightly scoped to MW on K8S, documenting but not actioning related work such as configuration management changes
  • Needs to enforce consultation across teams and balance iterative progress

Epics, User Stories, and Requirements

< Initiatives

Epic 1: Shellbox

The goal of this epic is to have a PHP microservice, accessible via HTTP, which takes POSTed inputs, writes them to the container's filesystem as temporary files, runs a shell command, and responds with gathered output files.

Personas in this epic:

  • Developer: developer of the Shellbox
  • SRE: developer of the Shellbox
  • Stakeholder: anyone interested in seeing the MediaWiki on Kubernetes (MW on K8) be a success.
User Stories
ID User Story Priority Notes
1 As a Developer, For security, we need better isolation of external binaries from MediaWiki. Must Have
2 As a Developer, we want to run MediaWiki itself under Kubernetes, the resulting container should be as small as possible, so it should ideally exclude unnecessary binaries. Must Have
3 As an SRE, I want to deploy external binaries separately, so that their version isn't tightly coupled with the MediaWiki host operating system. Must Have


Subpages