O caso

As fotos dos produtos moravam no disco da VM. A VM caiu e levou as fotos.

O Isaac guardava as fotos do catálogo e os backups do banco no disco da mesma VM que roda a loja. Com o catálogo crescendo, o disco encheu num domingo, e a loja saiu do ar.

Para piorar, os backups estavam no mesmo disco que eles deveriam proteger.

Este post parte de Máquinas Virtuais e de Regiões e Zonas.

O problema

Um disco só não basta

Guardar tudo no disco da VM funciona no começo e falha de três jeitos:

  • Espaço: o disco tem um tamanho, e a loja cresce mais rápido que ele.
  • Dependência: os dados ficam presos àquela VM. Se ela for apagada ou se a zona onde ela roda falhar, o risco é perder tudo.
  • Compartilhamento: um segundo servidor não consegue ler as fotos que estão no disco do primeiro.

A solução

Bloco, arquivo e objeto

Os três guardam bytes. O que muda é como você acessa esses bytes.

Armazenamento em bloco (block storage)

Um disco virtual, que você liga a uma VM e formata como qualquer disco. Rápido, com baixa latência, e normalmente preso a uma VM por vez.

Na loja: o disco onde roda o banco de dados de pedidos.

Armazenamento em arquivo (file storage)

Pastas e arquivos compartilhados pela rede. Várias VMs montam o mesmo sistema de arquivos e leem e escrevem ao mesmo tempo.

Na loja: a pasta com os modelos de nota fiscal, usada por todos os servidores.

Armazenamento de objeto (object storage)

Cada arquivo vira um objeto dentro de um bucket, com um endereço na internet. Cresce sem limite prático e custa pouco por gigabyte.

Na loja: as fotos do catálogo e os backups.

O nome em cada nuvem

Os conceitos valem para qualquer provedor. Mudam os produtos:

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

O objeto por dentro

Cada objeto reúne o conteúdo, um nome único dentro do bucket e metadados (tipo do arquivo, data, etiquetas). Você lê e grava por uma API, pelo mesmo protocolo da web, e não monta o bucket como se fosse um disco.

Não confunda

Arquivo × objeto

Os dois guardam arquivos, e é aí que as provas pegam. A diferença está em como você mexe neles.

Arquivo (file storage)

“Várias VMs precisam editar os mesmos arquivos, como numa pasta compartilhada?”

Exemplo
Um conjunto de servidores que lê e grava numa mesma pasta de relatórios.
Foco
Hierarquia de pastas, acesso por montagem e edição de trechos do arquivo.

Objeto (object storage)

“Preciso guardar uma quantidade enorme de arquivos e entregá-los pela internet?”

Exemplo
As fotos do catálogo, abertas por um endereço.
Foco
Estrutura plana, acesso por API e substituição do objeto inteiro.

O custo

Custo e durabilidade

O armazenamento de objeto tem classes, que trocam preço de guardar por preço de acessar:

  • Frequente (quente, hot): para o que se acessa todo dia. Guardar custa mais, acessar é barato.
  • Esporádico (morno, cool): para o que se acessa uma vez por mês, por exemplo.
  • Arquivamento (frio, archive): para backups e registros que quase ninguém abre. Guardar custa muito pouco, e recuperar demora e custa mais.

Os provedores dão nomes próprios a cada classe, e as regras de cobrança mudam de um para outro.

Outro número que aparece nas provas é a durabilidade: a chance de não perder o dado. Nas classes padrão de armazenamento de objeto, os principais provedores anunciam 99,999999999% (os "onze noves"), porque guardam cópias em mais de um lugar. Isso é diferente de disponibilidade, que mede se o dado está acessível agora.

Na prática

Como escolher

Se você…Escolha
Precisa de um disco rápido para a VM, para o sistema ou para um banco de dadosBloco (block)
Quer uma pasta compartilhada que várias VMs leem e escrevemArquivo (file)
Guarda fotos, vídeos, backups ou logs, em volume que só cresceObjeto (object)
Guarda backups que quase nunca serão lidosObjeto (object), na classe de arquivamento (archive)

Termos-chave

Seis termos para fixar

Toque no cartão para ver a definição.

ArquiteturaFinanceiro

Teste rápido

Três perguntas, estilo prova

01

Uma VM roda um banco de dados e precisa de um disco com baixa latência. Qual armazenamento se encaixa?

02

A loja guarda milhões de fotos de produtos, entregues por URL, e o volume só cresce. Qual armazenamento escolher?

03

Vários servidores precisam ler e escrever os mesmos arquivos ao mesmo tempo, como numa pasta compartilhada. Qual escolher?


A pergunta de prova sobre armazenamento costuma ser a mesma: qual tipo atende a esta situação? Bloco é o disco da VM, arquivo é a pasta compartilhada e objeto é o depósito grande, barato e acessível por URL. Escolher o tipo certo evita o problema do Isaac, com dados e backups presos ao disco de uma única máquina. O próximo passo da trilha é Redes na Nuvem.