Sauvegardes et restauration
Une sauvegarde non testée n’est pas une sauvegarde. Remizo teste ses restaurations automatiquement.
Périmètre
Section intitulée « Périmètre »| Type | Contenu | Fréquence |
|---|---|---|
pg_full |
base PostgreSQL du workspace, sauvegarde complète | selon fullCron (par exemple chaque nuit) |
pg_wal |
archivage continu des WAL | toutes les 60 s → restauration à la minute près |
hub_pg |
base du hub mo_hub |
tâche backups.hub |
keycloak |
export des realms studio et admin |
tâche backups.keycloak |
openbao |
export chiffré des secrets | tâche backups.openbao |
silo |
miroir incrémental du bucket mo-<slug> (coupons, exports) |
avec la complète |
Objectifs : RPO 1 minute (WAL), RTO 15 minutes (restauration testée chaque semaine).
Destination
Section intitulée « Destination »Une instance Silo dédiée (silo-backups), distincte du stockage applicatif, avec Object Lock en mode conformité : une
sauvegarde ne peut être ni modifiée ni supprimée avant la fin de sa rétention, même par un administrateur. L’instance est
déplaçable sur une autre machine. Bucket mo-backups, préfixe <slug>/<type>/<aaaa>/<mm>/.
Politique par workspace
Section intitulée « Politique par workspace »Console → workspace → Sauvegardes → Politique (PUT /workspaces/{ws}/backups/policy) :
fullCron: planification de la complète ;continuous: archivage WAL activé ;- rétention :
pitrDays(points de restauration à la minute, par exemple 7 jours),dailyDays,weeklyWeeks(4),monthlyMonths(12) ; restoreTestCron: fréquence du test de restauration automatique ;- alertes : âge maximal de la dernière sauvegarde réussie (
maxAgeHours), espace libre minimal (minFreeBytes).
- Sauvegarder maintenant (
POST /workspaces/{ws}/backups/run). - Restaurer (
POST /workspaces/{ws}/backups/restore), depuis une sauvegarde ou à une date et heure précises :target: test_workspace: dans un workspace de test (<slug>-restore-<date>ou la sandbox), sans toucher la production ;target: in_place: sur la production, avec confirmation par saisie du slug (confirmSlug).
- Télécharger : lien pré-signé valable 15 minutes, audité.
- Tester la restauration (
POST …/backups/{id}/test-restore) : restauration dans un conteneur PostgreSQL jetable, contrôle d’intégritépg_amchecket comptages ; le résultat est attaché à la sauvegarde.
La page Sauvegardes affiche l’historique (date, durée, taille, statut, emplacement, empreinte, fenêtre de restauration, dernier test) et les indicateurs : âge de la dernière sauvegarde réussie, volume total, tendance sur 30 jours, sauvegardes non testées.
Alertes : backup_failed, backup_too_old, backup_storage_low, restore_test_failed (Teams, e-mail ou webhook).
Procédure : restaurer demo à T-10 min dans la sandbox
Section intitulée « Procédure : restaurer demo à T-10 min dans la sandbox »- Console →
demo→ Sauvegardes : vérifier que l’archivage continu est actif et que la fenêtre de restauration couvre T-10 min. - Restaurer → « À une date » → saisir l’heure → cible Workspace de test →
demo-sbx. - Suivre l’opération (Infrastructure → Opérations) : restauration de la complète, rejeu des WAL jusqu’à l’heure demandée, redémarrage des moteurs de la sandbox.
- Contrôler dans le studio de la sandbox : dernières transactions, soldes d’un client témoin.
- Si la production doit être restaurée, refaire l’opération avec la cible En place et la confirmation du slug, en prévenant les caisses (les moteurs passent en drainage pendant l’opération).