Catalyst

From Wikitech
Catalyst
advanced prototype
on-demand test environments
Status in design
Maintainers QTE, Stef Dunlap

Catalyst is an advanced prototype aimed at reducing friction in provisioning testing environments within the Wikimedia ecosystem. Born from the lessons learned and advancements made from the DUCT prototype for Abstract Wikipedia, Catalyst offers on-demand test environments specifically tailored for both automated and exploratory testing.

Key Features

  • Gitlab CI Integration: Catalyst can be used with GitLab CI to create realistic MediaWiki environments for end-to-end testing.
  • On-demand Deployment: Catalyst allows for instantaneous setup of test environments, to help exploratory and acceptance testing.
  • Kubernetes Backing: With plans to deploy on Toolforge, Catalyst leverages the power of Kubernetes, ensuring scalability, stability, and flexibility of test environments.

The Need for Catalyst

The evolving complexities introduced with projects like Abstract Wikipedia demand a fortified and adaptable testing environment. Catalyst steps in to fill this void, offering a platform that can easily cater to a myriad of testing scenarios by offering test environments that resemble production configurations with extensions and services.

Compared to other solutions

Beta Cluster

Beta Cluster is a shared general purpose "production like" MediaWiki environment which has aimed to be the staging environment for all/most projects. Maintaining this environment has proved to be difficult because: different teams have different needs for their staging environments, some teams makes changes that break other teams, there's no clear ownership on maintaining the shared environment

Patch Demo

Patch Demo is an on-demand test environment provisioner targeted towards acceptance and exploratory testing. It currently can only deploy/configure MediaWiki, so does not work with projects that have services. Catalyst sees itself as the next logical iteration of Patch Demo.

Get Involved

We're fervently seeking community involvement in various ways:

  1. User Interviews: Share your insights by walking through our design prototype.
  2. Early Adopters: Be at the forefront of testing innovation. Offer your feedback to refine Catalyst.
  3. Volunteer with Expertise: We're inviting volunteers adept in Vue.js, GitLab CI, or Kubernetes. Your expertise can play a pivotal role in shaping Catalyst.

If you're interested in getting involved, comment on Talk:Catalyst or email sdunlap at wikimedia.org.

You can file bug reports in Phabricator under #Catalyst.