Core Platform Team/Initiative/Serve read requests from multiple datacenters/Initiative Description

From mediawiki.org

< Serve read requests from multiple datacenters

Summary

Currently we are serving all of our MediaWiki-related traffic from a single DC (data centre), which is problematic for a number of reasons:

  • if the main DC gets cut off or experiences networking issues, all of our projects become invisible to users;
  • we keep a full copy of the infrastructure in the secondary DC, thus wasting hardware and electricity; and
  • serving content from only one DC means slower access times and higher latencies for markets that would profit from being served from other DCs

As a first step in being able to fully serve traffic from multiple DCs, we need to start serving only GET requests (a.k.a. read requests) from multiple DCs.

Significance and Motivation

By completing this project, we will have better utilisation of the hardware we have in all DCs and partially avoid catastrophic events. Moreover, in doing so we will be able to serve better and faster emergent markets.

Outcomes

Increase the scalability of the platform for future applications and new types of content, as well as a growing user base and amount of content

The primary measure of the success of this project is that both MediaWiki and the production environment can serve GET requests in all DCs.

Baseline Metrics
  • Infrastructure in CODFW ready to serve read requests without slowing down all writes and reads in all DCs
Target Metrics
  • Split incoming traffic on the edge for GET requests and route them to the closest DC (instead of the main DC)
Stakeholders
  • Core Platform
  • SRE
Known Dependencies/Blockers

Multi-DC Session Storage