Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Cloud

Si on regardait les bots des moteurs de recherche

Rédigé par dada / 08 février 2021 / 2 commentaires


Il y a un peu plus d'un an, je me suis amusé à comparer les moteurs de recherche en analysant leur capacité d'indexation sur mon blog. À l'époque, l'affaire de l'index de Qwant battait son plein : on se demandait qui étaient ces moteurs de recherche à l'indépendance douteuse.

Parler de moteur de recherche, qu'il soit éthique, écologique ou encore respectueux de la vie privée, c'est un foutoir sans nom. Notez que Lord s'est lancé dans la bataille et je vous invite à lire son billet. Il a pris le temps de vous expliquer en quoi on se fait toutes et tous avoir, plus ou moins.

Bref, ici, j'ai envie de vous partager le fruit d'une partie de mon travail en vous montrant la fréquence de passage des robots des différents moteurs de recherche. Oui, je mets en place des machins qui dépiautent les logs dans tous les sens possibles. Mais jamais pour un usage commercial !

Méthode : J'ai lancé une requête simple dans Grafana/Loki qui remonte les occurrences des différents bots dans les logs d'accès à mon blog tout le long du mois de janvier, avec un maximum de 5 000 requêtes*.
Note : L'intégration des images dans PluXml n'est pas parfaite, du coup, pensez à les clic droit Afficher l'image.
Note 2 : Les échelles sont différentes en fonction des graphiques. Oui, je sais, c'est pas top !

Duckduckgo


Ce moteur de recherche** n'est passé que deux fois me faire des coucous. Deux fois assez terribles puisqu'on remarque 2 pics d'un peu plus de 250 requêtes en quelques secondes.
En regardant ce qu'il a récupéré, je peux vous dire que ce n'est pas jojo : ça ne concerne que le thème de ce site.

Qwant



Avec le champion européen, on se rend compte qu'il bosse un peu plus que DDG. J'ai 2154 requêtes (avec un pic à 542 !) espacées de plusieurs jours. C'est un peu mieux au niveau de la diversité des infos relevées : Qwantify s'est promené un peu partout dans les articles, les images et même les flux RSS des commentaires.

Bing



Avec Bing, on arrive à ce que j'imagine être la quantité de travail d'un moteur de recherche. On est entre 30 et 100 requêtes par jour, tous les jours. C'est clairement trop pour mon petit site qui n'est pas mis à jour aussi souvent. Pour un site professionnel, ou un machin à buzz type Ouest-France ou 20Minutes, ça doit être important.

Mojeek



Je dois avouer que je ne pensais pas le trouver, ce nouveau moteur de recherche britannique. Il passe de temps en temps, principalement pour analyser mon robots.txt ! Bon, il se veut écolo, respectueux de la vie privée et surtout très jeune. En poussant un peu mes recherches, j'ai découvert qu'il était passé chez moi pour la première fois le 22 août 2020.

Google


Le Patron : le GoogleBot. Je suis surpris de ne pas le voir plus tranchant que le robot de Bing. C'est pas flagrant : les deux touchent les limites de mon test : 5000 requêtes. Comme pour Bing, quel est l'intérêt de passer si souvent ? Mystère.

Comparaison

En plus du graphique ci-dessous, je vous offre un instantané plus joli pour mettre tout ça en perceptive.

Conclusion

Non, pas de conclusion. Ce que je vous montre n'est qu'un coup d’œil à un instant donné. Comme il est impossible de savoir vraiment ce qui peut déclencher le retour d'un bot sur tel ou tel site, il est impossible de comprendre la fréquence de passage d'un bot. Ici, je me fends d'un billet une ou deux fois par mois : autant dire qu'un passage par mois est largement suffisant pour indexer tout le contenu. Rien ne justifie 30 ou 200 requêtes par jour.

Enfin voilà, des bisous



* Pourquoi un maximum de 5 000 ? Parce que Googlebot.
** Pas vraiment, mais bon.

De l'alerting à base de logs

Rédigé par dada / 12 février 2020 / 2 commentaires


Cela fait un moment que je cherche un moyen de déclencher des alertes à partir d'erreurs spécifiques dans les logs. En fait, ça fait depuis la sortie de Loki que j'en rêve.



Pour rappel, le couple Loki/Promtail, permet de centraliser des logs dans Grafana pour les visualiser calmement plus tard. En gros, ça peut donner un truc comme ça, ou comme ça.
Après avoir mis tout ça en place, je trouvais dommage de ne pas pouvoir continuer l'intégration jusqu'au bout : repérer un message d'erreur dans des logs et transformer l'écran de monitoring en sapin de Noël.

En fait, c'était déjà possible, j'avais juste raté l'information !

Préambule

Ce dont je vais parler dans la suite du billet nécessite d'avoir déjà la stack Loki + Promtail + Grafana + Prometheus + Alert-manager. Ça demande un peu d'huile de coude et de temps mais ça s'installe très bien.

Les Pipelines

Promtail, comme tout exporter, expose des metrics de toute sorte. De base, il fait des choses simples, mais avec les Pipelines, on peut pousser le truc plus loin : ajouter le timestanp à une ligne de log, modifier des labels, ajouter clairement le numéro de ligne du log et, on y est, créer une metric custom !

Créer une metric custom

On va commencer par un exemple très simple :
scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log/*log
      hostname: diaspodon.fr
  pipeline_stages:
  - match:
      selector: '{job="varlogs"}'
      stages:
      - regex:
          expression: ".*(?P<error_message>error_message.*)"
      - metrics:
          error_total:
            type: Counter
            description: "total count of errors"
            source: error_message
            config:
              action: inc
Ceci est une partie de la configuration du Promtail en place sur mon serveur Mastodon. Ce n'est pas la plus propre du monde mais ça fera l'affaire.

Le job

On y voit la configuration qui permet de remonter les logs système de /var/log/*.log avec le label varlogs et un hostname forcé :
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log/*log
      hostname: diaspodon.fr

Le pipeline

On enchaîne ensuite avec le fameux pipeline, que je vais présenter en deux parties : le selector et les metrics 

- La partie selector
  pipeline_stages:
  - match:
      selector: '{job="varlogs"}'
      stages:
      - regex:
          expression: ".*(?P<error_message>error_message.*)"
Le selector permet de s'y retrouver. On va aller chercher à bidouiller les logs du job varlogs, pas ailleurs. Le stage permet de mettre en place une expression régulière en RE2, la version Google est regexp, pour filtrer l'information dont on a besoin.
Ici, je veux qu'une action soit déclenchée à chaque fois que error_message apparaît dans les logs. Celles et ceux qui ont une instance Mastodon savent de quoi je parle. Pour les autres, c'est quand un message ne peut pas atteindre son destinataire. C'est très courant.

- La partie metrics

Pour finir, la partie metrics est carrément celle qui nous intéresse le plus : elle va, comme son nom l'indique, créer une metric qui sera remontée à Prometheus.
      - metrics:
          error_total:
            type: Counter
            description: "total count of errors"
            source: error_message
            config:
              action: inc
On va lire la configuration lentement : La variable error_total sera de type Counter avec la description "total count of errors" et sera alimentée par error_message, défini dans la regexp précédente (entre les <>). De 0, la variable sera incrémentée de 1 à chaque match.

Prometheus

Vérifier la configuration

Vous voyez le truc ? On vient de mettre en place une metric custom qui sera remontée par Promtail vers Prometheus. À l'heure où j'écris ces lignes, cette metric ressemble à ça :
root@diaspodon ~ # curl -s http://localhost:9080/metrics   | grep custom
# HELP promtail_custom_error_total total count of errors
# TYPE promtail_custom_error_total counter
promtail_custom_error_total{filename="/var/log/daemon.log",hostname="diaspodon.fr",job="varlogs"} 92831
promtail_custom_error_total{filename="/var/log/syslog",hostname="diaspodon.fr",job="varlogs"} 50050
On retrouve bien la metric déclarée dans Promtail : error_total, avec son nom complet : promtail_custom_error_total.

Vous me direz que ce n'est pas très joli et vous aurez parfaitement raison. C'est un exemple, juste un exemple !

Mettre en place de l'alerting

Maintenant que vous avez des données dans Prometheus, rédiger une règle d'alerting est assez simple. On devrait s'en sortir avec ce type de chose :
  - alert: Error_total
    expr: promtail_custom_error_total > 1
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "Instance {{ $labels.instance }} is invaded by custom errors!"
Simple, rapide, efficace. Si une erreur apparaît, elle sera repérée et une alerte sera déclenchée. Y'a plus qu'à faut qu'on vérifier que votre installation spamme correctement les développeurs pour les mettre sur le coup rapidement.

Pour aller plus loin

Je viens de rapidement parcourir le sujet pour vous donner envie d'y mettre le nez. En l'état, la configuration proposée a un gros problème : une fois qu'une erreur est détectée, le Counter sera incrémenté et rien ne lui permettre de revenir à 0. C'est assez chiant.

J'ai deux façons de contourner le problème : la première avec les développeurs, la deuxième avec ses seuls moyens.

Si les développeurs sont adorables, ils peuvent mettre en place un petit bout de code qui va écrire dans les logs que tout est revenu à la normale. En passant du Counter à une Gauge, on peut dire à Promtail d'incrémenter la metric quand un souci est détecté puis de la décrémenter quand tout redevient fonctionnel. Ça permet de jongler entre 0 et 1 et pas plus.

Par contre, si vous êtes tout seul, vous pouvez tricher en décidant de mettre en place une règle d'alerting qui fait un rate() sur 1h, ou la durée que vous voulez, pour avoir des passages à vide et des périodes de souci. Ça permet d'éviter de passer d'un Counter à une Gauge mais ça demande à mettre un délai de retour au calme long et d'être assidu sur les chan/salon/mail d'alerting.

Bref, c'est encore un point sur lequel je réfléchis. Si vous avez des idées, je prends.

Enfin voilà.

Des bisous

Ajuster le Nextcloud de son Turris Mox

Rédigé par dada / 12 août 2019 / 3 commentaires



Un Turris Mox ?

Pour celles et ceux qui ne sauraient pas ce que c'est, je vous redirige par ici. Je vous balance directement le lien vers la description de sa version cloud parce que c'est celle que j'ai prise. L'objectif ? Arrêter d'héberger mes données sur des serveurs tiers et revenir à un vrai auto-hébergement pour toute ma partie données perso. Ce blog et les autres outils resterons dans les nuages.

Nextcloud

L'intégration de Nextcloud dans le TurrisOS, la variante d'OpenWRT présente dans le Mox, ne vient pas avec toutes les petites configurations qui vont bien. Voici une rapide liste des choses à modifier ou corriger pour que tout se passe au mieux.

Remarque

Notez que le Mox est un petit appareil aux performances modestes. Il comblera sans trop de problème mes besoins perso, en tant qu'utilisateur unique de mon instance, mais n'espérez réussir à gérer convenablement plusieurs utilisateurs actifs en même temps.

Les modifications

  • Variables d'environnement
vim /etc/php7-fpm.d/www.conf 
Vous y trouverez ces variables commentées, enlevez le point-virgule qui traîne devant :
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
  • PHP Memory limit
La configuration de PHP-FPM vient avec un memory_limit de 384M quand Nextcloud en réclame 512 pour bien fonctionner. Pour corriger le tire, allez modifier la valeur dans /etc/php.ini pour remplacer 384 par 512 :
memory_limit = 512M
Et redémarrer le PHP-FPM :
/etc/init.d/php7-fpm restart
  • Opcache
Ajoutez la conf Opcache qui va bien dans /etc/php.ini :
opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
  • Lighttpd
Le serveur web choisi par TurrisOS est Lighttpd. Sachez qu'il est possible d'installer Nginx pour le remplacer mais comme c'est la configuration par défaut, j'ai décidé de le laisser là.

Pour corriger les erreurs de well-known, ajouter les lignes qui manquent dans /etc/lighttpd/conf.d/nextcloud.conf :
alias.url += ( "/nextcloud" => "/srv/www/nextcloud" )

$HTTP["url"] =~ "^/nextcloud/(build|tests|config|lib|3rdparty|templates|data)" {
     url.access-deny = ("")
}

# Redirect Cal/CardDAV requests to Nextcloud endpoint:
url.redirect = (
    "^/.well-known/caldav"  => "/nextcloud/remote.php/dav",
    "^/.well-known/carddav" => "/nextcloud/remote.php/dav",
"^/.well-known/webfinger" => "/nextcloud/public.php?service=webfinger"

)
Et redémarrez le service :
/etc/init.d/lighttpd restart
  • Memcache
Pour le moment, je n'ai pas trouvé comment faire pour mettre en place un système de cache honorable pour améliorer les performances générales de Nextcloud. Il n'y a pas, dans les dépôts officiels de TurrisOS, de paquet php-redis ou encore php-memcached. Du coup, pas de cache.


Loki : jouer avec ses logs dans Grafana

Rédigé par dada / 18 juin 2019 / 5 commentaires



Le 3 juin dernier est sortie la première version beta de Loki : la v0.1.0. J'attendais cette première version depuis un bon moment ! Depuis le FOSDEM, pour être précis. Grand fan de la stack Prometheus / Grafana, je bavais d'impatience de pouvoir mettre les mains dans un système d'agrégation de logs directement dans Grafana. On y est alors regardons comment ça se passe !

Loki

Loki se comporte comme Prometheus : c'est un logiciel que vous allez installer sur votre machine qui sert pour le monitoring de votre infrastructure et le laisser vivre sa vie. Comme son mentor, ou presque, il va falloir lui associer des exporters pour le gaver de données : Promtail.

Installation

Pour le moment, je me sers de Loki dans un conteneur docker, parce que c'est marrant et parce que voilà. Pour le faire tourner comme j'en ai envie, j'ai besoin de deux fichiers :

- le Dockerfile
FROM grafana/loki

COPY local-config.yaml /etc/loki/local-config.yaml

CMD ["/bin/loki", "-config.file=/etc/loki/local-config.yaml"]
- Les conf dans local-config.yaml :
auth_enabled: false

server:
  http_listen_port: 3100

ingester:
  lifecycler:
    address: 127.0.0.1
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
  chunk_idle_period: 15m

schema_config:
  configs:
  - from: 2018-04-15
    store: boltdb
    object_store: filesystem
    schema: v9
    index:
      prefix: index_
      period: 168h

storage_config:
  boltdb:
    directory: /tmp/loki/index

  filesystem:
    directory: /tmp/loki/chunks

limits_config:
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h

chunk_store_config:
  max_look_back_period: 0

table_manager:
  chunk_tables_provisioning:
    inactive_read_throughput: 0
    inactive_write_throughput: 0
    provisioned_read_throughput: 0
    provisioned_write_throughput: 0
  index_tables_provisioning:
    inactive_read_throughput: 0
    inactive_write_throughput: 0
    provisioned_read_throughput: 0
    provisioned_write_throughput: 0
  retention_deletes_enabled: false
  retention_period: 0

Il n'y a pas grand-chose à raconter sur ces deux fichiers. J'ai volontairement réduit le Dockerfile au strict minimum puisque je ne m'en sers que pour copier la configuration de Loki directement dans le conteneur, histoire de réduire la liste des paramètres à son lancement.

Exécution

Pour lancer Loki, on va taper ça dans son terminal :
docker run -d -p 3100:3100 loki
Si tout s'est bien passé, vous devriez avoir un conteneur qui vous répond des politesses :
root@monito:~# curl 127.0.0.1:3100
404 page not found
C'est normal. Par contre, si vous avez autre chose, c'est pas normal.

Maintenant que Loki tourne comme un grand, il faut bien comprendre qu'il ne sert à rien sans son comparse Promtail.

Promtail

Installation

Pour installer Promtail, on va faire exactement comme avec Loki : un conteneur simple avec un peu plus de paramètres au lancement.

- Le Dockerfile :
FROM grafana/promtail

COPY docker-config.yaml /etc/promtail/docker-config.yaml

ENTRYPOINT ["/usr/bin/promtail", "-config.file=/etc/promtail/docker-config.yaml"]
- La conf dans docker-config.yaml :
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://IP_SRV_LOKI:3100/api/prom/push

scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log/*log
Si vous avez le coup d’œil, vous devriez avoir remarqué que cette configuration ressemble furieusement à celle de Prometheus : surtout la partie scrape_configs. On y retrouve la conf des jobs, les targets, labels, etc.
Remarquez qu'ici, vous devez remplacer IP_SRV_LOKI par l'IP du serveur sur lequel vous avez effectivement lancé Loki.
Ici, Promtail va aller gratter tous les fichiers locaux se terminant par log dans le répertoire /var/log/ le tout en les classant dans le job system avec le label varlogs.
Locaux, vous dites ? Mais nous sommes dans un conteneur : par quelle magie est-ce possible ? En jonglant avec les volumes !

Exécution

On build le conteneur :
docker build -t promtail .
Dans ce cas simple, on peut lancer Promtail comme ceci :
docker run -d -p 9095:9095  -v /var/log:/var/log promtail
Voyez qu'on monte les logs locaux de la machine dans le conteneur, les rendant accessibles à Promtail. N'hésitez pas à jouer de exec -it pour vérifier qu'ils sont bien là.

On se retrouve avec un Loki capable d'être gavé et d'un Promtail qui, pour le coup, gave Loki. Chouette.

Grafana

Maintenant que les bases sont en place, allons dire à Grafana de nous afficher tout ça. Si, comme moi, Grafana tourne sur la même machine que Loki, ça va être facile. Il faut ajouter un nouveau Data Source local : http://localhost:3100.

Une fois que c'est fait, foncez jouer dans la rubrique Explore et faites votre sélection ! Bon, pour le moment, vous n'avez que les logs system d'une seule machine, mais c'est déjà ça. Si je vous montre le graphique des logs Nginx de ma machine principale, vous avez ce genre de chose :


Si vous affichez cette capture d'écran en grand, vous devriez bien remarquer le manque de sérieux dans quelques-unes de mes configurations (rien de grave, rassurez-vous). On y voit du gris, du vert et du rouge.

Non, vous n'aurez pas les logs à proprement parler mais faites moi confiance, ils s'entassent en dessous.

L'affichage des logs est manipulable avec le Log Stream Selector. Ce machin permet de filtrer l'affichage simplement. Dans mon exemple, remarquez que je sélectionne le job nginxlogs et le hostname de ma machine.
Vous pouvez aussi filtrer le contenu même des logs, le texte en gros, mais je vais vous laisser chercher par vous-même.

Si vous avez vraiment le coup d’œil, dans la configuration de Promtail que je vous propose juste au dessus, il n'y a pas de hostname, ni de log Nginx d'ailleurs.

Pour que ça marche chez vous, vous devez déjà monter le répertoire de log de Nginx dans le conteneur et utiliser cette configuration :
- job_name: nginx
  static_configs:
  - targets:
      - localhost
    labels:
      job: nginxlogs
      __path__: /var/log/nginx/*log
      hostname: b2d
Vous pouvez l'ajouter à la suite de ce que je propose déjà, ça vous fera déjà plus de logs à parcourir !

Bref. Afficher des logs dans Grafana, c'est chouette, mais Loki ne permet heureusement pas que ça sinon il n'y aurait aucun intérêt à parler d'un truc pas encore terminé.

Loki et Prometheus

Avoir un Loki en parallèle d'un Prometheus, ça permet de coupler la puissance des exporters Prometheus avec les logs pompés par Loki. Et ça, c'est beau ! Comment ? En cliquant sur "split" pour partager l'écran de Grafana en choisissant Loki d'un côté et Prometheus de l'autre.

En image ça donne quelque chose comme ça :


Ce qu'on y voit ? La corrélation entre les logs Nginx et le load de la machine. Bon, certes, ce n'est pas foufou mais je n'avais pas d'exemple super pertinent à vous montrer. Quoi qu'il en soit, cette combinaison Loki/Prometheus vous permet de mettre en image ce que vous voulez et ainsi réagir comme il faut, le tout avec un peu de PromQL et des filtres.

Deux yeux, un affichage unifié, c'est franchement cool. Et je ne vous parle pas encore de l'extase si vous avez bien fait l'effort de faire correspondre les labels entre les deux outils...!

Perso, je trouve ça absolument génial et j'ai hâte de continuer à approfondir ma maîtrise de ces beautés !

Le Fédiverse pour les Nuls

Rédigé par dada / 10 mai 2019 / 8 commentaires



Le Fédiverse ?

Fédiverse est un mot-valise issu de l'association de deux idées : fédération et univers. On imagine donc que Le Fédiverse est une fédération regroupant un certain nombre de services. Vous trouvez cette histoire de fédération un peu vague ? Pourtant, vous en connaissez, des grandes fédérations : les États-Unis, la Suisse ou encore l'Inde. Ces pays sont composés de plus petites structures, que ce soit des États pour les USA et l'Inde ou des Cantons pour la Suisse. À l'intérieur de l'État fédéral, ces petites structures se mettent d'accord pour vivre ensemble malgré leurs différences et particularismes.

Comment ?

Si nous filons cette histoire de Fédération, il faut trouver qui est l'État fédéral et quelles en sont les petites structures qui le composent, non ? Allons-y !

L'État fédéral

Pas d'État fédéral chez nous, juste une histoire de langue commune : l'ActivityPub. Ce nom étrange désigne le moyen de communication commun utilisé par les petites structures du Fédiverse. Les amerloques parlent anglais, les membres du Fédiverse parlent ActivityPub. Les membres de la fédération se parlent en utilisant ce truc que les techniciens n'appellent pas langue mais API.

Les petites structures

Le Fédiverse est composé d'une multitude de serveurs. Ces serveurs sont des ordinateurs dédiés à une simple tâche : faire tourner un logiciel parlant l'ActivityPub. Ces logiciels peuvent être Mastodon, Pixelfed, Peertube ou encore Prismo. Ce faisant, ils deviennent ce qu'on appelle des instances. L'appellation instance recouvre ces histoires de serveur et de logiciel.

Une instance ?

Ces instances sont les petits bouts de l'État fédéral. Elles sont indépendantes tout en étant d'accord pour fonctionner sur les principes communs qu'établit ActivityPub.

Une instance est principalement composée de 3 choses :
  • un nom
  • un logiciel du Fédiverse
  • une équipe de modération
Dans le cas de mon instance Mastodon, elle s'appelle diaspodon.fr, elle fait tourner Mastodon et nous sommes deux à la gérer :
Cela suffit à en faire un bout du Fédiverse. En vous créant un compte à travers diaspodon.fr, vous entrez dans le monde merveilleux du Fédiverse.

Le fonctionnement

Pour comprendre le fonctionnement du Fédiverse, il faut pouvoir le comparer à quelque chose. On va s'amuser à comparer la vie d'un message sur les vieux réseaux (Facebook, Twitter, Instagram, etc) et dans le Fédiverse.

Un message

Chez les anciens, voici en gros, ce qui se passe quand vous publiez un message :
  1. Vous publiez un message
  2. Il est analysé
  3. Sa pertinence est évaluée
  4. Il sera affiché en fonction de sa pertinence
Dans cet ancien monde, un message n'est jamais affiché sous le nez de la totalité des utilisateurs. Il passera systématiquement par les fourches caudines d'un algorithme avant de débarquer quelque part. Certains le verront dans leur timeline, d'autres non.

Un message envoyé dans le Fédiverse n'est pas soumis à l'étape pertinence. Un message publié est un message publié pour l'intégralité des utilisateurs connus de votre instance. À condition d'avoir décidé de le partager publiquement. Si c'est privé, c'est privé.

La découverte

Les utilisateurs connus, vous dites ? Oui. Le Fédiverse étant un réseau décentralisé et en constante croissance, il vous est techniquement difficile de toucher tout le monde. Vous allez arroser large, rassurez-vous. Point de pertinence, certes, mais pas d'interaction systématique entre tous les utilisateurs. Je m'explique :
  • Une instance connaît naturellement tous ses utilisateurs
  • Un utilisateur connaît tous les utilisateurs de son instance
Pour interagir avec les membres d'une autre instance, il faut fatalement les connaître.

Une façon simple de comprendre cette notion est d'imaginer le Fédiverse comme un monde à explorer dans lequel chaque utilisateur peut découvrir un bout du globe et ainsi le partager à ses amis. Plus les gens échangent entre eux, plus la carte est précise. Du bouche à oreille, en gros.
Pour les joueurs de RTS en multi, on peut expliquer ça comme une sorte de brouillard de guerre qui disparaît au fur et à mesure que les copains avancent leurs unités.

Local, global.

Par exemple, dans Mastodon, cette histoire est illustrée par 2 notions :
  • le fil public local qui regroupe les messages des utilisateurs de votre instance.
  • la fil public global qui regroupe les messages des comptes découverts par les utilisateurs de votre instance.
Ça peut paraître compliqué à cerner mais ces notions n'ont d'intérêt que si vous décidez de créer votre propre instance. En en rejoignant une existante, vous n'aurez pas grand chose à faire. Au pire, vous vous laissez porter par son activité, au mieux, vous enfilez le chapeau d'Indiana Jones et tentez de découvrir les rares comptes qui vous échappent.

Mes comptes dans le Fédiverse

Une erreur à ne pas commettre serait de croire que tous les services du Fédiverse sont accessibles depuis un seul et unique compte.
Si vous voulez vous servir de Mastodon, il vous faudra un compte Mastodon, si vous voulez publier des photos dans Pixelfed, il vous faudra un compte Pixelfed, etc.
Par contre, les interactions ne demandent pas d'avoir un compte dans chacun des services. Voyez par vous-même en allant lire les commentaires de cette vidéo postée dans une instance Peertube : les commentaires proviennent de plusieurs endroits différents (Mastodon, Peertube, etc).

C'est là qu'on découvre le plaisir d'être dans ce monde merveilleux : imaginez une seconde pouvoir commenter une vidéo Youtube depuis votre compte Facebook ou Twitter ? Chez eux, c'est mort, chez nous, c'est naturel.

Les poids lourds ?

Maintenant que vous voyez un peu à quoi correspond le Fédiverse, parlons rapidement des poids lourds. Je vais vous faire ma liste des services qui m'intéressent. Il y en a plein d'autre mais comme je ne m'en sers pas, je ne vais pas en parler.

Mastodon

Masto, c'est le patron du Fédiverse. Vous en avez sans doute entendu parler puisqu'il revient régulièrement dans la bouche des journalistes qui commentent l'actualité calamiteuse autour de Facebook ou de Twitter. C'est une alternative à Twitter fiable, efficace et qui fait du bien à votre vie privée.

Pixelfed

Lui, c'est encore un petit jeune. Même s'il a fêté sa première bougie récemment, c'est une belle alternative à FacebookInstagram. Tout n'est pas encore parfait, mais comme j'en suis fan, je vous en parle.

Peertube

Le patron francophone du Fédiverse. C'est une superbe alternative à Youtube, de temps en temps utilisé par des youtubeurs quand une vidéo est éjectée de Youtube, mais pas seulement. Mention spéciale pour les instances de Datagueule, de Thinkerview ou encore Skeptikon.

Les limites

Le Fédiverse est un monde merveilleux dans lequel beaucoup de choses sont permises, mais pas toutes. Mastodon est actuellement le cœur de ce monde. De fait, beaucoup de services s'articulent autour de lui. Ils restent indépendants, il ne faut pas en douter, mais seul Mastodon permet actuellement d'interagir avec tout ce beau monde.

Ci-dessous, un même message Pixelfed vu chez Mastodon et chez Pixelfed.
    

Dans ce cas, l'image provenant de Pixelfed arrive bien dans Mastodon. L'inverse n'est pas vrai : une image postée dans Mastodon n'arrivera pas dans Pixelfed. De même que vous ne pourrez pas commenter un message provenant de Mastodon avec votre compte Prismo.

Comment y entrer ?

Bref. Ces petites exceptions sont assez nombreuses. Votre participation au Fédiverse sera conditionnée par l'activité que vous allez y avoir. Partagez des photos ? Mastodon ou Pixelfed ! Publiez des vidéos ? Peertube ! Prenez bien le temps de réfléchir à ce que vous voulez y faire.

Prenez aussi le temps de réfléchir à la situation de l'instance que vous allez choisir : la bonne idée est de choisir des instances gérées par des associations connues ou par des personnes qui sont actives dans le milieu.
Rien ne serait plus frustrant que d'arriver quelque par pour voir le serveur et son compte disparaître sans raison quelque semaine plus tard.

Je m'arrête là. Il y aurait encore beaucoup de choses à dire sur la nature fédérée du Fédiverse mais ce billet deviendrait trop long. Je ne peux que vous encourager à venir partager des infos, des photos ou encore des idées dans le Fédiverse. On n'a plus le temps de tout lire, mais on en veut encore.

Des bisous