Nos connecteurs Sōzu Open Source

bannière Sozu
Clever Cloud est aujourd'hui le principal développeur de Sōzu, un Reverse Proxy qui a été créé par nos soins, en Rust, pour répondre aux besoins de notre infrastructure en termes de performance et de rechargement à chaud.

Clever Cloud est aujourd’hui le principal développeur de Sōzu, un Reverse Proxy créé par nos soins, en Rust, pour répondre aux besoins de notre infrastructure en termes de performance et de rechargement à chaud. Sōzu est utilisé sur tout le périmètre Clever Cloud, associé à HAProxy, pour acheminer le trafic vers les applications de nos clients.

Ce que nous faisions :

Jusqu’à présent, notre Reverse Proxy Sōzu était géré dans Clever Cloud à l’aide d’un programme propriétaire exécuté sur la même machine et assurant deux grandes responsabilités :

  • Premièrement, écouter un topic RabbitMQ et rediriger les requêtes vers Sōzu (via sa socket UNIX).
  • Deuxièmement, surveiller un dossier PKI (Public Key Infrastructure) pour rediriger les certificats TLS vers Sōzu (via sa socket UNIX).

Virage open source

Alors que nous travaillions sur un nouveau connecteur Prometheus pour Sōzu, nous nous sommes rendus compte que nous pouvions le rendre open source. C’est ainsi qu’est née l’idée de porter l’ancien gestionnaire de Sōzu (décrit ci-dessus) de son état propriétaire vers de nouveaux dépôts Open Source.
Notre objectif final est de développer un écosystème entièrement open-source autour de notre reverse proxy Sōzu.
Ce billet de blog décrit ces nouveaux composants open source et résume ce qu’ils font.

Notre écosystème Open Source autour de Sōzu

Connecteur Sōzu Prometheus

Prometheus est une suite logicielle de surveillance et d’alerte.
Ce connecteur simple fonctionne parallèlement à Sōzu. Il écoute les requêtes HTTP sur la route /metrics, demande à Sōzu ses métriques, les formate pour qu’elles soient compatibles avec Prometheus et les envoie dans la réponse HTTP.
Cela signifie que les métriques Prometheus sont facilement disponibles sur l’adresse IP d’une machine Sōzu.

Connecteur Sōzu Pulsar

Apache Pulsar est une plateforme de messagerie hautement évolutive. Nous l’apprécions chez Clever Cloud en raison de son aspect distribué et de ses performances de pointe en matière de débit.
Le connecteur Sōzu Pulsar s’abonne à un topic Pulsar et transmet des messages à Sōzu. Sōzu utilise ces messages pour effectuer un chargement à chaud sur le proxy, cette fonction est une caractéristique clé de notre Reverse Proxy.
Pour tout utilisateur de l’écosystème Sōzu, cela signifie que ce connecteur permet de mettre à jour la redirection du trafic en temps réel.

Connecteur Sōzu PKI

PKI signifie Public Key Infrastructure (infrastructure à clé publique), un cadre de sécurité omniprésent sur l’internet, généralement utilisé pour sécuriser les connexions avec HTTPS (entre autres). Dans le cadre du PKI, Sōzu fonctionne comme une terminaison TLS : il déchiffre le trafic HTTPS en trafic HTTP.
Le connecteur PKI de Sōzu fonctionne parallèlement à ce dernier, surveille un répertoire donné du système de fichiers, lit les certificats TLS qui y ont été placés par l’homme ou la machine et les transmet à Sōzu.
En résumé, cela signifie que si l’on écrit un certificat TLS sur la machine, Sōzu l’aura.

Client Sōzu

C’est une librairie utilisée par tous les connecteurs pré-cités. Elle poole les connections à la socket UNIX de Sōzu, et fonctionne de façon entièrement asynchrone. En somme, elle permet d’écrire de nouveaux connecteurs facilement.

Et la suite ?

La meilleure chose que nous puissions souhaiter serait que la communauté open-source se joigne à nous pour utiliser et améliorer Sōzu au fur et à mesure.

Nous espérons ainsi à terme construire une interface web pour gérer une instance de Sōzu dans le navigateur.

Blog

À lire également

Notre nouvelle interface de logs est disponible en bêta publique

Notre nouvelle interface de logs est désormais disponible en bêta publique, venez la tester dès aujourd'hui !
Entreprise

Métriques : archiver des milliards de points chaque mois

Les métriques sont essentielles à notre fonctionnement. Avec une croissance de 2 To/semaine, il nous a fallu trouver une solution d'archivage automatisée.
Engineering

Déployer depuis GitLab ou GitHub

Déployer depuis GitHub ou GitLab vers Clever Cloud et peaufiner vos CI/CD.
Engineering