El caso

Las fotos de los productos vivían en el disco de la VM. La VM se cayó y se llevó las fotos.

Isaac guardaba las fotos del catálogo y las copias de seguridad del banco en el disco de la misma VM que ejecuta la tienda. Con el catálogo creciendo, el disco se llenó un domingo, y la tienda salió del aire.

Para empeorar las cosas, las copias de seguridad estaban en el mismo disco que debían proteger.

Este post parte de Máquinas virtuales y de Regiones y zonas.

El problema

Un disco no basta

Guardar todo en el disco de la VM funciona al principio y falla de tres maneras:

  • Espacio: el disco tiene un tamaño fijo, y la tienda crece más rápido que él.
  • Dependencia: los datos quedan atados a esa VM. Si se borra o si falla la zona donde corre, el riesgo es perderlo todo.
  • Compartición: un segundo servidor no puede leer las fotos que están en el disco del primero.

La solución

Bloque, archivo y objeto

Los tres guardan bytes. Lo que cambia es cómo accedes a esos bytes.

Almacenamiento en bloque (block storage)

Un disco virtual que conectas a una VM y formateas como cualquier disco. Rápido, con baja latencia, y normalmente conectado a una VM a la vez.

En la tienda: el disco donde corre la base de datos de pedidos.

Almacenamiento de archivos (file storage)

Carpetas y archivos compartidos por la red. Varias VMs montan el mismo sistema de archivos y leen y escriben al mismo tiempo.

En la tienda: la carpeta con las plantillas de factura, usada por todos los servidores.

Almacenamiento de objetos (object storage)

Cada archivo se convierte en un objeto dentro de un bucket, con una dirección en internet. Crece sin límite práctico y cuesta poco por gigabyte.

En la tienda: las fotos del catálogo y las copias de seguridad.

El nombre en cada nube

Los conceptos valen para cualquier proveedor. Cambian los productos:

TipoAWSAzureGoogle CloudOracle Cloud
Bloque (block)EBSManaged DisksPersistent DiskBlock Volume
Archivo (file)EFSAzure FilesFilestoreFile Storage
Objeto (object)S3Blob StorageCloud StorageObject Storage

Un objeto por dentro

Cada objeto reúne el contenido, un nombre único dentro del bucket y metadatos (tipo de archivo, fecha, etiquetas). Lees y escribes a través de una API, con el mismo protocolo de la web, y no montas el bucket como si fuera un disco.

No confundas

Archivo × objeto

Los dos guardan archivos, y ahí es donde los exámenes hacen caer. La diferencia está en cómo trabajas con ellos.

Archivo (file storage)

“¿Varias VMs necesitan editar los mismos archivos, como en una carpeta compartida?”

Ejemplo
Un grupo de servidores que lee y escribe en la misma carpeta de informes.
Foco
Jerarquía de carpetas, acceso por montaje y edición de partes del archivo.

Objeto (object storage)

“¿Necesito guardar una cantidad enorme de archivos y entregarlos por internet?”

Ejemplo
Las fotos del catálogo, abiertas por una dirección.
Foco
Estructura plana, acceso por API y reemplazo del objeto completo.

El costo

Costo y durabilidad

El almacenamiento de objetos tiene clases, que cambian el precio de guardar por el precio de acceder:

  • Frecuente (caliente, hot): para lo que se accede todos los días. Guardar cuesta más, y acceder es barato.
  • Esporádico (tibio, cool): para lo que se accede, por ejemplo, una vez al mes.
  • Archivo (frío, archive): para copias de seguridad y registros que casi nadie abre. Guardar cuesta muy poco, pero recuperar tarda y cuesta más.

Cada proveedor da nombres propios a cada clase, y las reglas de cobro cambian de uno a otro.

Otro número que aparece en los exámenes es la durabilidad: la probabilidad de no perder el dato. En las clases estándar del almacenamiento de objetos, los principales proveedores anuncian 99,999999999% (los «once nueves»), porque guardan copias en más de un lugar. Eso es distinto de la disponibilidad, que mide si el dato está accesible ahora mismo.

En la práctica

Cómo elegir

Si tú…Elige
Necesitas un disco rápido para la VM, para el sistema o para una base de datosBloque (block)
Quieres una carpeta compartida que varias VMs leen y escribenArchivo (file)
Guardas fotos, videos, copias de seguridad o registros, en un volumen que solo creceObjeto (object)
Guardas copias de seguridad que casi nunca se leeránObjeto (object), en la clase de archivo (archive)

Términos clave

Seis términos para recordar

Toca la tarjeta para ver la definición.

ArquitecturaFinanciero

Prueba rápida

Tres preguntas, estilo examen

01

Una VM ejecuta una base de datos y necesita un disco con baja latencia. ¿Qué almacenamiento le sirve?

02

La tienda guarda millones de fotos de productos, entregadas por URL, y el volumen solo crece. ¿Qué almacenamiento debería elegir?

03

Varios servidores necesitan leer y escribir los mismos archivos al mismo tiempo, como en una carpeta compartida. ¿Cuál deberían elegir?


La pregunta de examen sobre almacenamiento suele ser la misma: ¿qué tipo atiende esta situación? El bloque es el disco de la VM, el archivo es la carpeta compartida y el objeto es el depósito grande, barato y accesible por URL. Elegir el tipo correcto evita el problema de Isaac, con datos y copias de seguridad atados al disco de una sola máquina. El siguiente paso de la ruta es Redes en la nube.