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.