Azure Blob Storage vs File Storage

Microsoft ofrece varias opciones para almacenar datos en la nube. Cada opción tiene su propósito único para servir a diferentes necesidades de negocio. Una de las capacidades significativas que proporciona Microsoft Azure es la agilidad para migrar a diferentes opciones de almacenamiento si es necesario.

Hay varias opciones disponibles en la cuenta de almacenamiento de Azure para almacenar los datos del usuario.

  • Blob Storage
  • File Storage
  • Table Storage
  • Queue Storage
  • Disk

Este blog trata de diferenciar entre Azure Blob Storage y File Storage que está disponible en Azure Storage Account.

Introducción

Blob Storage

Azure Blob Storage es una solución de almacenamiento de objetos para la nube. Blob Storage permite almacenar una cantidad masiva de datos no estructurados. Los datos no estructurados no tienen por qué ser del modelo de datos específico.

Almacenamiento de archivos

Azure Files ofrece recursos compartidos de archivos totalmente gestionados en la nube a los que se puede acceder a través del estándar de la industria SMB. Los recursos compartidos de Azure File pueden ser montados simultáneamente por implementaciones en la nube o en las instalaciones de Windows, Linux y macOS. Se puede almacenar en caché en los servidores de Windows con Azure File Sync para un acceso más rápido.

Cuándo utilizar

Blob Storage

Azure Blob Storage fue diseñado para servir a necesidades específicas. Si su caso de uso empresarial necesita almacenar datos no estructurados como audio, vídeo, imágenes, etc, entonces probablemente debería optar por esta opción. Los objetos que se almacenan en Blob no tienen necesariamente una extensión.

Los siguientes puntos describen los escenarios de casos de uso:

  • Servir imágenes o documentos directamente a un navegador
  • Almacenamiento de Archivos para acceso distribuido
  • Streaming de video y audio
  • Escribir en Archivos de registro
  • Almacenamiento de datos para backup, restauración, recuperación de desastres y archivo
  • Almacenamiento de datos para su análisis por parte de un servicio local o alojado en Azure

Almacenamiento de archivos

El almacenamiento de archivos puede utilizarse si su caso de uso empresarial necesita tratar principalmente con extensiones de archivo estándar como *.docx, *.png y *.bak entonces probablemente debería ir con esta opción de almacenamiento.

Los siguientes puntos describen los escenarios de casos de uso:

  • Sustituir o complementar los servidores de archivos locales
  • Aplicaciones «Lift and shift»
  • Simplificar el desarrollo en la nube

Descargue gratis este blog como documento PDF para leerlo sin conexión.

Escenario en tiempo real

Consideremos un escenario, en un entorno de desarrollo en el que cada desarrollador necesita acceder al IDE y a las herramientas sin necesidad de utilizar internet para descargarlo. En esta situación, Azure Blob Storage cumpliría con la necesidad y utilizando que sólo puede almacenar las herramientas de desarrollo y luego dar un enlace al equipo para acceder a la ubicación Blob.

Para la implementación de un servidor de Archivos en su organización, usted debe elegir la opción Azure Files. Un servidor de archivos se utiliza para compartir archivos entre los departamentos de su organización. Cuando se trata de compartir archivos, el usuario final no debe poder acceder a las copias del archivo desde su URI y necesita ser mapeado localmente en los ordenadores. Aquí es cuando Azure File Storage se ajusta a su necesidad.

Subida de Archivos Grandes

El enfoque común utilizado para subir un Archivo grande es dividirlo en trozos. Dividir no es sólo la función para subir archivos, sino que los trozos deben ser fusionados en un Archivo una vez que la carga se ha completado.

Para la tarea anterior, ¿qué opción sería una buena opción? ¿Azure Blob o File Storage?

La respuesta es Azure Blob Storage. Aunque este escenario trata de Archivos, Azure Blob Storage es un buen ajuste debido a sus capacidades off the shelf.

Azure Blob Storage contiene tres tipos de blobs: Blob, Page y Append. Un bloque es una sola unidad de un Blob. Un Blob puede contener muchos bloques pero no más de 50.000 bloques por Blob. Esto significa que puede dividir un Blob en 50.000 bloques para cargarlo en el almacenamiento Azure Blobs. El tamaño mínimo de un bloque es de 64 KB y el máximo es de 100 MB. Si miras (por ejemplo, la biblioteca .NET), uno de los objetos es BlockBlob, que forma parte de la clase CloudBlockBlob. Esta clase le ofrece toneladas de cosas para trabajar con un Block Blob.

Por ejemplo, la propiedad StreamWriteSizeInBytes le permite establecer un tamaño de Blob de bloque que puede ser bueno para manejar la velocidad de red inestable. Cada Blob de bloque también tiene metadatos que le permiten controlar individualmente. Por ejemplo, si desea asegurarse de que todos los Blobs de bloque se consignan correctamente en un Blob determinado, puede utilizar Content-MD5.

El almacenamiento de archivos de Azure no dispone de esta capacidad inmediata. Si necesita dividir un archivo, debe encontrar un método indirecto como la clase FileStream o utilizar proveedores de terceros.

Opciones de supervisión disponibles para el almacenamiento de Blob y el almacenamiento de archivos

Azure Portal

Una vez que haya configurado la cuenta de almacenamiento deseada en la opción Diagnóstico de la sección Supervisión, podrá definir el tipo de datos de métrica que desea supervisar y la política de retención de los datos.

Un conjunto predeterminado de métricas se muestra en gráficos en la hoja de la Cuenta de Almacenamiento, así como en las hojas de servicio individuales (Blobs y Archivos). Una vez que haya habilitado las métricas para un servicio, los datos pueden tardar hasta una hora en aparecer en sus gráficos. Puede seleccionar Editar en cualquier gráfico de métricas para configurar las métricas que se mostrarán en el gráfico.

Opción de supervisión del almacenamiento del portal de Azure

Serverless360 (Off the Shelf Product)

Es posible supervisar tanto los Blobs de almacenamiento como los Archivos de almacenamiento en un monitor de estado o de umbral. El monitor de estado genera un informe en momentos específicos de un día que representa el estado de las entidades frente a los valores deseados. El Monitor de Umbral genera un informe cuando ciertas propiedades violan los valores deseados durante un período específico. Predominantemente, Serverless360 monitorea los Blobs y Archivos en base a sus propiedades y no a sus métricas, a diferencia de Azure Portal.

Tipo de entidad Propiedades que se pueden monitorizar
Blob de almacenamiento Estado de alquiler, Recuento de Blob, Tamaño de Blob (Bytes), Recuento de Blob de bloque, Tamaño de Blob de bloque (Bytes), Recuento de Blob de página, Page Blob Size (Bytes), Append Blob Count, Append Blob Size (Bytes)
Storage File Usage (Bytes)

La siguiente imagen muestra la configuración de Blob en el Status Monitor de la aplicación Serverless360.

Monitor de estado de blob de Sl360

A continuación se muestra el detalle de error generado si el error persiste durante el periodo deseado.

Detalles de error de blob de Sl360

Escalabilidad

Es significativo conocer la cuota y los límites de Azure Storage para elegir la opción adecuada. El nivel más alto de representación para la capacidad en Azure Blob Storage es Containers, mientras que para Files es Shares.

Recurso Azure Blobs Objetivo
Tamaño máximo de un solo contenedor Blob 500 TB
Número máximo de bloques en un Blob de bloque o append Blob 50,000 bloques
Tamaño máximo de un bloque en un Blob 100 MB
Tamaño máximo de un Blob 50.000 X 100 MB (aprox. 4,75 TB)
Tamaño máximo de un bloque en un Blob 4 MB
Tamaño máximo de un Blob 50.000 x 4 MB (aprox. 195 GB)
Tamaño máximo de una página Blob 8 TB
Número máximo de políticas de acceso almacenadas por contenedor Blob 5
Recurso de archivos seguros Objetivo
Tamaño máximo de un Archivo compartido 5 TB
Máximo tamaño de un archivo en un recurso compartido 1 TB
Número máximo de archivos en un recurso compartido Sin límite
Máximo de IOPS por recurso compartido 1000 IOPS
Número máximo de políticas de acceso almacenadas por recurso compartido de archivos 5
Tasa máxima de solicitudes por cuenta de almacenamiento 20,000 peticiones por segundo para Archivos de cualquier tamaño válido
Rendimiento objetivo para un solo Archivo compartido Hasta 60 MB por segundo
Máximo de asas abiertas por Archivo 2000 asas abiertas
Número máximo de instantáneas de recursos compartidos 200 instantáneas de recursos compartidos

Seguridad

Encriptación del servicio de almacenamiento de bloques y archivos de Azure Storage, ya que se encuentran bajo el nivel de cuenta de Azure Storage. Cuando la aplicación escribe/lee un nuevo Blob/Archivo, se encriptan utilizando el algoritmo AES (Advanced Encryption Standard) de 256 bits. Si se llama a través de la API REST, tanto los Azure Blobs como los Azure Files son compatibles con la activación de la transferencia segura requerida.

Tanto Azure Blobs como Azure Files necesitan Shared Access Signature (SAS) para obtener acceso delegado a Blobs y Files. Además de la autorización, ambos son compatibles con Azure AD y el token de acceso compartido.

Azure Blobs permiten lograr el cifrado mediante la clase BlobEncryptionPolicy con Azure Key Vault. Los Azure Files utilizan el cifrado integrado en el protocolo SMB 3.0. Además, tanto Azure Blobs como Azure Files admiten la regla CORS (Cross-Origin Resource Sharing). CORS le permite describir la lista blanca para la solicitud de encabezado HTTP.

En cuanto a la seguridad de la red, tiene más control del tráfico de red entrante tanto para Azure Blobs como para Azure Files. Sólo permite el acceso a un rango de IPs y redes virtuales especificadas.

Recuperación de desastres

La copia de seguridad de los datos es importante para cualquier empresa en la que los datos se consideran la sangre de su organización. Desafortunadamente, Azure recuperar y copia de seguridad no tienen la automatización de los datos de copia de seguridad de la derecha de Blob y almacenamiento de archivos. Para manejar, los datos pueden ser descargados a su infraestructura local o crear una nueva cuenta de almacenamiento en otra región para almacenar sus datos.

Azure Blobs: Utilice Copiar Blob para copiar asincrónicamente su Blob a la Cuenta de Almacenamiento de destino.

Azure Files: Utilice Copiar Archivo para copiar asincrónicamente el recurso compartido de Archivos a la Cuenta de Almacenamiento de destino.

Precios

Los precios descritos aquí se basan en la documentación de Microsoft

Precios de almacenamiento de datos

A continuación se muestran los precios para almacenar datos en Azure File y Blob Storage

Blob Storage PREMIUM HOT COOL ARCHIVE
Los primeros 50 terabyte (TB) / mes 0 dólares.18 por GB 0,022 por GB 0,01 por GB 0,00099 por GB
Los siguientes 450 TB / mes 0.18 por GB 0,0212 por GB 0,01 por GB 0,00099 por GB
Más de 500 TB / mes 0.18 por GB 0,0203 por GB 0,01 por GB 0.00099 por GB
Almacenamiento de archivos Estándar
GB/mes 0.06 por GB usado
Snapshots GB/mes $0.06 por GB usado

Precios de Operaciones y Transferencia de Datos

A continuación se muestran los precios de Operaciones y Transferencia de Datos en Azure File and Blob Storage

Almacenamiento de Blob PREMIUM HOT COOL ARCHIVO
Operaciones de escritura (por 10,000)1 $0.021 $0.05 $0.10 $0,11
Operaciones de listado y creación de contenedores (por cada 10.000)2 $0,06 $0,05 $0,05 $0.05
Operaciones de lectura (por cada 10.000)3
Lectura de alta prioridad del archivo (por cada 10.000)5
$0,0017 $0,004 $0,01 $5.50
$30
Todas las demás operaciones (por cada 10.000), excepto Borrar, que es gratuita $0,0017 $0,004 $0,004 $0.004
Recuperación de datos (por GB)4
Recuperación de archivos de alta prioridad (por GB)5
Gratis Gratis 0.01 $0,022
$0,06
Escritura de datos (por GB)4 Gratis Gratis $0.0025 Libre
Almacenamiento de archivos Estándar
Operaciones de contenedor de creación (por 10.000) $0.015
Operaciones de lista (por cada 10.000) $0,015
Todas las demás operaciones excepto Eliminar, que es gratuita (por cada 10.000) $0.0015
Transferencia de datos de geo-replicación (por GiB) N/A

Wrap Up

En la revolución de la transformación digital, las aplicaciones se están modernizando y se necesita un patrón a gran escala no sólo en la capa de aplicación sino también en la capa de datos que no creo que Azure Files pueda encajar. Azure Files seguiría siendo bueno si su aplicación se sirve para un público específico.

Tal vez, hay aspectos individuales a considerar antes de concluir la mejor opción entre Azure Blob Storage y Files. Teniendo en cuenta las funcionalidades comunes, yo preferiría Azure Blob Storage antes que Files.

Autor: Nadeem Ahamed

Nadeem es un comercializador de productos técnicos para Serverless360. Es un apasionado de los blogs sobre tecnologías de vanguardia. Cree que los blogs son la mejor manera de compartir conocimientos entre la comunidad y su pasión por la escritura nunca terminará hasta el último día de su vida. Siempre cree en la frase «Se ve tan bien por fuera, que te hará sentir bien por dentro».View all posts by Nadeem Ahamed