ADR-0127 : Sauvegarde, restauration et PRA distincts de la HA, sur le stockage du client
- Statut : accepté
- Date : 2026-10-30
- Version anglaise : en/ADR-0127-sauvegarde-pra.md
Contexte
Kit, addendum 20.5, 20.6 et 20.10. La HA protège contre certaines pannes de nœuds ou de services. Une sauvegarde permet de récupérer après une corruption, une suppression ou une attaque. Un PRA restaure ou bascule vers une infrastructure secondaire.
Décision
- Un Backup & Recovery Manager central dans la console : politiques, jobs, artefacts avec empreinte et taille, vérifications, restaurations avec plan à blanc, contrôle de compatibilité, approbation par deux personnes distinctes du demandeur, exécution, vérification et retour arrière de la configuration. Jamais de restauration en production sans plan ni approbation.
- Le stockage de sauvegarde est celui du client, par adaptateurs AWS S3, Azure Blob, GCS, IBM COS et SeaweedFS. Les capacités (versioning, Object Lock, legal hold, rétention) sont qualifiées par de vrais appels. Une exigence d'immuabilité non vérifiée est refusée : aucune fonction WORM n'est simulée.
- Sauvegardes adaptées à chaque application : PostgreSQL par sauvegarde de base et WAL continu avec restauration à un instant précis (CloudNativePG dans Kubernetes, pgBackRest hors Kubernetes), snapshots etcd, snapshots natifs OpenSearch et Qdrant, flux NATS JetStream, état Temporal, artefacts OCI, prompts, skills, plugins et modèles avec empreintes et signatures. Velero sauvegarde les ressources Kubernetes mais ne remplace jamais une sauvegarde transactionnelle de PostgreSQL.
- Cohérence entre les éléments d'une même application, chiffrement avec références de clés, rétention appliquée, privilège de restauration séparé, tests de restauration réguliers dans un environnement isolé avec rapport signé.
- PRA : sites, plans, liens de réplication, séquences de reprise et exercices. Active/active seulement pour les couches sans état ; active/passive, warm ou cold standby pour les données transactionnelles. L'ancien primaire est isolé avant la promotion du secondaire. Les objectifs RPO et RTO sont fixés par le client, et les valeurs observées sont mesurées pendant les exercices. La licence de 12 ou 36 mois reste valide pendant un PRA et hors ligne.
Conséquences
Les fréquences proposées par défaut ne sont pas des garanties de RPO ou de RTO. Un profil d'audit bancaire sur un stockage sans immuabilité vérifiée est signalé non conforme.
Preuves
KIT_AGENT_PLATEFORME_IA_ENTERPRISE/ADDENDUM_INFRA_HA_BACKUP_PRA.mdnavin-manager/server/src/navin_manager/backupnavin-manager/server/src/navin_manager/recoverynavin-manager/server/tests/test_backup_recovery.pynavin-manager/server/tests/test_recovery_postgres_real.pynavin-manager/server/tests/test_backup_apps_real.pydeploy/velero