Azure Blob Storage vs File Storage

Microsoft oferece várias opções para armazenar dados na nuvem. Cada opção tem o seu propósito único de servir diferentes necessidades de negócio. Um dos recursos significativos que o Microsoft Azure oferece é a agilidade para migrar para diferentes opções de armazenamento, se necessário.

Existem várias opções disponíveis na Conta de Armazenamento Azure para armazenamento de dados de usuários.

  • Bob Storage
  • File Storage
  • Table Storage
  • Queue Storage
  • Disk

Este blog tenta diferenciar entre o Azure Blob Storage e o File Storage que está disponível na Azure Storage Account.

Introduction

Blob Storage

Azure Blob Storage é uma solução de armazenamento de objetos para a nuvem. O Blob Storage permite que você armazene uma grande quantidade de dados não estruturados. Os dados não estruturados não precisam ser do modelo de dados específico.

Armazenamento de Arquivos

Azure Files oferecem compartilhamentos de arquivos totalmente gerenciados na nuvem que são acessíveis através da SMB padrão da indústria. Os compartilhamentos de Arquivos Azure podem ser montados simultaneamente por implantações de Windows, Linux e macOS na nuvem ou no local. Ele pode ser colocado em cache em servidores Windows com o Azure File Sync para acesso mais rápido.

When to Use

Blob Storage

Azure Blob Storage foi projetado para atender a necessidades específicas. Se o seu negócio precisa de armazenar dados não estruturados como áudio, vídeo, imagens, etc, então você provavelmente deve optar por esta opção. Os objetos que estão sendo armazenados no Blob não têm necessariamente uma extensão.

Os pontos seguintes descrevem os cenários de caso de uso:

  • Servir imagens ou documentos diretamente para um navegador
  • Armazenar arquivos para acesso distribuído
  • Servir vídeo e áudio
  • Escrever para registrar arquivos
  • Armazenar dados para backup, restaurar, recuperação de desastres e arquivamento
  • Armazenamento de dados para análise por um serviço local ou hospedado pelo Azure

Armazenamento de arquivos

Armazenamento de arquivos pode ser usado se o seu caso de uso comercial precisar lidar principalmente com extensões de arquivos padrão como *.docx, *.png e *.bak então você provavelmente deve ir com esta opção de armazenamento.

Os seguintes pontos descrevem os cenários de caso de uso:

  • Substituir ou complementar servidores de arquivos no local
  • Aplicações “Lift and shift”
  • Simplificar desenvolvimento de nuvens

Free download deste blog como um documento PDF para leitura offline.

Cenário em tempo real

Cenário, em um ambiente de desenvolvimento onde todo desenvolvedor precisa ter acesso a IDE e ferramentas sem usar a internet para baixá-lo. Nesta situação, o Azure Blob Storage atenderia a necessidade e usando o qual você só pode armazenar ferramentas de desenvolvimento, então dê um link para a equipe para acessar a localização do Blob.

Para implementar um servidor de arquivos em sua organização, você deve escolher a opção Azure Files. Um servidor de Arquivos é usado para compartilhar Arquivos entre departamentos da sua organização. Quando se trata de compartilhamento de Arquivos, o usuário final não deve ter permissão para acessar as cópias do Arquivo de seu URI e precisa ser mapeado localmente nos computadores. Isto é quando o Armazenamento de Arquivos Azure se adequa às suas necessidades.

Upload de Arquivos Grandes

A abordagem comum usada para carregar um Arquivo grande é dividi-lo em pedaços. Dividir não é apenas a função para carregar arquivos, mas os pedaços devem ser fundidos em um arquivo quando o upload estiver completo.

Para a tarefa acima, qual opção seria um bom ajuste? Azure Blob ou Armazenamento de Arquivos?

A resposta é Azure Blob Storage. Embora este cenário lide com Arquivos, o Armazenamento do Azure Blob é um bom ajuste devido às suas capacidades fora da prateleira.

Azure Blob Storage contém três tipos de blobs: Block, Page e Append. Um bloco é uma única unidade em um Blob. Um Blob pode conter muitos blocos mas não mais do que 50.000 blocos por Blob. Isso significa que você pode dividir um Blob em 50.000 blocos para carregar no armazenamento do Azure Blobs. O tamanho mínimo de um bloco é 64KB e o máximo é 100 MB. Se você olhar para (por exemplo, biblioteca .NET), um dos objetos é BlockBlob que faz parte da classe CloudBlockBlob. Esta classe oferece-lhe toneladas de coisas para trabalhar com um Block Blob.

Por exemplo, a propriedade StreamWriteSizeInBytes permite-lhe definir um tamanho de bloco Blob que pode ser bom para lidar com a velocidade instável da rede. Cada Blob de bloco também tem metadados para permitir que você controle individualmente. Por exemplo, você quer ter certeza de que todos os Blobs do bloco estão comprometidos com um determinado Blob, você pode usar Content-MD5.

Azure File Storage não tem essa capacidade out-of-the-box. Se você precisa dividir Arquivo, você precisa encontrar um método indireto como a classe FileStream ou usar fornecedores de terceiros.

Opções de Monitoramento Disponíveis para Armazenamento Blob e Armazenamento de Arquivos

Azure Portal

Após configurar a conta de armazenamento desejada para a opção Diagnóstico na seção Monitoramento, você será capaz de definir o tipo de dados de métricas que deseja monitorar e a política de retenção dos dados.

Um conjunto padrão de métricas é exibido em gráficos na lâmina da Conta de Armazenamento, assim como as lâminas de serviço individuais (Blobs e Arquivos). Uma vez que você tenha ativado as métricas para um serviço, pode levar até uma hora para os dados aparecerem em seus gráficos. Você pode selecionar Editar em qualquer gráfico de métricas para configurar quais métricas serão exibidas no gráfico.

Azure portal storage monitoring option

Serverless360 (Off the Shelf Product)

É possível monitorar tanto Blobs de Armazenamento como Arquivos de Armazenamento em um monitor de Status ou Threshold. O Status Monitor gera um relatório em horários específicos em um dia, representando o estado das entidades em relação aos valores desejados. O Monitor de limiar gera um relatório quando determinadas propriedades violam os valores desejados para um período especificado. Predominantemente, o Serverless360 monitora os Blobs e Arquivos com base em suas propriedades e não em suas métricas, ao contrário do Portal Azure.

Entity Type Propriedades que podem ser monitoradas
Storage Blob Lease State, Blob Count, Blob Size (Bytes), Block Blob Count, Block Blob Size (Bytes), Page Blob Count, Page Blob Size (Bytes), Append Blob Count, Append Blob Size (Bytes)
Storage File Usage (Bytes)

Below image retrata a configuração do Blob no Status Monitor da aplicação Serverless360.

Sl360 blob status monitor

Below é o detalhe do erro gerado se o erro persistir pelo período desejado.

Sl360 blob detalhes do erro

Scalabilidade

É significativo conhecer a cota e os limites do Azure Storage para escolher a opção certa. O nível mais alto de representação de capacidade em Azure Blob Storage é Containers, enquanto para Files é Ações.

Azure Blobs Resource Target
Tamanho máximo de um único Blob container 500 TB
Número máximo de blocos em um Blob Blob ou anexar Blob 50,000 blocos
Tamanho máximo de um bloco num bloco Blob 100 MB
Tamanho máximo de um bloco Blob 50.000 X 100 MB (aprox. 4,75 TB)
Tamanho máximo de um bloco num apêndice Blob 4 MB
Tamanho máximo de um apêndice Blob 50.000 x 4 MB (aprox. 195 GB)
Tamanho máximo de uma página Blob 8 TB
Número máximo de políticas de acesso armazenadas por recipiente Blob 5
Azure Files Resource Target
Tamanho máximo de um File share 5 TB
Máx tamanho de um ficheiro numa partilha de ficheiros 1 TB
Número máximo de ficheiros numa partilha de ficheiros Sem limite
IOPS máximo por acção 1000 IOPS
Número máximo de políticas de acesso armazenadas por compartilhamento de arquivo 5
Taxa máxima de solicitação por conta de armazenamento 20,000 pedidos por segundo para Arquivos de qualquer tamanho válido
Percentagem de transferência de um único arquivo Subir para 60 MB por segundo
Punhos máximos abertos para por arquivo Punhos máximos abertos para por arquivo Punhos máximos abertos para 2000
Número máximo de instantâneos de acções 200 instantâneos de acções

Segurança

Azure Storage Blob and Files Storage Service Encryption, uma vez que estão no nível de conta Azure Storage Account. Quando a aplicação escreve/lê um novo Blob/File, eles são criptografados usando o algoritmo AES (Advanced Encryption Standard) de 256 bits. Se a chamada for feita através da API REST, tanto os Blobs Azure como os Arquivos Azure são suportados ao ativar a Transferência Segura Necessária.

Both Blobs Azure e Arquivos Azure precisam de Assinatura de Acesso Compartilhado (SAS) para obter acesso delegado a Blobs e Arquivos. Além da autorização, ambos são suportados com Azure AD e token de acesso compartilhado.

Azure Blobs permitem obter criptografia pela classe BlobEncryptionPolicy com Azure Key Vault. Os arquivos Azure usam criptografia embutida no protocolo SMB 3.0. Além disso, ambos Azure Blobs e Azure Files suportam a regra CORS (Cross-Origin Resource Sharing). CORS permite que você descreva a lista branca para requisição de cabeçalho HTTP.

No que diz respeito à segurança da rede, você tem mais controle do tráfego de entrada de rede para ambos os Blobs Azure e Arquivos Azure. Ele permite apenas um intervalo de IP especificado e redes virtuais para acessá-lo.

Recuperação de desastres

O backup de dados é significativo para qualquer empresa onde os dados são considerados como sangue da sua organização. Infelizmente, o Azure Recovery e o back-up não possuem automação para fazer o back-up dos dados diretamente do Blob e do Armazenamento de Arquivos. Para tratar, os dados podem ser baixados para sua infra-estrutura local ou criar uma nova Conta de Armazenamento em outra região para armazenar seus dados.

Azure Blobs: Use Copy Blob para copiar assincronamente o Blob para a Conta de Armazenamento de destino.

Azure Files: Use Copy File para copiar de forma assíncrona o File share para a Conta de Armazenamento de destino.

Preço

Preço descrito aqui é baseado na documentação da Microsoft

Preços de armazenamento de dados

Below são preços para armazenamento de dados em Arquivo Azure e Blob Armazenamento

Armazenamento de Blob PREMIUM HOT COOL ARQUIVO
Primeiro 50 terabyte (TB) / mês $0.18 por GB $0,022 por GB $0,01 por GB $0,00099 por GB
Próximo 450 TB / mês $0.18 por GB $0.0212 por GB $0.01 por GB $0.00099 por GB
Mais de 500 TB / Mês $0.18 por GB $0.0203 por GB $0.01 por GB $0.00099 por GB
Armazenamento de arquivos STANDARD
GB/mês $0.06 por GB usado
Snapshots GB/mês $0.06 por GB

Preços de Operações e Transferência de Dados

Below são preços para Operações e Transferência de Dados em Arquivo Azure e Armazenamento Blob

Armazenamento do Blob PREMIUM HOT COOL ARQUIVO
Operações de escrita (por 10,000)1 $0.021 $0.05 $0.10 $0.11
Listar e Criar Operações de Container (por 10.000)2 $0.06 $0.05 $0.05 $0.05
Ler operações (por 10.000)3
Arquivar alta prioridade de leitura (por 10.000)5
$0,0017 $0,004 $0,01 $5.50
$30
Todas as outras operações (por 10.000), exceto Eliminar, que é grátis $0,0017 $0,004 $0,004 $0,004 $0.004
Recuperação de dados (por GB)4
Recuperação de dados com alta prioridade de arquivo (por GB)5
Livre Livre $0.01 $0.022
$0.06
Data Write (por GB)4 Livre Livre $0.0025 Livre
Armazenamento de arquivos STANDARD
Put, Create Container Operations (por 10.000) $0.015
Operações de Lista (por 10.000) $0.015
Todas as outras operações excepto Eliminar, que é livre (por 10.000) $0.0015
Geo-Replication Data Transfer (por GiB) N/A

Wrap Up

Na revolução da transformação digital, as aplicações estão sendo modernizadas e precisa de um padrão em larga escala não só na camada de aplicação, mas também na camada de dados que eu não acho que o Azure Files possa caber. O Azure Files ainda seria bom se sua aplicação fosse servida para um público específico.

Talvez, há aspectos individuais a serem considerados antes de concluir a melhor opção entre o Azure Blob Storage e os Arquivos. Levando as funcionalidades comuns em consideração, eu preferiria o Armazenamento Azure Blob em vez de Arquivos.

Autor: Nadeem Ahamed

Nadeem é um comerciante de produtos técnicos para Serverless360. Ele é apaixonado por blogs sobre tecnologias de ponta. Ele acredita que os blogs são a melhor maneira de compartilhar conhecimento entre a comunidade e sua paixão por escrever nunca terminará até o último dia de respiração. Ele sempre acredita na frase “Looks so Good on the Outside, It’ll Make You Feel Good Inside”. Veja todos os posts de Nadeem Ahamed