Aller au contenu principal

La famille Clustron

Clustron, ce sont deux produits, pas un seul. Cet article cartographie la famille : ce qu'est chaque produit, le problème dont il a la charge, comment ils se composent et comment choisir celui dont vous avez besoin.

En un coup d'œil​

Chaque produit évolue en version de façon indépendante, et chacun résout un problème distinct. Zaris est le produit phare qui compose Nodus et superpose la sécurité et les métriques.

ProduitRôle en une ligneFamille de packagesVersionAutonome ?
ZarisStore clé-valeur distribuéClustron.Zaris.*2.0.0Produit phare — compose Nodus
NodusCœur de clustering et de messagerieClustron.Nodus.*2.0.0Oui

Zaris épingle la version exacte de Nodus avec laquelle il a été construit et testé, de sorte que vous consommez un ensemble cohérent plutôt que de réconcilier vous-même des pièces mouvantes.

Ce dont chaque produit a la charge​

Les deux produits se répartissent proprement l'espace des problèmes des systèmes distribués. Chaque section énonce la question à laquelle ce produit répond.

Nodus — « qui est dans le cluster, et qui commande ? »​

Nodus est un cœur léger de clustering et de messagerie. Un processus qui le référence peut :

  • Rejoindre un cluster pair à pair à partir d'un ensemble de pairs statique ou fourni dynamiquement, les adhésions et départs étant exposés sous forme d'événements.
  • Élire un leader avec des stratégies enfichables de type bully (identifiant le plus élevé, nœud le plus ancien), un compteur d'époque et un départageur fourni par l'application.
  • Envoyer des messages typés en point à point ou à l'échelle du cluster, y compris en requête/réponse, sur du TCP pipeliné avec MessagePack sur le fil.
  • Publier et s'abonner à des événements à l'échelle du cluster sur un bus typé distinct de la messagerie directe.
  • Détecter les défaillances par surveillance de battements de cœur (heartbeats), accessibilité par pair et une fenêtre de suspicion avant éviction.
  • Transporter un condensé de gossip sur le trafic de battements de cœur sans exécuter un second protocole.

Il remplace le rôle que tiendraient ZooKeeper, etcd ou Consul — mais sous forme de bibliothèque in-process, sans rien d'externe à exécuter.

Zaris — « où vit l'état partagé ? »​

Zaris est le store clé-valeur distribué qui compose le clustering en un produit que vous exécutez, avec la sécurité et les métriques intégrées :

  • Plan de données : stockage clé-valeur en mémoire, partitionné et répliqué, avec transactions, observateurs (watches), baux, verrous distribués, compteurs atomiques et TTL.
  • Plan de contrôle : un service de gestion et une console web pour créer des stores, placer et mettre à l'échelle des nœuds et observer le cluster.
  • Le clustering vient de Nodus. La sécurité est intégrée — TLS mutuel, jetons porteurs (bearer tokens) vérifiés hors ligne, et contrôle d'accès basé sur les rôles (RBAC) qui refuse par défaut. L'observabilité est intégrée — métriques glissantes par seconde enregistrées à faible coût sur le chemin critique et exportées via OTLP.
  • Deux façons d'exécuter : in-process (embarqué, zéro serveur — idéal pour le développement et les tests) ou distant (un véritable cluster multi-nœuds).

La composition, concrètement​

Lorsque vous exécutez un cluster Zaris sécurisé, le schéma montre ce qui se passe lors d'une requête unique.

Lors d'une requête sécurisée, un client envoie une opération et un jeton porteur sur TLS à un nœud Zaris ; la couche de sécurité l'autorise hors ligne, Nodus route vers la partition propriétaire et le moteur de métriques enregistre l'appel, tandis que Zaris l'applique au plan de données et renvoie le résultat.

  • Nodus a décidé quel nœud possède la clé et a maintenu à jour l'appartenance et le leadership du cluster sous tout cela.
  • La couche de sécurité a décidé si l'appelant était autorisé, sans saut réseau.
  • Le moteur de métriques a enregistré que cela s'est produit, à faible coût, sur le chemin critique.
  • Zaris a assemblé le tout et renvoyé le résultat.

Nodus est utile de façon autonome à part entière — Zaris est simplement l'endroit où le clustering, la sécurité et les métriques sont déjà câblés ensemble et durcis.

Comment choisir​

Choisissez selon le problème que vous avez réellement.

Si vous devez…UtilisezN'allez pas chercher
Stocker des données partagées entre instances, ou un cache distribuéZarisNodus seul (ce n'est pas un store)
Élire un leader / détecter des défaillances de nœuds / envoyer des messages aux pairsNodusZaris (sauf si vous avez aussi besoin de stockage)
Un store distribué qui dispose déjà de la sécurité + des métriques câbléesZarisAssembler les pièces à la main
astuce

Une règle empirique utile : si votre besoin mentionne « données » ou « cache », commencez par Zaris ; sinon, commencez par Nodus. Vous pouvez toujours ajouter l'autre plus tard — c'est tout l'intérêt de la famille.

Licence et compatibilité​

La famille partage un même ensemble de cibles de plateforme et de règles de versionnage.

  • Cibles : les bibliothèques de base de chaque produit ciblent netstandard2.0, de sorte qu'elles s'exécutent sur .NET Framework 4.8 et .NET 8+. Les adaptateurs, les hôtes et les exporteurs ciblent net8.0.
  • Fil et sérialisation : Nodus utilise du TCP pipeliné avec MessagePack ; Zaris utilise son propre protocole binaire de plan de données avec des garanties de compatibilité sur le fil entre versions.
  • Versionnage indépendant : chaque produit sort à sa propre cadence. Lorsque vous consommez Zaris, son package épingle la version testée de Nodus, de sorte que vous consommez un ensemble cohérent plutôt que des pièces mouvantes.

Étapes suivantes​