Appearance
D21 — Un seul S3 pour la prod et le staging
- Contexte : chaque namespace avait son propre SeaweedFS. Celui du staging occupait de la RAM et un volume de 10 Gio pour des buckets presque vides : le staging lisait déjà
mediaet les embeddings dans le S3 desnag-prod, et le Job du datalake staging écrivait dans un S3 où le catalogue Lakekeeper ne regarde jamais. - Décision (owner, 2026-11-07) : un seul SeaweedFS, celui de
snag-prod. Le staging n'a plus de S3 à lui ni d'explorateurfiles-staging; il garde des buckets et des identités à lui :user-files-stagingpour les exports et imports de l'API, en lecture, écriture et liste sur ce bucket seulement ;datalake-stagingen lecture et liste seulement surdatalakeetlakehouse.
- Justification : moins de RAM et de disque sur un cluster déjà juste. Un seul S3 à sauvegarder, surveiller et sécuriser. Une seule copie de
media, ce qui était déjà le cas. Les identités par bucket gardent l'isolation : le staging ne peut ni lire les fichiers des utilisateurs prod, ni écrire dansmedia,user-files,mlflowou le lac. - Conséquences :
- une panne ou une saturation du S3 touche les deux environnements, et donc
media.snag-app.io, que l'app mobile utilise : un test de charge du staging ne vise jamais le S3 ; - ajouter les identités staging demande un redémarrage du S3 prod, qui coupe
media.snag-app.ioenviron une minute (à faire à une heure creuse) ; - une répétition staging d'un job du datalake qui écrit s'arrête à sa première écriture : les exécutions qui écrivent se font depuis
snag-prodou depuis le laptop ; - les enregistrements DNS
media-stagingetfiles-stagingsont à supprimer chez Cloudflare.
- une panne ou une saturation du S3 touche les deux environnements, et donc
- Statut : adoptée. Références : gitops PR « un seul S3 » ;
ops/s3/add-staging-identities.sh;docs/data-layout.md.