You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org

Get involved: Difference between revisions

From Wikitech-static
Jump to navigation Jump to search
imported>Aklapper
(replacing git.wm org with diffusion links)
imported>Krinkle
(as per Terminology and ops-l March 2022 thread.)
(6 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[File:Wikimedia Foundation Servers-8055 05.jpg|thumb|400px|Wikimedia Servers in Ashburn, VA.]]
[[File:Wikimedia Foundation Servers-8055 05.jpg|thumb|400px|Wikimedia Servers in Ashburn, VA.]]


If you are looking to get involved in improving the underlying infrastructure of Wikimedia projects, the Operations team may be just what you are looking for. Anyone can contribute to the effort to make Wikimedia's servers and software faster and more efficient. Many tasks are available for you to start contributing to right away.
If you are looking to get involved in improving the underlying infrastructure of Wikimedia projects, the Site Reliability Engineering (SRE) team may be just what you are looking for. Anyone can contribute to the effort to make Wikimedia's servers and software faster and more efficient. Many tasks are available for you to start contributing to right away. The SRE team used to be called the Operations team.


Here you have basic pointers for new Operations contributors. Join us at {{irc|wikimedia-operations}}!
Here you have basic pointers for new SRE contributors. Join us at {{irc|wikimedia-operations}}!


== The Operations Team ==
== The SRE Team ==
The operations team, or ops team for short, is the [[foundation: Staff and contractors#Technical Operations|group of people]] that maintain Wikimedia's servers and run its 800+ individual wikis. Also known as the [[meta: System administrators|system administrators]], they are in charge of making sure the MediaWiki software runs smoothly on all the wikis, regulating system resource use, maintaining Wikimedia's hardware and software, and creating and closing wikis (although these tasks can also be handled by other users with shell access).
The SRE team is the [[mw:Wikimedia Site Reliability Engineering|group of people]] that maintain Wikimedia's servers and run its 800+ individual wikis. Also known as the [[meta: System administrators|system administrators]], they are in charge of making sure the MediaWiki software runs smoothly on all the wikis, regulating system resource use, maintaining Wikimedia's hardware and software, and creating and closing wikis (although these tasks can also be handled by other users with shell access).


== Server Infrastructure ==
== Server Infrastructure ==
[[meta:Wikimedia servers#Hosting|Wikimedia's servers]] are hosted in four locations around the globe: Ashburn, VA, Dallas, TX, San Francisco, CA, and Amsterdam, the Netherlands. The primary data center is the one in Ashburn. Wikimedia's servers run Ubuntu and Debian, and the main software for Wikimedia projects is MediaWiki, a PHP-based application.
[[meta:Wikimedia servers#Hosting|Wikimedia's servers]] are hosted in five locations around the globe: Ashburn, Virginia, USA; Dallas, Texas, USA;  San Francisco, CA, USA; Amsterdam, the Netherlands; and Singapore, Republic of Singapore. The primary data center is in Ashburn. Wikimedia's servers run the Debian operating system, and the main software for Wikimedia projects is MediaWiki, a PHP-based application.


See also [https://www.youtube.com/watch?v=646mJu5f2cQ&t=110 this presentation] from January 2014 (16min). Even if some details have changed, it is still a good introduction.
See also [https://www.youtube.com/watch?v=646mJu5f2cQ&t=110 this presentation] from October 2019 (40 min). Even if some details have changed, it is still a good introduction.
 
More details and a web request flow diagram updated in 2020 can be found on [[MediaWiki_at_WMF]].


== Code Repository ==
== Code Repository ==
The operations team manages more than eighty [https://phabricator.wikimedia.org/diffusion/query/72QG9_8faXQ7/#R code repositories] to maintain Wikimedia's server tools and infrastructure.
The SRE team manages more than eighty [https://phabricator.wikimedia.org/diffusion/query/72QG9_8faXQ7/#R code repositories] to maintain Wikimedia's server tools and infrastructure.


== Skills Needed ==
== Skills Needed ==
Essential skills for becoming an operations member include server software and hardware knowledge, good communication skills, and experience with MediaWiki and [[puppet]]. Puppet is a tool used by Wikimedia to maintain and configure its computer [[Clusters|clusters]]. To be a useful operations member, you will need to [[Puppet coding|learn puppet]].
Essential skills for becoming an SRE member include server software and hardware knowledge, programming knowledge and good communication skills. Experience with [[puppet]] is a plus, as puppet is a tool used by Wikimedia to maintain and configure servers in our [[data centers]]. Here are resources to become familiar with [[Puppet coding|puppet]].


== Permissions Needed ==
== Permissions Needed ==
To work with the operations team, you need to acquire [https://phabricator.wikimedia.org/tag/wmf-nda/ permissions] (or less likely [[RT#Which permissions are there?|permissions]]) to perform certain tasks, although many [https://phabricator.wikimedia.org/maniphest/?statuses=open%2Cstalled&allProjects=PHID-PROJ-fqb3bhereyljcqrsbju7#R tasks] can be worked on without NDA access. These permissions are granted on a case-by-case basis after confirming the requestor's credentials and making sure he or she has signed the [[Volunteer NDA|NDA]]s.
To work with the SRE team, you might need to acquire [https://phabricator.wikimedia.org/tag/wmf-nda/ permissions] (NDA) to perform certain tasks, although many [https://phabricator.wikimedia.org/maniphest/?statuses=open%2Cstalled&allProjects=PHID-PROJ-fqb3bhereyljcqrsbju7#R tasks] can be worked on without NDA access. These permissions are granted on a case-by-case basis after confirming the requestor's credentials and making sure they have signed the [[Volunteer NDA|NDA]]s. '''Most users do not need shell access to contribute.'''


Acquiring privileged access:
Acquiring privileged access:
Line 28: Line 30:


== How to Find Tasks==
== How to Find Tasks==
To start working with the operations team, you can find tasks at [https://phabricator.wikimedia.org/maniphest/query/HM820qFxglVZ/#R Phabricator]. Phabricator is a web-based system used for finding and tracking bugs that the Wikimedia Foundation uses. To help, you can go to the issue list and work with others to resolve issues.
To start working with the SRE team, you can find tasks at [https://phabricator.wikimedia.org/maniphest/query/HM820qFxglVZ/#R Phabricator]. [[mw:Phabricator|Phabricator]] is a web-based system used for finding and tracking bugs that the Wikimedia Foundation uses. To help, you can go to the issue list and work with others to resolve issues.
 
It is best to find some tasks that you are qualified to help on, acquire your [[Help:FAQ|Labs]] account, create a [https://www.mediawiki.org/wiki/Phabricator/Help#Creating_your_account Phabricator] account using it, and submit changes to the [https://phabricator.wikimedia.org/diffusion/OPUP/ Puppet] repository for review in [https://gerrit.wikimedia.org/r/#/ Gerrit].  Read the [[Puppet coding]] article to better understand how Puppet is used in managing the configuration of Wikimedia sites. 


'''Most users do not need shell access to contribute.'''
It is best to find some tasks that you are qualified to help on, acquire your [[Help:Getting_Started|Wikimedia developer account]], [[mw:Phabricator/Help#Creating your account|create a Phabricator account]] using it, and submit changes to the [[phab:diffusion/OPUP/|Puppet]] repository for review in [https://gerrit.wikimedia.org/r/#/ Gerrit].  Read the [[Puppet coding]] article to better understand how Puppet is used in managing the configuration of Wikimedia sites.


== How to Test Changes==
== How to Test Changes==
After you have made your changes, it is time to test them in [[mediawikiwiki:Wikimedia Labs|Wikimedia Labs]]. Labs is a project designed to make it easier for the community to test improvements to the Wikimedia infrastructure. Many [[Help:Contents|tutorials]] are available.
After you have made your changes, it is time to test them in a [[Portal:Cloud VPS|Cloud VPS]] project. Cloud VPS is a project designed to make it easier for the community to test improvements to the Wikimedia infrastructure. Many [[Help:Contents|tutorials]] are available.


== How to Propose Changes==
== How to Propose Changes==
The final step is to propose your changes to the community using [[Gerrit]]. Gerrit is a system allowing community members to review proposed code changes and implement them.
The final step is to propose your changes to the community using [[Gerrit]]. Gerrit is a system allowing community members to review proposed code changes and implement them.

Revision as of 23:03, 17 June 2022

Wikimedia Servers in Ashburn, VA.

If you are looking to get involved in improving the underlying infrastructure of Wikimedia projects, the Site Reliability Engineering (SRE) team may be just what you are looking for. Anyone can contribute to the effort to make Wikimedia's servers and software faster and more efficient. Many tasks are available for you to start contributing to right away. The SRE team used to be called the Operations team.

Here you have basic pointers for new SRE contributors. Join us at #wikimedia-operations connect!

The SRE Team

The SRE team is the group of people that maintain Wikimedia's servers and run its 800+ individual wikis. Also known as the system administrators, they are in charge of making sure the MediaWiki software runs smoothly on all the wikis, regulating system resource use, maintaining Wikimedia's hardware and software, and creating and closing wikis (although these tasks can also be handled by other users with shell access).

Server Infrastructure

Wikimedia's servers are hosted in five locations around the globe: Ashburn, Virginia, USA; Dallas, Texas, USA; San Francisco, CA, USA; Amsterdam, the Netherlands; and Singapore, Republic of Singapore. The primary data center is in Ashburn. Wikimedia's servers run the Debian operating system, and the main software for Wikimedia projects is MediaWiki, a PHP-based application.

See also this presentation from October 2019 (40 min). Even if some details have changed, it is still a good introduction.

More details and a web request flow diagram updated in 2020 can be found on MediaWiki_at_WMF.

Code Repository

The SRE team manages more than eighty code repositories to maintain Wikimedia's server tools and infrastructure.

Skills Needed

Essential skills for becoming an SRE member include server software and hardware knowledge, programming knowledge and good communication skills. Experience with puppet is a plus, as puppet is a tool used by Wikimedia to maintain and configure servers in our data centers. Here are resources to become familiar with puppet.

Permissions Needed

To work with the SRE team, you might need to acquire permissions (NDA) to perform certain tasks, although many tasks can be worked on without NDA access. These permissions are granted on a case-by-case basis after confirming the requestor's credentials and making sure they have signed the NDAs. Most users do not need shell access to contribute.

Acquiring privileged access:

  1. Go through the NDA process
  2. Go through the process to acquire shell access

How to Find Tasks

To start working with the SRE team, you can find tasks at Phabricator. Phabricator is a web-based system used for finding and tracking bugs that the Wikimedia Foundation uses. To help, you can go to the issue list and work with others to resolve issues.

It is best to find some tasks that you are qualified to help on, acquire your Wikimedia developer account, create a Phabricator account using it, and submit changes to the Puppet repository for review in Gerrit. Read the Puppet coding article to better understand how Puppet is used in managing the configuration of Wikimedia sites.

How to Test Changes

After you have made your changes, it is time to test them in a Cloud VPS project. Cloud VPS is a project designed to make it easier for the community to test improvements to the Wikimedia infrastructure. Many tutorials are available.

How to Propose Changes

The final step is to propose your changes to the community using Gerrit. Gerrit is a system allowing community members to review proposed code changes and implement them.