Azure 006 – Contas de Armazenamento
https://docs.microsoft.com/pt-br/azure/storage/common/storage-introduction
As contas de armazenamento do Azure (Storage Accounts) é um serviço SaaS que permite os clientes armazenarem diferentes de modelos de dados. As principais características são:
- Durável e alta disponibilidade: redundância dos recursos garantem segurança contra falhas de hardware. A possibilidade de replicação entre datacenters e regiões aumenta a proteção contra catástrofes naturais.
- Segurança: todos os dados são criptografados em trânsito e em repouso. E as contas de armazenamento suportam um controle de acesso em níveis detalhados.
- Escalabilidade: o design da solução foi definido para permitir escalabilidade em massa.
- Gerenciamento: O Azure fica responsável pelo gerenciamento de manutenções e atualizações no serviço.
- Acessibilidade: acessível por HTTP/HTTPS, aplicativo Storage Explorer, SDK em várias linguagens, Azure CLI e Powershell, além do portal do Azure.

Dentro de uma conta de armazenamento podemos ter os seguintes modelos de dados:
- Queue Storage (Filas): serviço que implementa a estrutura de dados de do tipo fila (FIFO – First-in First-out – O primeiro elemento que entra é o primeiro elemento que sai) . Essa fila recebe mensagens no formato JSON, e são produzidas por diversos tipos de aplicações e podem ser consumidos por outras aplicações. (https://azure.microsoft.com/en-us/services/storage/queues/)

- Table Storage (Tabelas): serviço que implementa uma estrutura de banco de dados não relacional, onde cada tabela pode conter registros no formato JSON mas sem um schema fixo. Ainda sendo permitido consultar dados utilizando SDK. (https://azure.microsoft.com/en-us/services/storage/tables/)
- Blob Storage (arquivos binários grandes): este serviço permite armazenar grandes arquivos binários em qualquer estrutura não havendo a necessidade de uma estruturação hierárquica (mesmo sendo suportado). (https://docs.microsoft.com/pt-br/azure/storage/blobs/storage-blobs-introduction)
- File Share (SMB file share): esse serviço provisiona um sistema de arquivos que é acessível através dos protocolos SMB (Server Message Block) e CIFS (Common Internet File System). (https://azure.microsoft.com/en-us/services/storage/files/)

Para criar uma nova conta devemos selecionar a assinatura e o grupo de recurso. Em seguida é necessário informar um nome de uma conta que deve ser único em todo o Azure pois será utilizado como URL de acesso ao recurso. A localização é o parâmetro que seleciona em qual região será criado o recurso. Na performance podemos selecionar o modelo Standard que é mais barato e usa discos magnéticos para armazenamento, portanto com menor performance. O tipo Premium tem um valor mais elevado pois utiliza SSDs para o armazenamento dos dados, portanto mais performance. O tipo da conta V1 é o modelo original da conta de armazenamento, e a V2 é o novo modelo que dá suporte a novas funcionalidades como Data Lake.

Na replicação tempos como opção: LRS (redundância de armazenamento local dentro da região), GRS (redundância global), RA-GRS (redundância global mas apenas para leitura). O nível de acesso é o modelo de retenção que os arquivos vão utilizar por padrão: Hot (acesso rápido, e mais caro), cool (acesso rápido, mas com menor custo). Ainda existe o nível de acesso archive (que é o mais barato e com acesso mais lento [até 18 horas para recuperar os arquivos]).

Na próxima etapa pode ser definido o modelo de rede que será utilizado no storage.

Na próxima etapa temos as seguintes opções que podem ser selecionadas:
- Secure trasnfer required: habilita criptografia em trânsito com TLS;
- Large file shares: suporte a arquivos maiores que 100TB;
- Blob soft delete: habilita a possibilidade de recuperar arquivos excluídos nos blobs;
- File share soft delete: habilita a possibilidade de recuperar arquivos dentro dos file shares SMB;
- Versionamento: suporta o versionamento dos objetos em um blob storage;

- Hierarchical namespace: habilita ACLs para arquivos do Datalake
- NFS v3: suporte ao Network File System Protocol

Uma vez criada a conta de armazenamento, é possível selecionar a opção Containers para verificar os containers blob existentes.

Em seguida clique no botão para adicionar um novo Container, e informe seu nome. Mantenha a opção de nível de acesso como privado.

Em seguida acione o botão Upload, selecione o nome do arquivo e abra a área de propriedades avançadas. Mantenha o Access tier como Hot e informe o valor fotos no campo upload to folder.

Após o processo de upload completo, ao retornar para o container voce vai observar que uma pasta fotos foi criada e que dentro dela há o arquivo.

Clique no arquivo contido dentro da pasta e será apresentada uma tela contendo os detalhes de acesso do arquivo blob. Clique no botão para copiar a URL do blob.

Se você tentar acessar essa URL você observará que um erro será retornado, pois como o blob esta privado, não é permitido o acesso anônimo de usuários aos arquivos.

É possível modificar o módo de armazenamento clicando na opção Change tier.

Clique na opção para gerar um Token SAS.

Se você copiar a URL completa com o Token SAS terá acesso ao blob dentro das regras definidas pelo token.

Retornando ao menu inicial da conta de armazenamento existe a opção de definir o gerenciamento do ciclo de vida de um arquivo no blob. A proposta é construir um conjunto de regras que permita que a própria conta gerencie quanto tempo um arquivo deverá ser mantido ou se ele será transferido para um nível de armazenamento mais barato.


É possível ainda criar regras para determinadas pastas virtuais dentro do blob.
