Poképédia:Architecture technique

De Poképédia
Aller à la navigation Aller à la recherche
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.

Maintenance · Suivi MediaWiki · Test des extensions · Test des styles · Architecture technique


L'infrastructure derrière Poképédia, faisant tourner le site, évolue avec les années et selon les besoins. Puissance, coût, outils proposés : les paramètres ne manquent pas pour décider dans quelle direction aller.

2007 - 2009 : Dedibox

À ses débuts, et pendant deux ans, Poképédia était hébergé chez Dedibox (dont le nom est maintenant Online.net). Il n'y avait alors qu'une seule configuration proposée, à bas prix (35€ TTC par mois environ), mais en serveur dédié là où les offres accessibles d'alors se faisaient en mutualisé.

  • OS Debian
  • Processeur VIA C7 2 GHz
  • 1 Go de RAM DDR2
  • Disque dur SATA de 160 Go
  • Connectivité 100 Mbits/seconde

Quelques services supplémentaires étaient proposés (espace de sauvegarde de 5 Go). Les DNS étaient néanmoins gérés par Gandi, et le sont d'ailleurs toujours.

Tous les services nécessaires à l'hébergement de Poképédia reposaient sur cette seule machine, du serveur web (Apache) à la base de données (MySQL).

Près de deux ans plus tard, la configuration Dedibox a évolué, apportant un peu plus de puissance, mais les besoins de Poképédia ont augmenté plus rapidement et de fréquentes indisponibilités se sont alors faites sentir. Pour cette raison, ainsi que pour faciliter l'administration technique, il a été décidé de migrer vers Gandi, qui proposait alors une toute nouvelle offre de serveurs dédiés virtuels.

2009 - 2014 : Gandi

Poképédia chez Gandi, c'est Poképédia lors de son adolescence : beaucoup de changements pour une organisation technique qui se cherche. Les indisponibilités du site chez Dedibox devenaient gênantes et il fallait changer pour un serveur plus puissant. Mais le problème était un peu plus complexe. et était principalement dû à une contention entre Apache et MySQL par manque de ressources. L'offre de Gandi promettait de régler ce problème : elle permettait de créer de multiples serveurs, en leur allouant uniquement les ressources nécessaires. Ainsi, il était possible de séparer la partie web de la partie base de données, ce qui a été fait dès la migration. Il aurait été possible de le faire chez Dedibox, mais au prix de deux serveurs dédiés « standards », et donc d'un serveur de base de données nettement trop puissant pour la tâche qui lui est confiée.

L'autre avantage de l'offre de Gandi résidait en leur système Gandi Flex. Grâce à celui-ci, il était possible d'allouer dynamiquement des ressources, par exemple en augmentant la RAM ou le nombre de cœurs (CPU) le week-end. Bref, malgré un tarif légèrement plus élevé à puissance égale, il s'agissait d'une alternative vraiment intéressante.

Poképédia a profité de la possibilité de créer facilement de nouveaux serveurs à tarif accessible avec optimisme : en plus de la séparation Web - Base de données, un troisième serveur a été créé pour des besoins annexes, comme centraliser les sauvegardes des données des deux autres serveurs, ainsi que faire un peu de supervision (monitoring), c'est-à-dire gueuler quand quelque chose ne tourne pas rond avec le site. Cependant, cette architecture a longtemps été suboptimale, et la partie supervision n'a jamais été aussi développée que ce qui était souhaité.

Il a fini par être décidé de s'en passer dès que Gandi s'est mis à proposer des snapshots automatiques, permettant de gérer les sauvegardes différemment. Par ailleurs, le serveur web a également accueilli un serveur cache (Varnish), pour encore une fois améliorer la disponibilité du site en diminuant la charge de travail du serveur web.

La configuration des serveurs a beaucoup évolué entre 2009 et 2014. Il serait difficile de retracer exactement ce qui était utilisé et à quelle période, mais la configuration finale comportait :

  • Serveur web :
    • OS Debian
    • 6 cœurs CPU
    • 6 Go de RAM
    • Disque dur système de 3 Go, disque dur données de 41 Go
    • Sauvegarde (snapshot) toutes les 24 heures
    • Connectivité 100 Mbits/seconde
  • Serveur base de données :
    • OS Debian
    • 1 c­œur CPU
    • 1280 Mo de RAM
    • Disque dur système de 3 Go, disque dur données de 17 Go
    • Sauvegarde (snapshot) toutes les 24 heures
    • VLAN entre le serveur web et le serveur base de données, connectivité 200 Mbits/seconde

Cette nouvelle architecture et cette augmentation des ressources n'a cependant pas permis d'atteindre une disponibilité satisfaisante. De nombreux visiteurs ont dû s'habituer à recevoir une erreur 500, parfois pendant plusieurs heures. La situation s'est parfois améliorée, parfois dégradée, mais en 2014 quelques changements de configuration logicielle ont permis de limiter les indisponibilités de manière drastique. Malgré cette amélioration, un autre problème s'est mis à peser de plus en plus sur la gestion technique de Poképédia : l'argent.

En effet, mi-2013, Gandi a revu ses offres et tarifs de fond en comble : usage de crédits, tarification horaire... et surtout, fin de la bande passante illimitée. Ce dernier point fut le plus dévastateur : Poképédia nécessite plusieurs téraoctets de bande passante, et les nouveaux tarifs autorisaient 500 Go... le surplus étant facturé. Pensant d'abord que cette hausse pourrait être absorbée par une utilisation plus importante et plus fine de Gandi Flex, ainsi que par la mise en place d'un VLAN entre le serveur web et le serveur base de données, aucune migration n'a été programmée. Mais après plusieurs mois où les coûts ont explosé, il a fallu chercher ailleurs, et en juin 2014, décision fut prise de s'installer chez Linode.

2014 : Linode

Passer de Gandi à Linode a été fait très rapidement - moins d'une semaine entre la décision de quitter Gandi et la migration effective - mais elle ne fut pas pour autant prise à la légère. Quitter Gandi, c'est à la fois des heures de travail pour transférer le site ailleurs, et à la fois partir vers l'inconnu après 5 années au même endroit. Qu'en serait-il de la flexibilité de la configuration, du support ? Même si les tarifs Gandi ne permettaient plus à Poképédia d'y rester, le service restait satisfaisant et les quelques soucis rencontrés ne remettaient pas en cause l'hébergeur choisi.

La migration s'est faite vers Linode après vérification de quelques critères : qualité du support, retour utilisateurs, puissance des configurations proposées, bande passante disponible et enfin le coût.

Les critères ne remettaient donc pas fondamentalement en cause l'architecture technique, et la séparation web - base de données est ainsi toujours de mise. De fait, peu de choses ont changé sur ce plan. Même les sauvegardes quotidiennes sont encore là, avec cependant deux copies supplémentaires, une à 7 jours et l'autre à 14 jours.


La configuration des deux serveurs est meilleure que chez Gandi, avec notamment des disques SSD :

  • Serveur web :
    • OS Debian
    • 6 cœurs CPU
    • 8 Go de RAM
    • SSD 192 Go
    • Sauvegarde toutes les 24 heures, plus copie toutes les semaines et toutes les deux semaines
    • Connectivité 40Gbits/seconde (entrant), 1000 Mbits/seconde (sortant)
  • Serveur base de données :
    • OS Debian
    • 2 cœurs CPU
    • 2 Go de RAM
    • SSD 48 Go
    • Sauvegarde toutes les 24 heures, plus copie toutes les semaines et toutes les deux semaines
    • VLAN entre le serveur web et le serveur base de données

La différence majeure est que 8 To de bande passante par mois sont autorisés, ce qui devrait permettre à Poképédia de ne pas dépasser le quota et de ne pas payer de surplus comme chez Gandi. Il est également envisageable de passer à la configuration supérieure autorisant jusqu'à 16 To si cela était nécessaire : le coût serait toujours moindre à ce qui était payé chez Gandi depuis leur changement de tarification.

Il y a tout de même des inconvénients par rapport à l'hébergeur précédent. En particulier, les configurations sont moins flexibles : là où Gandi permettait d'ajouter de la RAM, de l'espace disque ou des cœurs CPU à la demande, Linode ne propose que de passer d'une configuration fixe à une autre (mais, tout de même, a priori dynamiquement, sans devoir tout réinstaller).

Pour l'instant, le service est satisfaisant, et le support réactif.