2 commentaires

meow.social, vous connaissez ?

Pour faire court il s'agit d'une instance décentralisée de type « Mastodon » qui tourne depuis 2017 et qui, à la base, est parti d'une blague entre pote :

vient on monte un serveur Mastodon pour les furrys, par des furrys
Tiwy57 — une nuit en 2017, bourré

Depuis la blague continue de fonctionner.


Au départ toute l'instance fonctionnait sur un serveur à 8Go de RAM,
avec des HDD en fin de vie, sur du matériel douteux,
et qui de toute façon était destiné à cramer comme il se doit.

Au fur et à mesure du temps s'est posé quelques défis techniques, face à l'afflux d'utilisateurs et surtout face à la gourmandise en ressources qu'est Mastodon.
Nous avons connu 4 grandes migrations, et des déboires techniques.

Notre première migration a été de passer sur des SSD, car la vitesse des HDD était désastreuse.
En effet, il s'agissait de petit disques durs en SOFT RAID1, et ce n'était pas suffisant pour héberger la base de données, les médias de l'instance (médias de nos utilisateurs, + le cache naturel du réseau), et toute la partie applicative.

S'en est suivi une période de défaillance lié au matériel (des défauts de carte mère, des défauts même dans les SSD), ce qui fait que l'on migré et changé deux fois de serveurs.
Nous tournions sur du 480GB RAID 1 en SSD, avec 16Go de RAM.

Notre dernière migration s'est déroulée il y a un an et a eu pour objectif de passer sur un serveur « relativement véloce » avec 32Go de RAM.
Toujours dans l'optique de faire tourner le serveur à moindre frais tout en assurant une certaine marge de manœuvre.
A l'heure actuelle, on tourne sur un serveur avec 32GB de RAM, un Intel Xeon E3-1230v6 - 4c / 8t à 3,5GHz, et ce qui nous fait le plus grand bien, c'est le 2x450Go SSD NVMe en Soft RAID1.

Mais en 2017 nous ne pensions pas que Twitter, allait devenir ce qu'il est.
Nous pensions que Mastodon allait évoluer lentement sur le réseau, en parallèle de Twitter.

Aujourd'hui, tout le monde pense à dire que Twitter est sur le point de mourir ...
Ce qui fait que nous avons connu 3 grosses migrations d'utilisateurs vers les serveurs Mastodon, et particulièrement le notre, de part le fait que nous sommes orienté vers la communauté Furry.

Je n'ai jamais voulu que notre serveur soit l'instance la plus cool sur laquelle tout le monde doit y être, mais que nous puissions être une passerelle vers ce réseau, et que nous évoluons en pérennité avec le réseau, avoir une modération efficace, et que tout le monde se sente en sécurité.

Nous sommes plutôt bien organisé, et nous avons une hiérarchie claire et définie.
Je n'intervient pas dans la modération, car en tant qu'administrateur système et technique du serveur, je m'estime ne pas être compétent, et nos jugement sont souvent altérés par nos biais cognitifs.

Mais Mastodon a les outils de modérations pour pouvoir être efficace, ce qui fait que je supervise le serveur, je garanti son fonctionnement, et je suis le dernier rempart du bon fonctionnement du serveur.

Nomaxice m'aide a l'heure actuelle et chapeaute l'équipe de modération, et nous sommes 4 autres modérateurs à l'heure actuelle, réparti sur le globe, afin de couvrir un panel d'heure et de réactivité. Depuis 2017 nous traitons en moyenne 3 à 4 rapports de modérations par jours, et parfois on se consulte pour être cohérent sur notre politique de modération.

Parlons de l'avenir.
Depuis que Elon Musk fout le bordel sur Twitter, c'est compliqué de maintenir le serveur à flot.
Nous subissons l'influx de nouveau utilisateurs, et de l'activité du Fediverse, qui se décuple.

Ce qui fait que parfois, notre serveur subit de fortes charges, comme un DDoS finalement, avec parfois l'OOM Killer qui nous dit "coucou" et qui nous rappelle que notre serveur n'a pas autant de ressources de manière illimité. Parfois ça se limite à la simple coupure d'ElasticSearch (qui n'est nécessaire autant que ça, mais utile tout de même).

Parfois c'est tout simplement les serveurs de cache qui tombent (Redis), c'est un peu problématique.
Parfois c'est Sidekiq (le système de gestion de tâches asynchrone) qui se prend une salve de requêtes (200'000 tâches en attente, ça met 8h à être traité, tout en continuant de subir l'influx de tout le réseau).

Un seul serveur pour gérer tout ça, c'est compliqué.
Nous avons passé les medias sur S3 en stockage objet (chez OVH, toujours, et ça fonctionne pas si mal !) début Novembre, ce qui nous a aidé à passer l'afflux et à réduire la bande passante ridicule que le serveur dispose (300mbps).

Mais une nouvelle infrastructure est devenue nécessaire, plus robuste, et surtout, de haute disponibilité.

Cela ne se construit pas en une soirée, et les fêtes de fins d'années font que c'est compliqué d'orchestrer tout ça actuellement.

Je réfléchis encore à l'infrastructure finale, mais meow.social va connaître une évolution d'ici Janvier.

  • Nous allons dédier la base de données sur un serveur à part entière. 32Go de RAM devrait faire l'affaire.
  • Nous allons dédier un nouveau serveur à la gestion des tâches et de la recherche (Sidekiq, Redis, ElasticSearch). Pareil, 32Go de RAM.
  • Nous allons également dédier un nouveau serveur au front-end, c'est à dire, tout le front
  • Un serveur bastion. Il sera la porte d'entrée, c'est lui qui va gérer le réseau de tous ces serveurs, le monitoring, et le forward vers les services. (et les BACKUPS !!!)

On va quadrupler les coûts, et jusqu'à présent je prenait tout à ma charge. L'infrastructure actuelle me coûte environ 45€/mois pour un seul serveur, sachant que j'en ai deux (le main, et le backup), et que je ne compte pas mon serveur personnel de mail qui lui gère tout ce qui est mes mails et ceux de meow.social.

Mais la communauté nous le rend bien. Nous recevons de nombreux dons en argent, et pour ça, je ne peut être que reconnaissant envers la communauté, car elle est généreuse.
Oui, au départ le serveur était une blague.
Mais maintenant, je vais tout pour faire en sorte que ce serveur s'éternise, et soit ancré sur Internet.

Parce que les meilleurs blagues sont celles qui durent.