Fandom

Wikia Français

Commentaires2

Comment les pages vous sont-elles servies ?

Wyz mars 18, 2012 Blog utilisateur:Wyz

Interférence d'un bloqueur de publicité détectée !


Wikia est un site gratuit qui compte sur les revenus de la publicité. L'expérience des lecteurs utilisant des bloqueurs de publicité est différente

Wikia n'est pas accessible si vous avez fait d'autres modifications. Supprimez les règles personnalisées de votre bloqueur de publicité, et la page se chargera comme prévu.

Salut ! Je suis Wade Warren, directeur des Opérations Techniques (TechOps) chez Wikia. Qu'est-ce que cela signifie ? Cela signifie que je dois m'assurer que les serveurs de Wikia sont en ligne, opérationnels et qu'ils soient le plus rapide possible pour nos communautés.

Avec ce travail, on m'a souvent demandé « Comment réussissez-vous à afficher plus d'un milliard de pages vues par mois pour Wikia ? » La réponse en quatre mots est : cache, cache, cache et SSDs ! Ok, c'est en fait 3 mots et un acronyme mais ne nous arrêtons pas aux détails grammaticaux. :)

Recherche et termes clés

L'équipe TechOps de Wikia a dépensé des quantités importantes de temps et d'efforts pour comprendre comment nos utilisateurs utilisent nos services afin que nous puissions mieux délivrer les pages de façon constante et rapide. Nous travaillons étroitement avec nos équipes de développement pour rechercher de nouveaux outils, méthodes, logiciels et matériels pour tirer tous les millisecondes de performances que nous pouvons trouver tout en conservant nos coûts de fonctionnement aussi bas que possible afin de conserver notre service gratuit pour tous. L'analyse de nos utilisateurs et du trafic est une partie essentielle du travail de notre équipe.

En décrivant notre configuration technique, vous me verrez utiliser certains termes clés :

  • Cache – le stockage des fichiers du site Web pour une réutilisation à un point accessible plus rapidement par l'utilisateur final (c'est essentiellement la copie d'une page)
  • Edge cache – la première couche de cache la plus près de nos utilisateurs.
  • Varnish – l'application que nous utilisons pour servir les pages en edge cache.
  • Memcache – une application de cache de base de données très performante utilisée pour minimiser les accès à la base de données MySQL.
  • Serveurs de base de données MySQL – serveurs utilisées pour stocker et retrouver tout le contenu des wikis de nos communautés.
  • Cache des tampons – le cache utilisé par le serveur MySQL pour éviter d'avoir besoin d'aller chercher les données sur les SSDs.
  • Solid State Disks (SSDs) – disques hautes-performances où les bases de données stockent tout le contenu de Wikia.

Comment tout cela fonctionne-t-il ?

Je vais maintenant passer en revue les principaux passages de notre configuration technique. La chose la plus importante à savoir est que le cache est composé d'un nombre de couches et vous rencontrerez une couche différente en fonction du wiki ou de la page que vous visitez, ainsi que l'endroit du monde où vous vous trouvez.

Imaginons que vous visitez votre page préférée sur Runescape. Une fois que vous y êtes, en coulisses, voici ce qui se produit :
Wikia-Infrastructure.png

Le premier arrêt est notre Content Delivery Network (CDN, « Réseau de distribution de contenu ») qui est maintenu par Fastly (une société fondée par un ancien Wikien, Artur Bergman). Fastly utilise Varnish pour vous délivrer une page du edge cache. Le edge cache contient toutes les pages le plus fréquemment consultées dans votre région durant les dernières 24 heures.

Si vous visitez une page qui n'a été consultée par personne dans votre région durant les dernières 24 heures, vous n'êtes pas servi par le edge cache, au lieu de cela vous êtes renvoyé sur l'un de nos serveurs Apache, le tiers suivant de notre service. Une fois que le serveur Apache a reçu votre requête, il regarde dans le cache Memcache de la base de données pour voir si la page s'y trouve déjà. Si le serveur Apache trouve votre page dans Memcache, la page vous sera automatiquement servie de là.

Si votre page n'est pas trouvée, le serveur Apache continuera au tiers suivant, le serveur de base de données MySQL. Là, peut se trouver une version de la page en cache dans ce qui est appelé le cache des tampons. Si la page est dans le cache des tampons, elle sera construite et vous sera servie de là. Sinon, le serveur de base de données MySQL demandera la page à nos disques SSD pour vous obtenir la version de la page qui fait foi.

Ça fait beaucoup ! Et tout cela se passe en moins de 250 millisecondes – ou un quart de seconde !

Stats

Edge cache.png

Sur une atteinte du edge cache, nous envoyons le premier octet de réponse de notre service à nos utilisateurs en 1/2000 de seconde !

Alors, dans quelle couche de cache la plupart des gens finissent-ils ? Et bien, nous avons réussi à atteindre un taux d'atteinte du edge cache au-dessus de 90% et nous l'avons vu arriver à 94% ! Cela signifie que 90-94% de nos utilisateurs sont servies par le edge cache en microsecondes plutôt qu'en millisecondes.

Ou pour ceux qui ne sont pas servis par le edge cache, 85% d'entre-eux sont servis par les serveurs Apache à partir de Memcache. Ceci ramène le nombre de requêtes utilisateurs satisfaites par un cache jusqu'à 95-98%. Le reste est servi soit par le cache des tampons MySQL ou directement par les SSDs.

Comment nous améliorons-nous ?

Nous cherchons constamment des moyens d'améliorer notre service, ce qui signifie que nous revoyons et nous réajustons sans cesse nos couches de cache. Nous recherchons continuellement de nouveaux outils, logiciels ainsi que des composants et nous avons construit les, si ce n'est LES seuls, services en production entièrement basés sur des SSDs. Comme les SSDs fonctionnent 10 ou 20 fois plus vites que les disques durs traditionnels, nous pouvons supporter des centaines de milliers de wikis et offrir des services tels que Semantic MediaWiki ou DPL, qu'il serait impossible d'avoir sur un service de notre taille avec des disques durs traditionnels.

Puisque le fondement de notre service est basé intégralement sur des logiciels Open Source, de ses fondations primordiales MediaWiki à Linux, Apache, Memcache, MySQL, Solr, Varnish, Squid, KVM, Nagios, Ganglia, Chef et une myriade d'autres projets, nous contribuons aussi et nous apprenons de notre communauté de développement Open Source. Nous pensons que c'est une partie importante de notre rôle chez TechOps et nous sommes friands de continuer et faire grandir nos collaborations.

J'espère que cela vous donne un petit (mais détaillé) aperçu de ce que nous faisons ici chez Wikia, du côté de TechOps. Si vous avez des questions, veuillez les poser ci-dessous !


Vous pouvez consulter l'article original ici (en anglais).
Vous souhaitez être informé(e) sur les billets postés en rapport avec l'actualité Wikia ? Alors cliquez ici pour suivre ce blog.

Sur le réseau Fandom

Wiki au hasard