Back to sh0
sh0

Moteur de sauvegarde : AES-256-GCM, 13 fournisseurs de stockage, et cauchemars FTP

Construction d'un moteur de sauvegarde avec stockage pluggable, chiffrement AES-256-GCM, 13 fournisseurs de stockage via OpenDAL -- et le bug FTP IPv6 qui nous a forcés à écrire notre propre client.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 2 min sh0
EN/ FR/ ES
backupencryptionstorageopendalftps3rustdevops

Il existe une classe particulière de défaillance d'infrastructure qu'aucun tableau de bord de monitoring ne peut prévenir : celle où vos données cessent tout simplement d'exister. Un disque corrompu. Une migration ratée. Un DROP TABLE exécuté en production à 2 heures du matin par quelqu'un qui pensait être en staging. La seule défense est les sauvegardes, et les sauvegardes ne valent que par le stockage sur lequel elles atterrissent et le chiffrement qui les protège.

Nous avons construit le moteur de sauvegarde de sh0 avec trois priorités : le chiffrement par défaut (AES-256-GCM), le stockage pluggable (13 fournisseurs via OpenDAL), et la planification automatisée avec politique de rétention. Puis FTP a presque tout cassé.

Le moteur supporte les sauvegardes de base de données (PostgreSQL, MySQL, MongoDB, Redis, MariaDB) et les sauvegardes de volumes, avec chiffrement optionnel au repos et upload vers le stockage configuré.

OpenDAL nous a donné 13 fournisseurs de stockage (S3, GCS, Azure Blob, local, SFTP, etc.) à travers une seule interface Rust. Mais FTP/FTPS s'est avéré être un cauchemar -- un bug d'incompatibilité IPv6 dans la bibliothèque FTP nous a forcés à écrire notre propre client FTP minimal.


Prochain dans la série : Autoscaling en Rust : seuils CPU, cooldowns et répartition de charge.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude deblo

Le jour où Déblo a refusé une bonne réponse — deux fois

Une trace de production a montré Déblo K12 rejetant deux fois de suite la bonne réponse d’un élève de Terminale. Huit heures d’analyse, quatre commits, une rotation A/B de modèles et un benchmark sur 6 modèles plus tard, le tuteur de maths était corrigé. Ce qui a cassé, ce que nous avons changé, et ce que l’échec surprenant de GPT-5.4-mini au test socratique nous a appris sur le choix des modèles pour l’IA éducative.

32 min May 3, 2026
debloclaude-opus-4.7claude-codemethodology +14
Thales & Claude deblo

Web Claude a trouvé le bug. Puis il a failli l’aggraver.

Comment un prompt vocal de 270 lignes pour le tuteur Ultravox de Deblo produisait la même phrase d’accueil scriptu00e9e à chaque appel. Web Claude a diagnostiqué le problème parfaitement, puis a prescrit une correction qui aurait doublé la taille du prompt avec des hooks backend inexistants. Le filtre qui a gardé le diagnostic et rejeté la prescription.

17 min Apr 28, 2026
debloclaude-opus-4.7methodologyprompt-engineering +7
Thales & Claude deblo

Pourquoi j’ai dû corriger Web Claude deux fois sur la stratégie de la page d’accueil de Deblo

Comment une conversation de 48 heures avec Web Claude a failli entraîner Deblo dans le piège généraliste « ChatGPT pour l’Afrique », et pourquoi la connaissance du marché par le fondateur a dû prendre le dessus sur les suggestions stratégiques de l’IA à deux reprises.

26 min Apr 26, 2026
debloclaude-opus-4.7methodologystrategy +6