Poképédia fête son dixième anniversaire ! Venez passer un bon moment avec nous sur le forum !

Poképédia:Architecture technique

De Poképédia
Aller à : navigation, rechercher

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[modifier]

Poképédia-Dedibox.png
À 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, low cost (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).

Après environ deux ans, 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[modifier]

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 coeurs (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-Gandi 2009-2014 1.png
Poképédia-Gandi 2009-2014 2.png
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 coeurs 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 coeur 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 fût 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 fût prise de s'installer chez Linode.

2014 : Linode[modifier]

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 fût 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.

Poképédia-Linode 2014.png
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.