Runner PeerTube mutualisé inter-CHATONS?

Bonjour tout le monde,

Avec La Contre-Voie, on lance petit à petit notre première instance PeerTube, qui servira pour nos vidéos et pour nos membres qui souscriront à ce service.

Héberger des vidéos implique de faire du transcodage, qui implique d’avoir le matériel pour ; et un petit VPS ou un petit micro-ordinateur de faible capacité ne pourra pas forcément réaliser cette opération. Quant aux serveurs plus gros : réaliser le transcodage directement sur ces serveurs peut monopoliser le CPU pendant plusieurs heures ou minutes, ce qui peut dégrader l’expérience d’utilisation des autres services par des ralentissements.

La FAQ de PeerTube indique qu’il faudrait idéalement avoir un serveur à 8 vCore et 8 Go de RAM pour faire de l’encodage dessus. Ça pourrait être onéreux pour une structure seule de louer un serveur spécifiquement pour ce besoin, alors que le serveur ne sera pas utilisé tout le temps (seulement pendant les opérations de transcodage…).

Le programme utilisé par les runners PeerTube permet de gérer les paramètres d’encodage de manière relativement granulaire, et peut servir de runner pour plusieurs instances.

Et si on mutualisait entre CHATONS ?

Budget

L’idéal serait d’estimer le coût d’un bon serveur qui servirait à tout le monde, et de voir pour combien de structures ça serait envisageable sur le plan financier.

Admettons que l’on parte sur un serveur dédié chez un gros fournisseur comme OVH ou Hetzner ; cela nous coûterait entre 35€ et 50€ par mois. Disons 40€ par mois comme montant de départ.
(Bien sûr, je pars du principe qu’on fait comme la majorité des CHATONS et qu’on utilise du gros cloud capitaliste, mais si on a des solutions plus éthiques ça peut s’envisager, tant que ça reste globalement fiable)

Si nous sommes 5 structures : le dédié nous coûterait 8€ par mois et par structure.
Si nous sommes 10 : 4€ par mois et par structure. (40 divisé par 10… attention le niveau de maths vole haut !!!)

Je pense qu’on peut se fixer un minimum de départ à 5 structures pour lancer cette mutualisation (en dessous, ça serait peut-être des efforts investis pour pas grand-chose), et un maximum de 10-15 structures, même si cela dépend fortement du volume de vidéos traité par chaque. Et puis, si l’idée marche vraiment bien, on pourra toujours mettre en place un deuxième runner !

Modèle de contribution

Idéalement, une structure payerait le dédié pour tout le monde, et les autres structures contribueraient à la hauteur de leur consommation de ressources ou de leurs moyens.

Les modalités restent à définir : est-ce que la structure qui loue refacture partiellement le dédié aux autres, ou est-ce qu’on fait du prix libre en espérant atteindre assez de contributions financières pour couvrir les frais de la location ?

Pour ma part je pense que c’est OK d’envisager le prix libre entre nous. (Ça a un autre avantage, qui est de pouvoir potentiellement comptabiliser cette contribution en dons plutôt qu’en facture :nerd_face:)

Par contre, il nous faut quand même pouvoir réaliser une vague estimation des contributions pour éviter que la structure qui loue se retrouve avec un surplus significatif (ou au contraire, doive tout payer pour les autres).

CHATONS, Pas-CHATONS ?

Pour ma part si tout le monde est d’accord, je ne vois pas forcément l’inconvénient de mutualiser le runner avec d’autres structures non membres CHATONS ; typiquement, si des évènements libristes (JDLL, CdL, ou admettons PSES…) ont une instance PeerTube, ça pourrait être chouette que notre travail de mutualisation leur serve même si ces structures ne sont pas CHATONS.

Cela implique toutefois d’avoir confiance en ces structures, parce que ça reste un runner (donc, un outil qui exécute du code plus ou moins arbitraire pour un serveur distant).

Qu’est-ce qui serait mutualisé ?

Plusieurs tâches sont mutualisables avec le runner, à en croire la CLI :

  • vod-web-video-transcoding
  • vod-hls-transcoding
  • vod-audio-merge-transcoding
  • live-rtmp-hls-transcoding
  • video-studio-transcoding
  • video-transcription

Certaines tâches dans le lot semblent nécessiter une vigilance particulière :

  • video-transcription : la transcription vidéo avec Whisper, qui semble plus coûteuse que les autres, notamment en RAM ;
  • video-studio-transcoding : la transcription depuis le studio, qui implique que les utilisateur·ices de chaque instance de la pool peuvent déclencher cette tâche très facilement et potentiellement monopoliser les ressources, plus facilement qu’avec un upload classique ;
  • live-rtmp-hls-transcoding : si j’ai bien compris c’est la tâche du live, qui monopoliserait le runner pour toute la durée du live, qui nécessite que le serveur ne faiblisse pas au risque de dégrader la qualité des lives (il pourrait faiblir avec trop de tâches concurrentes ?) ; aussi, comment ça se passe s’il y a plusieurs lives en même temps sur des instances différentes, quelle serait la capacité maximale du runner ?

Bref, sur le plan technique, une telle mutualisation soulève des problématiques qu’il nous reste encore à trancher. Avoir des retours de gens qui maîtrisent bien le sujet des runners PeerTube sur une grosse instance pourraient bien nous aider.

Qui fait quoi ?

Si personne ne se propose pour administrer l’instance qui gère le runner, je peux me porter volontaire pour m’en occuper et faire les maintenances qui vont avec (on en a besoin à LCV, donc ça nous intéresse).

La structure qui loue pourrait être La Contre-Voie, mais nous avons des contraintes budgétaires assez complexes pour le moment : on est toujours en phase d’hypercroissance, prout :rocket: et on demande pas mal de subventions, donc on ne peut pas ajouter une dépense sans la budgétiser 1 an à l’avance… :clown_face:
Donc ça nous arrangerait si c’est une autre structure qui porte la responsabilité de louer la machine.

Donc, je récapitule ici les structures engagées dans le processus, et tâcherai de mettre à jour petit à petit.

Qui gère l’adminsys ?
Besoin : idéalement une personne + deux personnes en « support »

  • Personne pour l’instant, à défaut neil (La Contre-Voie)

Quelle structure porte la location du serveur ?
Besoin : une structure

  • Aucune structure pour l’instant

Quelles structures sont intéressées pour bénéficier d’une instance ?
(Pour quel volume prévu et pour quels montants de contribution ?)

Nom Volume prévu Montant de la contribution Besoin de live ?
La Contre-Voie Encore inconnu 5-10€ par mois, peut-être plus par la suite Probablement
BOC47 Inconnu Inconnu Inconnu

Quelles structures sont intéressées pour fournir une instance ?

Nom Specs Modalités de partage
Picasoft VM Caribou, vCore sur Xeon E-2276G 6C 12T, ??? RAM Non définies
Liberta VM Hetzner, 6 vCore i7-7700, 1GBit Non définies

À vous :slight_smile:

2 Likes

Salut,

Je suis actuellement en vacances chez un autre membre de Katzei donc je te fait une réponse un peu a l’arrache qui nécessiterait beaucoup plus de recherches.

est ce que ça ne serait pas plus efficace de prendre un serveur avec un/des gpu pour gérer l’encodage ? est ce que peertube le gère ?

Si oui, je pense qu’une petite machine a 600-800€ serait amortie en 2 ans par le groupe et aurait de meilleurs performances (une petite machine avec un intel i3 12100 du type utilisé chez katzei (du matériel grand publique détourné pour faire du serveur) reviendrait dans les 650€ (estimation faite a l’arrache) et serait probablement bien plus performant (tout en étant amortie en 2 ans électricité comprise).

PS : katzei n’a pas de besoins d’encodage puisque notre plus gros problème est la capacité de stockage limité sur notre infra mais j’adore ton idée de mutualiser ce genre de choses :slight_smile:

PPS: PSES n’aura probablement plus jamais lieux vu leur communication officielle et les postes personnels d’un de ses organisateurs :cry: mais ce serait super de pouvoir aider d’autres organisations proches des chatons sur des points de vue éthiques.

Merci pour la proposition, c’est une très bonne idée !
On regarde sur Picasoft si on pourrait proposer ce runner sur notre infra physique, ça fait un moment qu’on aimerait fournir un service aux CHATONS.
C’est pas sûr qu’on soit assez large pour les specs demandées, on revient vers vous bientôt :slight_smile:

On a tenté chez nous avec un laptop de récupération qui possède une carte NVIDIA GT650M à 2Go de mémoire graphique.

Plusieurs problèmes :

  • PeerTube ne supporte pas nativement l’encodage vidéo sur GPU ; il faut recompiler ffmpeg. Globalement c’est très expérimental comme usage.
  • Pour de l’encodage GPU il faut du matériel assez récent, car l’encodage vidéo avec certains codecs n’est pas supporté correctement par les cartes graphiques qui datent de plus de 5 ans. (ça dépend du format / codec / de la marque de la CG / …)
  • À en croire les témoignages, le rendu via encodage GPU n’est pas génial. (voir ici et ).

Autres problèmes lié à l’autohébergement du matériel :

  • Les considérations en terme de température deviennent très sérieuses. On ne peut pas juste laisser l’appareil dans un coin sur une box, il faut s’assurer qu’il soit dans un local avec un système de refroidissement fiable : clim / bonne ventilation / etc.
    • Pour notre part on a eu des soucis de surchauffe au bout de 20-30 minutes d’encodage avec ce laptop… le placard dans lequel il est stocké n’est pas ventilé. Cela ne pose aucun souci pour les micro-ordinateurs branchés avec lui, mais il dégage évidemment beaucoup plus de chaleur quand il est à 100% de CPU pendant un quart d’heure.
  • S’il faut acheter du matériel puissant/récent, ça peut coûter cher et je ne miserais pas sur la durée de vie du matériel, en particulier si c’est un ordinateur qui va faire de l’encodage vidéo en permanence. Lorsqu’il est sur-sollicité de cette manière, le « petit matériel grand public » montre ses limites.
  • Il faut une bonne bande passante pour faire du live. (pour un runner, ça sera exclusivement du trafic des instances PeerTube ↔ runner ; il ne fera pas de peering).

Voilà pourquoi peut-être que ça vaut plutôt le coup de louer : on s’en fiche d’abîmer les machines d’un gros hébergeur, et de toute façon elles sont tellement bien refroidies que même de l’encodage vidéo ne devrait pas dégrader leur matériel, car c’est du matériel pro.

Bien sûr, si le serveur autohébergé c’est du matériel pro (un serveur en rack, pas un laptop de récup comme chez nous :smile: ) qui est bien ventilé, avec de bonnes specs, alors ça pourrait faire l’affaire !

2 Likes

L’équipe tech est encore en cours de discussion mais en tout cas si ça se fait ce serait sur cet ordinateur de compagnie, qui remplit bien les critères !

3 Likes

Dommage que ça ne soit pas supporté(et que les encodeur hardware ne soient pas bons). Comme je le disait je n’avais pas eu l’occasion de faire plus de 5 min de recherche :slight_smile:

Juste pour répondre a tes expérimentations sur un pc portable:

Pour l’usage de matériel grand publique il ne faut vraiment pas prendre de mini-pc ou de pc portable parce qu’en effet tu vas avoir des problème de température et de longévité. On a des tours (full size) avec un refroidissement surdimensionné (noctua NH-12, le redux était pas sorti a l’époque)) ce qui permet en pratique de garer le CPU assez frais quel que soit la température (et la machine relativement discrète). Katzei tourne la dessus depuis 5 ans.

1 Like

Salut, à BOC47 on a notre instance peertube qui tourne sur notre machine auto-hébergée mais cette proposition de mutualisation peut peut-être nous intéresser aussi pour décharger un peu notre serveur pour d’autres usages. Il faut que j’en discute avec les autres de l’équipe à notre prochaine réunion.

Bonjour,

Super idée,
Côté @retzienlibre on est en réflexion peertube mais on a pas encore tranché la question… Donc c’est un peu tôt pour se prononcer.

David

Bonjour à toustes,

Liberta n’est plus chaton mais ça faisait partie des projets de mutualiser un runner Peertube à qui veut.

Le runner est en prod actuellement. La transcription n’est pas supportée par un GPU donc c’est moins rapide mais la machine virtuelle est 100 % dédiée au runner, le serveur ne fait tourner que cette VM et des backups ZFS.

Le serveur est un serveur physique chez Hetzner, en Allemagne a Fessenheim FSN1-DC14. Voici les specs :

VM Debian 12
6 coeurs d’un Intel Core i7-7700
8 Go de RAM
Réseau 1 GBit
IPv4 + IPv6

Cette VM s’ennuie !
À dispo pour donner des clefs pour enregistrer des serveurs et tester tout ça direct.

6 Likes

Nous n’avons pour l’instant pas besoin de runner su les instances peertube du distrilab, le serveur qui les héberge étant tout a fait capable d’encaisser le faible volume de nouvelles vidéo et de live qu’on lui demande d’encoder.
Mais je suis cette discussion avec intérêt. Et je me demande comment ça se passe pour les vidéos live. Est que ça rajoute de la latence de confier l’encodage à un runner? A quel point est-ce que ça augmente la consommation de bande passante réseau du serveur peertube si le(s) runners sont sur un site différent du serveur peertube?
Vous avez des retours d’expérience là dessus?

Hello,
je suis bien intéressé pour contribuer à un runner mutualisé pour ajouter une instance peertube à nos services pour @linux07