Traversée en dehors des clouds

Compte-rendu et perspectives sur notre approche technique pour Deuxfleurs

Un constat s’est imposé assez rapidement à l’équipe technique de Deuxfleurs : il devient de plus en plus difficile de fournir des services « essentiels » sur internet comme des emails, du stockage de fichier ou de l’hébergement de sites web. Pour preuve, nous avons ces services en interne mais nous ne nous sentons pas (encore) prêt·es à les ouvrir plus largement.

Pourtant, sur le papier, les logiciels libres alternatifs existent. Ce qui nous bloque, c’est l’exécution : fournir ces services sans interruption, de manière fluide et sans limite arbitraire (ce qui ne veut pas dire sans limite du tout, on ne gaspille pas ici !). En effet, derrière ces services, se trouve une réalité physique : des ordinateurs et des câbles, qui ont leurs limites, et qui tombent régulièrement en panne (coupure d’électricité, disque dur cassé, tractopelle qui coupe la fibre optique, etc.). C’est en réponse à ces problèmes que les entreprises du cloud brillent : elles sont capables de continuer à nous fournir leurs services malgré de nombreuses avaries.

Alors, serait-il temps d’abandonner ces services « essentiels » aux entreprises du cloud et de passer à autre chose, quelque chose de plus moderne, comme le Fediverse ? Les réseaux fédérés sont tout à fait passionnants, mais ils ne résolvent pas non plus notre problème. Au contraire, ils l’exacerbent : Mastodon (une alternative à Twitter), Peertube (une alternative à Youtube), ou Matrix (une alternative à WhatsApp) ont en réalité besoin d’encore plus de ressources et d’attention que les services essentiels. Si le débat est plus complexe pour les solutions type P2P, blockchains, IPFS, DAT, etc., elles ne fournissent pas non plus de réponse satisfaisante à notre problème.

Parce que nous n’envisageons pas de rester au chevet de nos ordinateurs (vous vous voyez ne plus prendre de vacances ?), d’être dans l’angoisse de la panne (vais-je réussir à réparer ?) ou encore de donner une mauvaise image des hébergeurs alternatifs (« ça ne marche jamais ! »), l’équipe technique a jugé prioritaire de trouver une solution au problème de la défaillance des serveurs avant de recruter plus d’utilisateur·ices.

Dans nos investigations, nous avons commencé par regarder derrière le nuage, c’est à dire comment font les entreprises du cloud. Il s’avère que pour dépasser les limites individuelles des ordinateurs, ces entreprises ne les considèrent plus, les ordinateurs, comme des entités indépendantes mais comme un tout, un ensemble, que nous appellerons une grappe (en anglais « cluster »). Cette conception se concrétise lors du développement des logiciels : ils sont codés différemment, pour prendre en compte les spécificités d’une grappe de serveurs.

Grappe de raisin

Une grappe de serveurs de raisins - GDJ via Pixabay

Ce concept de grappe a été intégré dans un récit plus large, aux contours très flous, celui du « cloud ». Je ne vous apprends rien en disant que le cloud est sujet à de nombreuses critiques, à l’image de cette affichette ci-dessous.

No Cloud

Affichette de la Free Software Foundation Europe qui alerte sur l'invisibilisation des infrastructures à travers le concept de « cloud ».

Pas amatrice de ciels nuageux, notre équipe a cependant essayé de reproduire l’approche en grappe avec le logiciel libre disponible, les machines et le réseau que nous avions à disposition. Mais les résultats n’étaient pas bons : les services étaient lents, instables, souvent inutilisables, et très durs à gérer pour nous. Un constat s’est imposé : on ne peut pas reproduire le cloud sans datacenter. Notre sentiment, c’est que les logiciels existants sont conçus pour construire des cathédrales, avec de puissants serveurs et un réseau bien connecté. En regard, ce que nous avons à disposition, c’est un bazar (un marché) constitué de nos connexions internet à domicile et de nos ordinateurs de récupération.

La grappe n’étant pas pour nous, nous ne nous sommes pas arrêtés en si bon chemin avec nos métaphores végétales : ce sera le rhizome qui a retenu notre attention ! Pour comprendre, regardons ses propriétés botaniques : le rhizome est un réseau de tiges souterraines, partagé par plusieurs pousses mais il s’agit d’une seule et même plante, elle n’a pas de hiérarchie et est très adaptable. Ces propriétés n’ont pas échappées aux philosophes, qui ont repris le concept. Et c’est sur celui-ci que nous voulons construire l’infrastructure de Deuxfleurs.

Rhizome 2

Un rhizome d'Iris pseudacorus par Martin Cilenšek via Wikimedia

Cette distinction grappe / rhizome me semble importante car elle est l’illustration d’un changement de paradigme : avec la grappe, c’est le matériel qui s’adapte au logiciel, là où, avec le rhizome, c’est le logiciel qui doit s’adapter au matériel. C’est une rupture avec les logiques commerciales où l’on considère à raison que hardware is cheap, le matériel est bon marché. Partant de ce constat, il est alors préférable d’investir dans du matériel couteux pour les infrastructures et rediriger l’effort vers le développement de nouvelles fonctionnalités. Comparativement, notre démarche est différente : on s’impose comme contrainte une sobriété sur le matériel et le réseau pour de nombreuses raisons (écologie, autonomie, etc.). Ce qui nous intéresse, plus que la quantité de fonctionnalité, c’est notre autonomie, notre auto-détermination à fournir des services robustes.

Fort de notre rhizome, il reste encore un petit problème à régler : personne n’a développé de logiciels pour une telle organisation ! Nous avons donc décidé de faire converger bout par bout notre premier système expérimental vers cette structure rhyzomatique. Pour cela, nous avons identifié les composants nécessaires et nous priorisons leur développement en fonction de leur criticité et leur difficulté.

Nous avons posé la première pierre de ce système rhizomatique avec bottin, un outil en charge de fournir un système d’authentification pour tous nos services. Est venu ensuite diplonat, qui gère la connexion de nos machines au reste de l’internet. À ce jour, notre plus beau succès technique est le logiciel Garage. Son rôle est très simple : stocker toutes les données de Deuxfleurs, de manière sûre et efficiente.

Garage

Logo de notre logiciel Garage par ZombieBrain

Récemment, Garage a retenu l’attention de NGI Pointer, un programme de financement de « l’internet de demain ». Ce financement devrait permettre à Deuxfleurs de rémunérer une petite équipe à plein temps pour un an, mais surtout c’est à nos yeux une première reconnaissance de l’utilité de notre travail ! Nous prévoyons d’en reparler plus longuement dans un article dédié, dans les mois à venir.

Ce détour en dehors des clous ne nous a laissé que peu de temps pour nous focaliser sur nos services. Mais ce travail sur notre système rhizomatique commençant à porter ses fruits, nos services pourront bientôt profiter du travail réalisé sur Garage, Diplonat et Bottin. À l’usage, ça se manifestera par des services plus stables et plus agréables à utiliser.

D’ailleurs, il est d’ores et déjà possible d’en avoir un avant-gout, du côté de l’hébergement de sites web. En effet, nous hébergeons deuxfleurs.fr et garagehq.deuxfleurs.fr sur Garage et il est possible pour vous de faire de même, sur simple demande à notre équipe. En fin d’année, nous devrions être en mesure de proposer un nouveau service de stockage de fichiers afin de remplacer le défunt Seafile. Il sera plus robuste, plus rapide, plus facile à gérer, et totalement basé sur Garage. Par la suite, les emails devraient bénéficier du même traitement. D’autres services que nous ne mettons pas sur notre chemin critique, comme Matrix et Plume, devraient eux aussi bénéficier de ces mêmes travaux.

Nous avons hâte de vous montrer les fruits de notre travail, réalisé en grande partie dans l’obscurité jusqu’ici. D’ailleurs, cet article a pour vocation d’être le premier d’une plus longue série, afin d’éclairer à chaque fois les zones d’ombres qui pourraient subsister : que ce soit sur la vision pour notre association, vulgariser la technique, réfléchir à comment nous organiser ou présenter nos équipes.

À ce propos, ce billet est d’abord la vision de son auteur et n’est donc pas le reflet de toute la diversité des opinions de nos membres. Par contre, ce blog est celui de notre association, qui se veut horizontale, vous êtes donc chaleureusement invité·e à faire entendre votre voix ici !

Merci d’avoir pris le temps de me lire et… à vos plumes ?