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.