2016-08-16

Wikimedia servers added to category

← Older revision

Revision as of 03:03, 16 August 2016

Line 7:

Line 7:

__TOC__

__TOC__



==

System

architecture

==

+

topology]]

is

described

in the article [[Server layout diagrams]].





=== Network topology ===



The [[:en:Network topology|Network topology]] is described in the article [[Server layout diagrams]].

=== Software ===

=== Software ===



[[File:Wikipedia_webrequest_flow_2015-10.png|thumb|400px|Simplified overview of the employed software as of
October 2015. (A very complex [[:en:LAMP (software bundle)|LAMP "stack"]])]]

+

[[File:Wikipedia_webrequest_flow_2015-10.png|thumb|400px|Simplified overview of the employed software as of
Octo



* Our DNS servers run [[:en:
Comparison_of_DNS_server_software#gdnsd|gdnsd
]]. We use geographical DNS to distribute requests between our four data centers (3x US, 1x Europe) depending on the location of the client.

+

* Our DNS servers run [[:en:
Comparison_o
]]. We use geographical DNS to distribute requests between our four data centers (3x US, 1x Europe) depending on the location of the client.

* We use [[:en:Linux Virtual Server|Linux Virtual Server]] (LVS) on commodity servers to load-balance incoming requests. LVS is also used as an internal load balancer to distribute MediaWiki requests. For back-end monitoring and failover, we have our own system called [[wikitech:PyBal|PyBal]].

* We use [[:en:Linux Virtual Server|Linux Virtual Server]] (LVS) on commodity servers to load-balance incoming requests. LVS is also used as an internal load balancer to distribute MediaWiki requests. For back-end monitoring and failover, we have our own system called [[wikitech:PyBal|PyBal]].



* For regular MediaWiki web requests (articles/API) we use [[:en:Varnish (software)|Varnish]] caching proxy servers in front of [[:en:Apache HTTP Server|
Apache

HTTP
Server]].

+

* For regular MediaWiki web requests (articles/API) we use [[:en:Varnish (software)|Varnish]] caching proxy servers in front of [[:en:Apache HTTP Server|
ApacheUbuntu

Server|Ubuntu
Server]]
or Debian
.



* All our servers run either [[:en:Ubuntu Server|Ubuntu Server]] or Debian.

* For distributed object storage we use [[:en:Swift (distributed storage)|Swift]]

* For distributed object storage we use [[:en:Swift (distributed storage)|Swift]]

* Our main web application is [[:en:MediaWiki|MediaWiki]], which is written in [[:en:PHP|PHP]] (~70 %) and [[:en:JavaScript|JavaScript]] (~30 %).<ref>See [https://www.openhub.net/p/mediawiki/analyses/latest/languages_summary MediaWiki analysis], [https://www.openhub.net/p/mediawiki-extensions-wmf/analyses/latest/languages_summary MediaWiki WMF-supported extensions analysis].</ref>

* Our main web application is [[:en:MediaWiki|MediaWiki]], which is written in [[:en:PHP|PHP]] (~70 %) and [[:en:JavaScript|JavaScript]] (~30 %).<ref>See [https://www.openhub.net/p/mediawiki/analyses/latest/languages_summary MediaWiki analysis], [https://www.openhub.net/p/mediawiki-extensions-wmf/analyses/latest/languages_summary MediaWiki WMF-supported extensions analysis].</ref>

* Our structured data is stored in [[:en:MariaDB|MariaDB]]<ref>

* Our structured data is stored in [[:en:MariaDB|MariaDB]]<ref>



{{cite web | url=
https://blog.wikimedia.org/2013/04/22
/wikipedia-adopts
-mariadb/ | title=Wikipedia Adopts MariaDB — Wikimedia blog | accessdate=2014-07-20 | authorlink=https://blog.wikimedia.org
/author/asher/ | date=2013-04-22 | format=text/html | work=blog.wikimedia.org | publisher=Wikimedia Foundation, Inc. | language=english }}</ref>. We
group wikis into clusters, and each cluster is served by several MariaDB servers, replicated in a single-master configuration.

+

{{cite web | url=
https22
/wikipedia-adopts/author/asher/ | date=2013-04-22 | format=text/html | work=blog.wikimedia.org | publisher=Wikimedia Foundation, Inc. | language=english }}</ref>. We



* We use [[:en:Memcached|Memcached]] for caching of database query and computation results.



* For full-text search we use [[:w:Elasticsearch|Elasticsearch]] ([[:mw:Extension:CirrusSearch|Extension:CirrusSearch]]).

* https://noc.wikimedia.org/conf/ - Wikimedia configuration files.

* https://noc.wikimedia.org/conf/ - Wikimedia configuration files.

Show more