Cada instancia de sandbox se aprovisiona de forma predeterminada con 20 GB de almacenamiento efímero en disco del sistema para operaciones temporales de datos. Al finalizar o agotarse el tiempo de espera del sandbox, todos los datos dentro de este espacio de almacenamiento se eliminan automáticamente. En consecuencia, los datos persistentes que requieran retención a largo plazo deben almacenarse en servicios externos de almacenamiento en la nube.
Las especificaciones de asignación de almacenamiento del sandbox están sujetas a cambios. Consulta la documentación de Pricing para conocer las asignaciones de recursos actuales y los costos asociados.
El almacenamiento de objetos representa una arquitectura de almacenamiento en la nube altamente escalable, duradera y rentable ofrecida por los principales proveedores de servicios en la nube. Dentro de los entornos de sandbox, se puede acceder al almacenamiento de objetos mediante dos metodologías principales: interacción programática directa a través de SDKs o utilidades CLI del proveedor de nube, o mediante implementaciones FUSE (Filesystem in Userspace) que presentan los buckets de almacenamiento de objetos como montajes de sistema de archivos estándar compatibles con POSIX.
FUSE (Filesystem in Userspace) es un módulo del kernel y una biblioteca de espacio de usuario que permite la implementación de sistemas de archivos completamente funcionales en aplicaciones de espacio de usuario. Este framework proporciona una capa de abstracción que presenta los servicios remotos de almacenamiento en la nube como jerarquías estándar de sistema de archivos, lo que permite operaciones de archivos transparentes mediante interfaces POSIX convencionales.
Esta documentación proporciona una guía completa para integrar buckets de almacenamiento de objetos de los principales proveedores de servicios en la nube en entornos de sandbox mediante técnicas de montaje de sistemas de archivos.
Los montajes de almacenamiento de objetos basados en FUSE introducen una sobrecarga significativa de rendimiento de I/O debido a la latencia de red y a las capas de traducción de protocolos. Las aplicaciones con requisitos estrictos de rendimiento deben evitar este enfoque. Además, las operaciones del sistema de archivos FUSE carecen de las garantías de atomicidad inherentes a las API nativas de almacenamiento de objetos, lo que crea posibles condiciones de carrera en las que las operaciones del sistema de archivos local pueden completarse correctamente mientras que las operaciones remotas correspondientes fallan, dando lugar a incoherencias de datos.Este enfoque de montaje es óptimo para cargas de trabajo predominantemente de lectura, con operaciones de escritura poco frecuentes y restricciones de rendimiento flexibles. Para aplicaciones críticas en rendimiento o patrones de escritura frecuentes, se recomienda encarecidamente la integración directa mediante SDKs del proveedor de nube o API REST nativas.
Amazon S3
Los buckets de Amazon S3 se pueden montar como sistemas de archivos compatibles con POSIX usando s3fs-fuse, una implementación de sistema de archivos basada en FUSE que proporciona acceso a buckets S3 mediante operaciones de archivos estándar.
El paquete s3fs-fuse se puede integrar durante la creación de una sandbox template incorporando comandos de instalación en el novita.Dockerfile, o instalarse dinámicamente dentro de instancias de sandbox activas para requisitos ad hoc.
El siguiente novita.Dockerfile muestra la integración de s3fs-fuse durante la construcción de la plantilla:
La siguiente implementación muestra el montaje programático de buckets S3 dentro de entornos de sandbox usando s3fs-fuse: