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:
| Tipo | AWS | Azure | Google Cloud | Oracle Cloud |
|---|---|---|---|---|
| Bloco (block) | EBS | Managed Disks | Persistent Disk | Block Volume |
| Arquivo (file) | EFS | Azure Files | Filestore | File Storage |
| Objeto (object) | S3 | Blob Storage | Cloud Storage | Object 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 dados | Bloco (block) |
| Quer uma pasta compartilhada que várias VMs leem e escrevem | Arquivo (file) |
| Guarda fotos, vídeos, backups ou logs, em volume que só cresce | Objeto (object) |
| Guarda backups que quase nunca serão lidos | Objeto (object), na classe de arquivamento (archive) |
Termos-chave
Seis termos para fixar
Toque no cartão para ver a definição.
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.