S3 es de archivos, pero no es un sistema de archivos
- Amazon S3 es una tecnología original de la nube lanzada en 2006, llamada "almacenamiento de objetos", pero en la práctica está pensada para archivos.
- La idea de que S3 es un "Amazon Cloud Filesystem" es una creencia útil para impulsar su adopción, pero en realidad S3 no es un sistema de archivos.
Qué es un sistema de archivos y la "profundidad" de los módulos
- La API de archivos de Unix se compone de cinco funciones básicas, que proporcionan todo lo necesario para leer y escribir archivos.
- Estas funciones abordan muchos problemas como buffering, page cache, fragmentación, permisos, programación de IO y más, sin exponerlos al usuario.
- Los módulos profundos tienen la ventaja de permitir que el usuario use la funcionalidad sin tener que pensar en esa complejidad.
Características de S3 (esto también es profundo)
- S3 no reimplementa la API de sistemas de archivos de Unix, y su modelo básico de llamadas es diferente.
- La API de S3 es más simple que la API de archivos de Unix, pero tiene la limitación de que no permite sobrescribir parcialmente objetos.
El software de sistemas de archivos, especialmente las bases de datos, no puede migrarse a Amazon S3
- Las bases de datos necesitan un lugar donde almacenar los datos, y normalmente eso se hace en varios archivos dentro de un sistema de archivos.
- Las bases de datos dependen en gran medida de la sobrescritura parcial, algo que en S3 no es posible.
Lo que S3 hace bien y lo que no
- La ventaja de S3 es que el ancho de banda de lectura y escritura es muy alto.
- Sin embargo, S3 no tiene sobrescritura parcial, ni operaciones de renombrado o movimiento, y listar archivos también es lento.
- Aun así, S3 requiere poco mantenimiento y simplifica tareas como configurar respaldos, replicación y aprovisionamiento.
La importancia de la profundidad de los módulos entre organizaciones
- No sorprende que S3 se haya convertido en la primera API de nube popular, ya que una API profunda ayuda a gestionar la complejidad entre organizaciones.
- Integrar software empresarial complejo como SAP es una tarea dolorosa, y eso se debe a que SAP no es un módulo profundo.
Información adicional
- Este artículo no pretende sugerir que S3 esté sobrevalorado, sino explicar el concepto de módulos profundos frente a módulos relativamente superficiales.
- Algunas bases de datos han sido diseñadas para usar la API de S3 como almacenamiento; eso es posible, pero no transparente.
- En S3, muchos formatos de archivo tienen peor rendimiento que en disco.
Opinión de GN⁺
- Es importante entender que S3 no es un sustituto de un sistema de archivos, sino una solución de almacenamiento optimizada para casos de uso específicos. Por ejemplo, es adecuado para almacenar y transferir archivos inmutables a gran escala, pero no para aplicaciones como bases de datos que requieren actualizaciones parciales frecuentes.
- El rendimiento y la escalabilidad de S3 son muy altos, pero al considerar la eficiencia de costos y la complejidad operativa, no es adecuado para todos los proyectos. Por ejemplo, el proyecto open source MinIO puede ser una buena alternativa para organizaciones que quieren construir almacenamiento compatible con S3 en su propia infraestructura.
- Al usar S3, también hay consideraciones adicionales como consistencia de datos, costos de red y control de acceso, y estos factores pueden afectar el diseño completo del sistema.
- Aunque los casos de uso de S3 pueden ser limitados, es una herramienta muy poderosa en aplicaciones específicas como data lakes o soluciones de respaldo. Su capacidad para almacenar datos de forma segura y recuperarlos rápidamente cuando se necesitan ofrece un valor importante para muchos negocios.
- Este artículo puede ayudar a tomar decisiones técnicas al ofrecer una comprensión profunda de los detalles técnicos de S3 y de sus casos de uso reales.
1 comentarios
Opiniones de Hacker News