L’infrastructure Wikipédia

wikipedia-florida-servers-frontWikipédia fonctionne grace à un logiciel open source: MediaWiki. C’est un logiciel PHP/MySQL. L’architecture des sites Wikipédia est donc basée sur ce couple de logiciel et hébergée sur des configurations classiques de type LAMP.

Mais pour gérer des pics avec plusieurs dizaines de milliers de connections par seconde il faut booster cette architecture.

L’équipe du site a donc ajouté un certains nombre de composant pour absorber ce trafic colossal.

Dans le désordre nous retrouvons :

  • une répartition de charge par DNS
  • LVS pour le load balancing
  • Squid pour le cache
  • Memcached, Lucene, Lighttpd,
  • etc…

Et comme un schéma est souvent bien plus clair qu’une longue explication voilà à quoi ressemble l’infrastructure du site :

lvs-squid-mysql

Concernant les volumétries les 3 datacenters de Wikipédia utilise quelques 400 serveurs (du P4 au double Xeon Quad Core avec 16Gb de RAM). Le détail se trouve dans le document en bas de page mais le plus impressionnant reste Squid car il gère ici des pointes à 2500 requêtes/sec sur UN SERVEUR !!

carpA noter également l’utilisation astucieuse de CARP pour répartir les requêtes sur les différents datacenter. Tous les détails sont dans ce document : wikimedia-architecture

Et même si on ne refait pas Wikipédia tous les jours l’architecture peut servir de référence pour un site de contenu à très fort trafic. Sur le même sujet si la couche applicative vous intéresse vous pouvez consulter cette page à propos de l’architecture interne wikipedia, c’est assez proche mais le PDF donne plus de détails sur les structures interne, et moins sur les serveurs et leurs caractéristiques.

J’espère que ces exemples vous permettrons de mettre en place des architectures stables, même si aujourd’hui de plus en plus de site ne se contentent pas de livrer des pages statiques et il est désormais fréquent de personnaliser le traitement en fonction de l’internaute (ou de sa requête). Dans ces cas les résultats sont plus difficiles à mettre en cache. Je pense notamment aux moteurs de recherche, commandes sur les sites de e-commerce, et toutes les applications nécessitant un traitement avant de pouvoir livrer la page.

Sur le même thème :

One Response to “L’infrastructure Wikipédia”

  1. [...] L’infrastructure  du site wikipedia [...]

Leave a Reply