Chaque instance de sandbox est provisionnée par défaut avec 20 Go de stockage disque système éphémère pour les opérations temporaires sur les données. Lors de la terminaison ou de l’expiration du sandbox, toutes les données présentes dans cet espace de stockage sont automatiquement purgées. Par conséquent, les données persistantes nécessitant une conservation à long terme doivent être stockées dans des services de stockage cloud externes.
Les spécifications d’allocation du stockage des sandbox sont susceptibles d’être modifiées. Consultez la documentation Tarification pour connaître les allocations de ressources actuelles et les coûts associés.
Le stockage objet représente une architecture de stockage cloud hautement scalable, durable et économique, proposée par les principaux fournisseurs de services cloud. Dans les environnements sandbox, le stockage objet peut être accessible via deux méthodologies principales : une interaction programmatique directe au moyen des SDK ou des utilitaires CLI des fournisseurs cloud, ou des implémentations FUSE (Filesystem in Userspace) qui présentent les buckets de stockage objet comme des montages de systèmes de fichiers standard compatibles POSIX.
FUSE (Filesystem in Userspace) est un module du noyau et une bibliothèque en espace utilisateur qui permettent l’implémentation de systèmes de fichiers entièrement fonctionnels dans des applications en espace utilisateur. Ce framework fournit une couche d’abstraction qui présente les services de stockage cloud distants comme des hiérarchies de systèmes de fichiers standard, permettant des opérations de fichiers transparentes via des interfaces POSIX conventionnelles.
Cette documentation fournit des instructions complètes pour intégrer des buckets de stockage objet des principaux fournisseurs de services cloud dans des environnements sandbox au moyen de techniques de montage de systèmes de fichiers.
Les montages de stockage objet basés sur FUSE introduisent une surcharge de performance I/O importante en raison de la latence réseau et des couches de traduction de protocole. Les applications ayant des exigences de performance strictes doivent éviter cette approche. De plus, les opérations de système de fichiers FUSE ne disposent pas des garanties d’atomicité propres aux API natives de stockage objet, ce qui crée des conditions de concurrence potentielles où des opérations locales sur le système de fichiers peuvent réussir alors que les opérations distantes correspondantes échouent, entraînant une incohérence des données.Cette approche de montage est optimale pour les charges de travail majoritairement en lecture, avec des opérations d’écriture peu fréquentes et des contraintes de performance souples. Pour les applications critiques en matière de performance ou les modèles d’écriture fréquents, l’intégration directe à l’aide des SDK des fournisseurs cloud ou des API REST natives est fortement recommandée.
Amazon S3
Les buckets Amazon S3 peuvent être montés comme des systèmes de fichiers compatibles POSIX à l’aide de s3fs-fuse, une implémentation de système de fichiers basée sur FUSE qui fournit un accès aux buckets S3 via des opérations de fichiers standard.
Le package s3fs-fuse peut être intégré lors de la création d’un modèle de sandbox en incorporant des commandes d’installation dans le novita.Dockerfile, ou installé dynamiquement dans des instances de sandbox actives pour des besoins ponctuels.
Le novita.Dockerfile suivant illustre l’intégration de s3fs-fuse lors de la construction du modèle :
L’implémentation suivante illustre le montage programmatique d’un bucket S3 dans des environnements sandbox à l’aide de s3fs-fuse :