Azure Storage Accounts blob file share queue table filesync
Faala galera, 100%?!
Um dos pontos que mais trazem dúvidas em relação ao Azure, em minha opinião, são os tipos de armazenamento que estão disponíveis no Azure e quando devemos utilizar cada opção. Esse é nosso primeiro artigo sobre Azure Storage Accounts, e faz parte da serie sobre Azure que estou desenvolvendo para te ajudar nos primeiros passos na plataforma de Cloud da Microsoft.
Se você não leu os artigos anteriores, clique aqui para seguir nosso roteiro de estudos.
O que é uma Storage Account
No mundo on-premisses é comum solicitarmos uma LUN ou determinada quantidade de espaço com o um nível de RAID específico, e assim começamos a atuar com os serviços de Storage. No Azure, as coisas mudam um pouco, visto que tudo é virtual e possui características específicas.
A conta de storage do Azure (Azure Storage Account) é um ponto de acesso unificado para os tipos de armazenamento disponíveis no Azure. Recorda-se do Azure Resource Group, onde existe a centralização dos recursos utilizados em determinado projeto? Pois bem, o Azure Storage Account fornece a mesma ideia, mas de forma exclusiva para tipos de armazenamento. Para fins didáticos, considere que o RG seja o diretório raiz, as contas de storage uma pasta e dentro desta pasta vários tipos de armazenamento.
No Azure é possível entregar serviços de storage garantindo:
- Alta disponibilidade e durabilidade; Veremos os tipos de redundancia disponíveis no serviço
- Segurança; Todos os dados mantem-se criptografados e é possível criar políticas de acesso de forma granular, inclusive determinando qual faixa de IP pode ou não acessar tal Storage Account
- Escalabidade; É um simples expandir, tanto em volume quanto em performance
- Gerenciamento; Esqueça janelas de manutenção ou updates para seu ambiente de storage, a Microsoft lidará com isso por você
- Acessibilidade; Basta uma URL e seus dados estarão acessíveis de qualquer lugar do mundo, além de bibliotecas para várias linguagens de programação. Obs: Só não vale distribuir sua chave de acesso publicamente
Dentro do serviço de Storage Account temos alguns tipos de contas e tipos de armazenamento, e é importante entender para saber quando cada um deve ser escolhido. As opção atuais são:
- Blobs
- Queue
- File Share
- Tables
A imagem acima resume o que cada tipo de armazenamento oferece x é indicado, mas veremos alguns detalhes a mais logo a frente.
Além dos tipos diferentes de serviços dentro de um Storage Account, é possível definir o tipo de conta que será utilizado e isso determinará os recursos disponíveis para os serviços de arquivos da sua Storage Account. Durante o processo de criação da conta de storage temos de informar se utilizaremos o General-purpose v2 accounts, que entregará mais tipos de replicação e tierização (você entenderá o que é Tier mais a frente) e hoje é o padrão do modelo ARM, General-purpose v1 accounts que é o tipo de conta clássico, legado. O tipo v1 entrega menos tipos de replicação (falaremos sobre isso em um artigo específico) e não possui opções de Tiers. Ou é possível também escolher o tipo de conta Blob, que te limitará a utilização exclusiva de Blob Files.
Uma observação importante é que é possível atualizar da versão V1 para V2 via portal ou CLI.
Azure Blobs
Eu costumo brincar que o Blob é um tipo de armazenamento que não é muito entendido. Esse cara suporta alto volume de dados e não existe restrição para extensões. A função dos blobs é armazenar dados não estruturados como imagens, vídeos, audio, logs, backups e entre outros formatos e, caso necessários prover um local central para consumo e acesso desses dados, via API, websites e outros.
O acesso a esses cara pode ser disponibilizados via HTTP ou HTTPS além de estar disponível via API, PowerShell, CLI e possuir bibliotecas para várias linguagens de programação.
Aqui nós temos 3 tipos de Blobs, além de um recurso muito bacana chamado de Tiers, que veremos logo em seguida. É importante entender para o que cada tipo de Blob deve ser utilizado, veja:
Os Blobs em bloco suportam até 4.77TB de tamanho e é segmentado em blocos de 100MB cada. É possível realizar ações de inserção, substituição e exclusão desses blocos. O segundo tipo é chamado de Append Blob, esses caras suportam apenas inserção sequencial, e são ideais para utilização em Logs e auditoria. Aqui temos um limite de 195GB de tamanho máximo. O último tipo é o Page Blob, que são utilizados para armazenamento de VHDs e bases SQL. Esses caras suportam até 8TB de tamanho máximo e foram desenhados para alta performance a nível de escrita e leitura e só estão disponíveis sob discos HDD (Standard Storage) ou SSD (Premium Storage). Um outro detalhe importante aqui é que os Page Blobs não estão disponíveis via Storage Account.
Além dos tipos é possível trabalharmos com Tierização, que é um recurso muito bacana onde é possível definir se determinado blob será acessado de forma contínuo ou não. Isso é indicado pelos tipos: Hot, Cool ou Archive.
Se o seu blob terá acesso constante, é interessante mante-lo em um Tier hot, onde o custo de acesso (entradas, saídas, tempo de acesso) ao dado não é alto mas o custo de armazenamento sim. Em casos em que o acesso não será constante, é interessante utilizar o Tier Cool onde o custo de acesso é maior mas o custo de storage é muito mais baixo. E ainda existe a última opção que é o Archive, onde o custo para acesso é o mais alto, entretanto o custo de armazenamento é baixissimo. Podemos entender o Archive como um “Arquivo Morto”.
File Share
Esse tipo de serviço é o mais próximo que teremos a nível de comparação com um File Serve (Servidor de Arquivos) local.
Com esse cara é possível mapear um unidade criada no Azure para sua estrutura local e utiliza-la como como um compartilhamento SMB local. Por padrão temos SMBv3 habilitado e totalmente funcional. O portal do Azure é tão bonzinho que te entrega o script pronto para que o mapeamento seja realizado sem muito esforço.
O acesso aos dados é feito de forma segura e podemos trabalhar níveis de acesso, mas nada comparado ao que se faz com as permissões NTFS em um ambiente local.
Como comentei temos o mapeamento de rede a alguns cliques mas também é possível disponibilizar acesso aos arquivos via HTTPS e garantir flexibilidade em relação ao acesso.
Um ponto muito bacana é o serviço de File Sync, que te entrega uma sincronização de sua estrutura de arquivos com o Azure, além de atuar como um cache local. Já escrevi sobre esse serviço aqui no portal, basta clicar aqui.
Queues e Tables
Esse dois últimos tipos são mais voltados a bases e altas cargas de dados.
Nas tables o Azure entrega repositório para NoSQL com armazenamento de dados semiestruturados. Serviços como o CosmoDB se beneficiam das tables. As queue por sua vez são usadas para armazenamento de dados em filas (obviamente). Com esse serviços é possível acessar uma grande escala de dados utilizando chamadas HTTP ou HTTPS. Uma fila pode ter até 64KB de tamanho e conter várias mensagens, limitado ao tamanho do Storage Account.
Esses dois últimos serviços dentro do mundo de Storage Account são totalmente voltados ao mundo dos Devs e DBAs (weird world).
Conclusão
Esse artigo introduz o que é uma Storage Account e o que podemos fazer com esse serviços. Veja que existem várias opções e cada com particularidades que devem ser estudadas e aplicadas de acordo com as demandas do projeto.
Nos próximos posts partiremos para hands-on e mostrar aplicação prática do que vimos aqui na teoria!
Espero que tenha te ajudado. Um grande abraço \,,/
Faça o primeiro comentário a "Azure Storage Accounts"